栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Dubbo笔记整理七】SpringBoot整合Dubbo(Zookeeper)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Dubbo笔记整理七】SpringBoot整合Dubbo(Zookeeper)

版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢!
本文网址:https://sunkuan.blog.csdn.net/article/details/120502052

文章目录
  • 一、dubbo-demo
    • 1、增加 Zookeeper 依赖
    • 2、Maven依赖
  • 二、dubbo-api
    • 1、pom.xml
  • 三、dubbo-provider
    • 1、application.yml(单机)
    • 2、application.yml(集群)
  • 四、dubbo-consumer
    • 1、application.yml
    • 2、application.yml(集群)
  • 五、测试程序
  • 六、程序代码






之前 《【Dubbo笔记整理五】SpringBoot整合Dubbo(Multicast)》 我介绍过如何使用 SpringBoot 整合 Dubbo,只是那篇博客中使用的是 Multicast 注册中心,而本篇博客我们换成 Zookeeper 注册中心,改动的地方不大,我只将改动的地方演示,其他代码请去上篇博客中查看。


一、dubbo-demo 1、增加 Zookeeper 依赖


    4.0.0
    pom

    
        dubbo-provider
        dubbo-consumer
        dubbo-api
    

    
        org.springframework.boot
        spring-boot-starter-parent
        2.5.4
         
    

    com.demo
    dubbo-demo
    0.0.1-SNAPSHOT
    dubbo-demo
    Demo project for Spring Boot

    
        1.8
        2.7.3
    

    
        
            
            
                org.apache.dubbo
                dubbo-spring-boot-starter
                ${dubbo.version}
            
            
            
            
                org.apache.dubbo
                dubbo-dependencies-zookeeper
                ${dubbo.version}
                pom
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



2、Maven依赖



二、dubbo-api 1、pom.xml


    4.0.0

    
        com.demo
        dubbo-demo
        0.0.1-SNAPSHOT
    

    com.demo
    dubbo-api
    0.0.1-SNAPSHOT
    dubbo-api
    Demo project for Spring Boot

    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
        
            org.apache.dubbo
            dubbo-spring-boot-starter
        
        
        
        
            org.apache.dubbo
            dubbo-dependencies-zookeeper
            pom
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    




三、dubbo-provider 1、application.yml(单机)
#防止端口冲突
server:
  port: 8001

dubbo:
  application:
    # 应用名称
    name: provider
  registry:
    # 注册中心地址
    address: zookeeper://127.0.0.1:2181
    # 超时时间,单位毫秒
    timeout: 6000
  # 元中心地址
  metadata-report:
    address: zookeeper://127.0.0.1:2181
  protocol:
    #协议名称
    name: dubbo
    #协议端口
    port: 20880
  scan:
    #扫描包的位置
    base-packages: com.demo.service

2、application.yml(集群)
#防止端口冲突
server:
  port: 8001

dubbo:
  application:
    # 应用名称
    name: provider
  registry:
    # 注册中心地址
    address: zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183
    # 超时时间,单位毫秒
    timeout: 6000
  # 元中心地址
  metadata-report:
    address: zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183
  protocol:
    #协议名称
    name: dubbo
    #协议端口
    port: 20880
  scan:
    #扫描包的位置
    base-packages: com.demo.service


四、dubbo-consumer 1、application.yml
#防止端口冲突
server:
  port: 8002

dubbo:
  application:
    # 应用名称
    name: consumer
  registry:
    # 注册中心地址
    address: zookeeper://127.0.0.1:2181

2、application.yml(集群)
#防止端口冲突
server:
  port: 8002

dubbo:
  application:
    # 应用名称
    name: consumer
  registry:
    # 注册中心地址
    address: zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183


五、测试程序

先执行 DubboProviderApplication ( 服务提供者程序),再执行 DubboConsumerApplication ( 服务消费者程序),执行效果如下:

通过上面的执行结果可以看到, 服务提供者 将服务注册到了 2183 服务器上,而 服务消费者 从 2182 服务器上拿到服务。
 
关于注册到哪个服务器上是随机分配的,有可能这次是 2183,下次可能就是 2182 或 2181 了;服务消费者也是一样,有可能这次是 2182,下次可能会是 2181 或者 2183。
 
不管服务提供者将服务注册到哪个服务器上,其他服务器不轮主从都会进行同步,这就是 Zookeeper 中的主从节点同步状态。

给大家补充一个小知识,Zookeeper 怎么保证主从节点的状态同步?

Zookeeper 的核心是原子广播,这个机制保证了各个 Server 之间的同步。实现这个机制的协议叫做 zab 协议。zab 协议有两种模式,分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,zab 就进入了恢复模式,当领导者被选举出来,且大多数 server 完成了和 leader 的状态同步后,恢复模式就结束了。状态同步保证了 leader 和 server 具有相同的系统状态。



六、程序代码

本文代码的下载链接:https://download.csdn.net/download/sun8112133/24821073



博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/272163.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号