前言:刚完成的Spring基础专题本想更新源码的,但是发现分布式非常火,所以今年我希望把我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从一个互联网职场小白到一个沪漂湿人,一路让我知道分享是一件多么重要的事情,总之不对的地方,多多指出,我们一起徜徉代码的海洋!我这里做每个章节去说的前提,不是一定很标准的套用一些官方名词,目的是为了让大家可以理解更加清楚,如果形容的不恰当,可以留言出来,万分感激!
1、Dubbo整合SpringBoot
在上一节我们用传统的Spring案例,结合官网,简单介绍了Dubbo对应不同的服务怎么进行发布,以及注册中心Zookeeper的使用,当然我这里是为了演示效果,根据官网的极力推荐,使用的注册中心是Zookeeper,实际上Zookeeper的功能远远不止这些,而在
市面上的注册中心有很多种,比如Zookeeper,Nacos,Simple,Multicast和Redis等等,你没想过Redis可以做注册中心吧,当然市面上用的比较少,还有Netflix系的SpringCloud Eureka等等,其实这些都是为了做服务治理的第一步。
那么本章开始,带你走进SpringBoot微服务化的Dubbo案例,里面很多干货,都是在实战中会用到的,里面不会涉及到很多业务代码,微服务的本质是运维!!说三遍,运维,所以应该更注重服务之间的关系,和遇到各种问题应该具备的解决方案!在实战中
都值得一试!
准备环境:
我们设定两个服务:
- user-service-provider
- order-service-consumer
一个api接口层
- api-service:这个用上一节的项目
新建一个Springboot项目,我就很简单过两个图,不会的要百度下了。
然后
下一步后
好了,我把上个项目中的代码都拷过来,创建两个服务的最终效果是这样的
两个服务的pom文件别忘记加上这个api-service,之前一定要install到本地!!
<dependency> <groupId>com.chenxin.dubbo</groupId> <artifactId>api-service</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
那么此时我们两个服务就创建好了,那么我们要改造下,既然是Springboot项目,就需要有Controller请求层,模拟一个请求去请求user-service-provider的业务方法。
新建一个OrderController,负责调用用户服务,返回用户id对应的地址。
是不是发现少了什么,对,pom文件里的依赖没进来,上节我们的依赖是纯Dubbo,是这样的
但是我们已经转成了Springboot项目了,场景驱动器会帮我们做自动装配的,所以我们只需要引入dubbo和springboot的starter就可以
注意下自己的Springboot版本,我的是2.x版本的,对照下图看看
<dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>0.2.0</version> </dependency>
其实你导入这个依赖你会发现一个东西,这个starter已经把上节我们需要的zk依赖,监控等依赖都带进来了。
这样是不是就可以启动了呢?当然不是,我们上一节的配置文件,怎么办,怎么整合到Springboot项目中来呢?
当然有办法,看官网:
取而代之的是用application.properties里面的key,value来替代xml的标签,这个我在讲Spring的时候经常提到
所以我们在user-service-provid