Dubbo+zookeeper微服务架构之服务注册与发现的简单使用

简介: Dubbo+zookeeper微服务架构之服务注册与发现的简单使用

服务注册与发现

技术栈:

springboot

dubbo

zookeeper


注册中心推荐zookeeper

下载链接:在3.5.5版本后,官方提供了bin的包,可以不需要配置环境,直接上手查看

https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz

之后以管理员方式启动bin文件夹中的cmd文件

1.png



会报错,我们需要吧conf里的,zoo_simple复制一份,改成zoo.cof

1.png


就可以了。linux版本的也一样

打开server和client之后,创建一个节点

1.png

往里面放点东西:123

成功之后我们就可查看节点里的信息了


dubbo-admin

链接:https://github.com/apache/dubbo-admin

下载好之后,这个是dubbo的一个服务管理中心,可以看到我们注册的服务

进入D:\dubbo-admin-develop\dubbo-admin-develop\dubbo-admin-server\src\main\resources下查看zookeeper的端口号2181,如果改动了,这里也要改

1.png



之后我们用cmd打开,mvn clean package -Dmaven.test.skip=true,打成jar包

2.png



过程可能有点慢,耐心等待

完成之后,把打包好的jar放入zookeeper根目录

之后先启动zookeeper,再跑jar包

访问:http://localhost:7001/

查看是否连接成功

1.png



当当当!

前台,中台,后台

zookeeper:注册中心

dubbo-admin:是一个监控管理后台

Dubbo :jar包

那么我们要开始实战咯


服务注册与发现

我们建两个项目如下:

1.png

custom 端口配置为 8082


privoder 端口配置为8081


privoder依赖


 

        <!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter -->
    <!--dubbo-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.12</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient -->
        <dependency>
            <!--zkclient,zookeeper客户端--> <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
<!-- 引入zookeeper 并且解决日志冲突-->
<dependency>
   <groupId>org.apache.curator</groupId>
   <artifactId>curator-framework</artifactId>
   <version>2.12.0</version>
</dependency>
<dependency>
   <groupId>org.apache.curator</groupId>
   <artifactId>curator-recipes</artifactId>
   <version>2.12.0</version>
</dependency>
<dependency>
   <groupId>org.apache.zookeeper</groupId>
   <artifactId>zookeeper</artifactId>
   <version>3.4.14</version>
   <!--排除这个slf4j-log4j12-->
   <exclusions>
       <exclusion>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-log4j12</artifactId>
       </exclusion>
   </exclusions>
</dependency>


之后去设置服务者的配置文件

server.port=8001
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
#服务名字
dubbo.application.name=privoder
#那些服务要注册
dubbo.scan.base-packages=com.hyc.privoder.service


在需要注册的服务上添加注解

@DubboService//在项目一启动就注册到注册中心
@Component//为什么不加service注解,应为dubbo的注册service,用于区分
public class ticketserviceImpl implements ticketservice {
    @Override
    public String getticket() {
        return "hyc学微服务";
    }
}


注册与发现就是zookeeper的作用

启动所有需要启动的服务

zookeeper—>dubbo的jar包 —> 服务—>管理员网站服务查看

1.png

想拿到票,需要调用远程服务,拿到我们服务之者的方法,要去注册中心拿服务

我们先要配置的custom的配置,一样需要导入相关依赖。


编写配置文件:

server.port=8002
#要去哪里拿服务,需要暴露自己的名字
dubbo.application.name=custom
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181



之后我们需要调用本地的Autowired是本地调用,我们这里远程调用@DubboReference

@Service//这里要用spring的注解哟,只有spring可以字自动装配
public class UserService {
    //想拿到票,需要调用远程服务,拿到我们服务之者的方法,要去注册中心拿服务
    @DubboReference//引用 Pom坐标可以定义路径相同的接口名
    ticketservice ts;
    public  void buyTicket(){
        String getticket = ts.getticket();
        System.out.println("注册中心拿到"+getticket);
    }
}

如果报错就降级启动器,解决


记得要在统一包下的服务,

1.png

步骤:

提供者服务


导入依赖


配置文件,注册中心地址,服务发现名和要扫描的服务

想要被注册的服务上加上dubbo的service注解和spring的compent组件


消费者如何消费


导入依赖


配置文件,服务发现名,注册中心地址

我们需要在客户端建立一个一样的服务者接口,直接远程注入就可以使用这个服务的方法了,远程调用注解@DubboReference



相关文章
|
运维 监控 负载均衡
动态服务管理平台:驱动微服务架构的高效引擎
动态服务管理平台:驱动微服务架构的高效引擎
257 17
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
运维 监控 负载均衡
探索微服务架构下的服务治理:动态服务管理平台深度解析
探索微服务架构下的服务治理:动态服务管理平台深度解析
|
运维 监控 安全
探索微服务架构下的服务治理:动态服务管理平台的力量
探索微服务架构下的服务治理:动态服务管理平台的力量
|
弹性计算 Kubernetes API
构建高效后端服务:微服务架构的深度剖析与实践####
本文深入探讨了微服务架构的核心理念、设计原则及实现策略,旨在为开发者提供一套系统化的方法论,助力其构建灵活、可扩展且易于维护的后端服务体系。通过案例分析与实战经验分享,揭示了微服务在提升开发效率、优化资源利用及增强系统稳定性方面的关键作用。文章首先概述了微服务架构的基本概念,随后详细阐述了其在后端开发中的应用优势与面临的挑战,最后结合具体实例,展示了如何从零开始规划并实施一个基于微服务的后端项目。 ####
|
9月前
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
166 0
|
11月前
|
人工智能 安全 Java
微服务引擎 MSE:打造通用的企业级微服务架构
微服务引擎MSE致力于打造通用的企业级微服务架构,涵盖四大核心内容:微服务技术趋势与挑战、MSE应对方案、拥抱开源及最佳实践。MSE通过流量入口、内部流量管理、服务治理等模块,提供高可用、跨语言支持和性能优化。此外,MSE坚持开放,推动云原生与AI融合,助力企业实现无缝迁移和高效运维。
500 1
|
NoSQL 前端开发 测试技术
👀探秘微服务:从零开启网关 SSO 服务搭建之旅
单点登录(Single Sign-On,简称SSO)是一种认证机制,它允许用户只需一次登录就可以访问多个应用程序或系统。本文结合网关和SaToken快速搭建可用的Session管理服务。
926 8
|
弹性计算 持续交付 API
构建高效后端服务:微服务架构的深度解析与实践
在当今快速发展的软件行业中,构建高效、可扩展且易于维护的后端服务是每个技术团队的追求。本文将深入探讨微服务架构的核心概念、设计原则及其在实际项目中的应用,通过具体案例分析,展示如何利用微服务架构解决传统单体应用面临的挑战,提升系统的灵活性和响应速度。我们将从微服务的拆分策略、通信机制、服务发现、配置管理、以及持续集成/持续部署(CI/CD)等方面进行全面剖析,旨在为读者提供一套实用的微服务实施指南。
|
机器学习/深度学习 运维 监控
动态服务管理平台:构建高效、灵活的微服务架构基石
动态服务管理平台:构建高效、灵活的微服务架构基石
234 17

热门文章

最新文章

相关产品

  • 微服务引擎