Dubbox&&zookeeper基础
目录
前言
Dubbox是一个分布式服务框架,相等于Dubbox的升级版
主要功能是进行远程的服务调用,一般只有分布式项目才用的到
Dubbox的原理
zookeeper
上图的Dubbo register 就是注册中心, 注册中心一般使用zookeeper
服务提供放在注册中心注册服务,然后消费者去找注册中心找对应的服务即可
Dubbo相关的jar包
注意,Dubbo的最终版本是2.5.3,而后面的版本都是Dubbox,不过maven的中央仓库不一定有这个jar包
所以可以先把这个jar包导入到我们的仓库里
zookeeper的使用
zookeeper的安装
zookeeper从官方下载下来为一个gz压缩包
zookeeper的启动和结束
调用服务例子
在服务端有一个服务,就是返回一个简单的字符串,然后由服务的调用者调用服务
创建一个服务提供方的maven-web项目,并入导入spring相关的依赖
只需要配置一个核心监听器(用于监听servletContext来获取web工厂)和配置初始化spring配置文件的路径
写一个接口
并且写实现类,返回一个name
注意@Service是Dubbo的,并非spring的
服务提供方配置
在spring配置文件里注册dubbo服务
application name 是服务的名称
application registry 是zookeeper注册中心的地址
annotation(注解) 指定扫描哪些接口,这些接口用于提供服务,也就是扫描@Service注解
创建服务调用方的maven项目
注意因为2个项目都要启动,所以需要配置下maven-tomcat插件的端口
服务调用方的配置
web.xml的配置
spring mvc.xml的配置
只需要配置一个转换器,用于解决@Response 的乱码问题
远程注入属性
之前都是Autowired或者@Resource,现在是@Reference,因为需要远程注入
在这之前,我们还需要把服务端的接口复制过来
Reference(timeout=5000) 可以指定连接时间,如果超出了就会异常
不过一般情况,会把timeout放到服务端,因为服务端更容易估计连接的时间
最后还需要注册服务,因为还需要去注册中心去找服务
<dubbo:reference>扫描外部的bean
管理中心
服务一旦多了起来,那么就需要一个管理中心来管理这些服务
管理中心就是一个web应用,是Dubbox自带的
源码里有对应的管理段源码,可以通过编译源码得到对应的程序,然后部署到tomcat下
可以看到你有哪些服务
分布式dubbo配置
端口配置
在分布式的情况下,必须要配置<dubbo:protocol> 这是代表本服务占用的端口
因为一台电脑上可能有好几个服务,如果不配置,那么都会占用一个默认的端口,所以需要我们主动配置
Dubbox和zookeeper集群
https://blog.****.net/yzj17025693/article/details/90549325