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



相关文章
|
4月前
|
运维 负载均衡 微服务
|
5月前
|
负载均衡 Java Nacos
微服务架构中的服务注册与发现流程
本内容介绍了微服务架构中的服务注册与发现流程,包括服务注册中心(如Nacos)、服务提供者和调用者的角色分工。服务启动时自动注册信息至注册中心,调用者通过客户端负载均衡(如Spring Cloud Loadbalancer)选取服务实例进行远程调用。同时,内容还讲解了OpenFeign的工作原理,其作为HTTP客户端集成负载均衡,通过接口定义、代理生成、请求发送与结果解析,实现服务间的高效通信。
|
7月前
|
人工智能 安全 Cloud Native
Nacos 3.0 架构全景解读,AI 时代服务注册中心的演进
Nacos 3.0 正式发布,定位升级为“一个易于构建 AI Agent 应用的动态服务发现、配置管理和 AI 智能体管理平台”。架构上强化了安全性,引入零信任机制,并支持 MCP 服务管理、AI Registry 等新特性,助力 AI 应用高效开发与运行。
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
307 2
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
10月前
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
177 0
|
人工智能 安全 Java
微服务引擎 MSE:打造通用的企业级微服务架构
微服务引擎MSE致力于打造通用的企业级微服务架构,涵盖四大核心内容:微服务技术趋势与挑战、MSE应对方案、拥抱开源及最佳实践。MSE通过流量入口、内部流量管理、服务治理等模块,提供高可用、跨语言支持和性能优化。此外,MSE坚持开放,推动云原生与AI融合,助力企业实现无缝迁移和高效运维。
593 1
|
存储 负载均衡 监控
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
这篇文章是关于Apache Dubbo框架与Zookeeper的关系,以及如何下载、安装和启动Zookeeper的教程,包括解决启动过程中可能遇到的报错问题。
624 3
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
|
Dubbo Cloud Native 应用服务中间件
阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。
在云原生时代,微服务架构成为主流。阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。示例代码展示了如何在项目中实现两者的整合,通过 Nacos 动态调整服务状态和配置,适应多变的业务需求。
478 2
|
Dubbo 应用服务中间件 Apache
Dubbo 应用切换 ZooKeeper 注册中心实例,流量无损迁移
如果 Dubbo 应用使用 ZooKeeper 作为注册中心,现在需要切换到新的 ZooKeeper 实例,如何做到流量无损?
217 4

相关产品

  • 微服务引擎