SpringBoot 整合 Dubbo&Zookeeper 实现分布式
1. 安装 Zookeeper 环境
2. 服务提供者
因为用了父工程的版本管理,所以这里没有显示版本,我把用到的版本给大家分享下。
- jdk 1.8
- springboot 1.5.8
- spring-boot-starter-dubbo 1.0.0
闲余之际我会把demo源码分享。
2.1 pom依赖
<dependencies> <!-- Spring Boot Web 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Boot Test 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--spring data jpa --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.8-dmr</version> <scope>compile</scope> </dependency> <!--dubbo 依赖--> <dependency> <groupId>io.dubbo.springboot</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> </dependency> <!--junit 测试工具--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies>
2.2. Service填写
大概给下项目架构:
为了方便,我用的springboot data jpa做持久性框架。如果不会jpa,请先看我 springboot jpa整合。
- SchoolRepository .java
/** * Created by Fant.J. */ @Repository public interface SchoolRepository extends JpaRepository<School,Integer> { }
- SchoolService.java 略(一个正常的借口)
- 实现类SchoolServiceImpl .java核心代码
@Service(version = "2.0.1") public class SchoolServiceImpl implements SchoolService { @Autowired private SchoolRepository schoolRepository;
这里的@Service注解是dubbo的注解,不是springframework下的注解。该注解就是向zk注册服务。
2.3. application.properties
server.port=9002 ## Dubbo 服务提供者配置 spring.dubbo.application.name=school-server spring.dubbo.registry.address=zookeeper://xxx.xxx.xxx.xxx:2181 spring.dubbo.protocol.name=dubbo spring.dubbo.protocol.port=20882 spring.dubbo.scan=com.xxx.school.service spring.datasource.url=jdbc:mysql://xxxxxxxxxx spring.datasource.username=xxxx spring.datasource.password=xxxx spring.datasource.driver-class-name=com.mysql.jdbc.Driver
注意: 每一个服务都需要一个未被使用的dubbo端口 。
3. 服务消费
为了和服务提供者解耦,我们需要把Service接口类单独拿出来放到client模块里,这里不贴详细代码了。
3.1 pom.xml
这里略,根据controller类里的需要来填充相关依赖
3.2 SchoolController
@RestController @RequestMapping("/sch") public class SchoolController { @Reference(version = "2.0.1") private SchoolService schoolService; @RequestMapping("/all") public ServerResponse getAll(){ return schoolService.selectAll(); } }
注意与@Service注解的version属性值一一对应。
3.3 application.properties
## Dubbo 服务消费者配置 spring.dubbo.application.name=xxx spring.dubbo.registry.address=zookeeper://xxxx.xxx.xxx.xxx spring.dubbo.scan=com.xxx.web.controller
成功截图:
有疑问请在下面留言。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
异步社区本周(4.23-4.29)半价电子书
点击关注异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 《R语言编程指南》 任坤著 点击封面购买纸书 R 语言是从事数据科学和统计学需要的工具之一。强大且复杂的 R 对于初学者和不熟悉其独特特性的人来说可能具有一定的挑战性。本书以一种简单且实践性强的方式来教授读者学习R语言,并逐步建立对R语言广泛、一致的理解。通过实际操作实例,亲身体验强大的 R 工具,并总结 R 的使用方法,你能够更深入地了解如何使用数据。 本书面向数据领域的从业人员,尤其适合想要通过学习R编程及相关工具提升数据处理效率的读者阅读,也适合计算机或统计相关专业的学生参考使用。通过阅读本书,读者将全面掌握R的相关特性及其在数据处理和分析方面的应用,极大地提升自己的专业技能。 《HTML5移动开发》 【美】Estelle Weyl(埃斯特尔 韦尔)著 点击封面购买纸书 树莓派是一个低成本、信用卡大小的计算系统,可以针对渗透测试在内的所有用途进行定制。树莓派凭借其强大的功能(而非低廉的价格)成为知名的平台。Kali是用于进行渗透测试、安全审计的Linux版本。Kali Linux内置了很多渗...
- 下一篇
Tensorflow快餐教程(4) - 矩阵
矩阵 矩阵的初始化 矩阵因为元素更多,所以初始化函数更多了。光靠tf.linspace,tf.range之类的线性生成函数已经不够用了。 可以通过先生成一个线性序列,然后再reshape成一个矩阵的方式来初始化。 例: >>> g1 = tf.linspace(1.0,10.0,16) >>> g1 <tf.Tensor 'LinSpace_6:0' shape=(16,) dtype=float32> >>> g2 = tf.constant(sess.run(tf.reshape(g1,[4,4]))) >>> sess.run(g2) array([[ 1. , 1.6 , 2.2 , 2.8000002],
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程