当前位置:   article > 正文

springboot2整合dubbo,以zookeeper为注册中心_dubbo-dependencies-zookeeper

dubbo-dependencies-zookeeper

虽然微服务已经流行起来了,但是由于公司很多架构仍然是采用dubbo+zookeeper搭配组合实现分布式项目架构,所以这里还是象征性写个笔记,以后可以用来回味,博客基于当时最新稳定版而写的,后续版本有变化,请自行留意.(springboot2.3.4+dubbo2.7+zookeeper3.6.2)

在下面的环境部署成功后,由于示例代码太多,所以直接放在了码云上 :https://gitee.com/zhang-xiao-xiang/zxx-dubbo

搭建zookeeper服务注册中心,为接收dubbo的服务注册作准备

找到官网选择下载,这个Windows版本和Linux版本是混合在一个压缩包的,所以一箭双雕哈.我的zookeeper版本是3.6.2

下载地址: https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz

新建文件夹data和文件夹log,并在配置文件zoo.cfg(默认是zoo_sample.cfg,需要改名字为zoo.cfg)的13行左右,配置数据路径和日志路径(这里以Windows版本为例,所以改了一下)

  1. #配置文件数据和日志路径(注意在文件根目录下创建这两个文件夹)
  2. dataDir=../data
  3. dataLogDir=../log

 启动方式

 启动成功如图

客户端连接成功如图(注意,客户端连接会占用8080端口,所有注意一下,要么测试客户端可以连接,然后就关掉CMD窗口,因为dubbo默认端口也是8080,当然后面的8080端口也可以修改一下,看自己选择)

 安装dubbo监控台,监控自身服务情况

先到官网下载 https://github.com/apache/dubbo-admin ,推荐使用idea的git方式下载,初识化过程如图(之所以要打包是因为需要把前端项目也打包上去),这里版本是dubbo-admin 2.7.7

然后启动 DubboAdminApplication 即可(本来zookeeper也有控制台,但是不好用,阿里已经提供了监控自己的服务,已将足够完善了,和nacos注册中心,eureka注册中心的控制台风格基本上一致的),测试访问监控台  http://localhost:8081/#/

 编写项目代码(只看流程就行了,不然会觉得有点乱)

由于项目拆分或者结构可能不完全一样,所以仅参考,要是弄得太复杂了反而不利于入门,我的项目结构大致如下

 一:公共模块(写一些公共类模块即可)

二:服务接口模块(提出来的一个模块,基本上不需要怎么配置)

1:添加依赖

  1. <!-- 添加dubbo依赖 -->
  2. <dependency>
  3. <groupId>org.apache.dubbo</groupId>
  4. <artifactId>dubbo-spring-boot-starter</artifactId>
  5. <version>2.7.7</version>
  6. </dependency>
  7. <!--添加公共模块-->
  8. <dependency>
  9. <groupId>com.zhang</groupId>
  10. <artifactId>zxx-dubbo-common</artifactId>
  11. <version>0.0.1-SNAPSHOT</version>
  12. </dependency>

 2:写几个接口即可

三:服务停过模块(就是服务接口实现类模块)

1:添加主要依赖

  1. <!-- 添加dubbo依赖 -->
  2. <dependency>
  3. <groupId>org.apache.dubbo</groupId>
  4. <artifactId>dubbo-spring-boot-starter</artifactId>
  5. <version>2.7.7</version>
  6. </dependency>
  7. <!--zookeeper 注册中心客户端引入 使用的是curator客户端 -->
  8. <dependency>
  9. <groupId>org.apache.dubbo</groupId>
  10. <artifactId>dubbo-dependencies-zookeeper</artifactId>
  11. <version>2.7.4.1</version>
  12. <type>pom</type>
  13. <exclusions>
  14. <exclusion>
  15. <groupId>org.slf4j</groupId>
  16. <artifactId>slf4j-log4j12</artifactId>
  17. </exclusion>
  18. </exclusions>
  19. </dependency>
  20. <!--添加公共依赖-->
  21. <dependency>
  22. <groupId>com.zhang</groupId>
  23. <artifactId>zxx-dubbo-interface</artifactId>
  24. <version>0.0.1-SNAPSHOT</version>
  25. </dependency>

2:编写配置文件

  1. # Spring boot 引用名称和端口号
  2. spring.application.name=zxx-dubbo-provider
  3. server.port=7001
  4. # dubbo扫描包,扫描服务实现类
  5. dubbo.scan.base-packages=com.zhang.zxx.dubbo.provider.serviceimpl
  6. # Dubbo应用名称,默认和Spring boot名称一样
  7. dubbo.application.name=${spring.application.name}
  8. # Dubbo协议和端口
  9. dubbo.protocol.name=dubbo
  10. dubbo.protocol.port=20880
  11. ##新版本2.7说明 https://github.com/apache/dubbo-admin/wiki/Dubbo-Admin%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E
  12. admin.config-center="zookeeper://127.0.0.1:2181
  13. dubbo.registry.address=zookeeper://127.0.0.1:2181
  14. dubbo.metadata-report.address=zookeeper://127.0.0.1:2181

3:添加相关注解(注意新版本有的注解也更新了,例如@Service更新成@DubboService,终于不会和spring提供的@Service搞混淆了)服务实现类接口加@DubboService和启动类加上@EnableDubbo

 

 三:服务消费模块

1:添加主要依赖

  1. <!-- 添加dubbo依赖 -->
  2. <dependency>
  3. <groupId>org.apache.dubbo</groupId>
  4. <artifactId>dubbo-spring-boot-starter</artifactId>
  5. <version>2.7.7</version>
  6. </dependency>
  7. <!--zookeeper 注册中心客户端引入 使用的是curator客户端 -->
  8. <dependency>
  9. <groupId>org.apache.dubbo</groupId>
  10. <artifactId>dubbo-dependencies-zookeeper</artifactId>
  11. <version>2.7.4.1</version>
  12. <type>pom</type>
  13. <exclusions>
  14. <exclusion>
  15. <groupId>org.slf4j</groupId>
  16. <artifactId>slf4j-log4j12</artifactId>
  17. </exclusion>
  18. </exclusions>
  19. </dependency>
  20. <!--添加公共依赖-->
  21. <dependency>
  22. <groupId>com.zhang</groupId>
  23. <artifactId>zxx-dubbo-interface</artifactId>
  24. <version>0.0.1-SNAPSHOT</version>
  25. </dependency>

2:编写配置文件

  1. # Spring boot application 应用名称
  2. spring.application.name=zxx-dubbo-consumer
  3. server.port=7002
  4. # Dubbo Application dubbo应用名称,默认和Spring boot application 应用名称一样
  5. dubbo.application.name=${spring.application.name}
  6. ##新版本说明 https://github.com/apache/dubbo-admin/wiki/Dubbo-Admin%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E
  7. admin.config-center="zookeeper://127.0.0.1:2181
  8. dubbo.registry.address=zookeeper://127.0.0.1:2181
  9. dubbo.metadata-report.address=zookeeper://127.0.0.1:2181

3:添加注解(启动类@EnableDubbo和控制层调用的@DubboReference,这个注解可以调用暴露的服务)

 以上步骤基本完成了项目的搭建,启动zookeeper注册中心和dubbo admin控制台项目,再启动服务提供模块和访问调用模块即可测试

测试示例

 以上就是全过程,当然可以继续优化,处于入门目的,就为了简单,就这么搭建出来的,如果感觉代码有点乱,可以下载码云的项目对着测试 https://gitee.com/zhang-xiao-xiang/zxx-dubbo

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/387093
推荐阅读
相关标签
  

闽ICP备14008679号