【DUBBO】zookeeper在dubbo中作为注册中心的原理结构
【一】原理图
【二】原理图解释
流程:
1.服务提供者启动时向/dubbo/com.foo.BarService/providers目录下写入URL
2.服务消费者启动时订阅/dubbo/com.foo.BarService/providers目录下的URL向/dubbo/com.foo.BarService/consumers目录下写入自己的URL
3.监控中心启动时订阅/dubbo/com.foo.BarService目录下的所有提供者和消费者URL
支持以下功能:
1.当提供者出现断电等异常停机时,注册中心能自动删除提供者信息。
2.当注册中心重启时,能自动恢复注册数据,以及订阅请求。
3.当会话过期时,能自动恢复注册数据,以及订阅请求。
4.当设置<dubbo:registry check="false" />时,记录失败注册和订阅请求,后台定时重试。
5.可通过<dubbo:registry username="admin" password="1234" />设置zookeeper登录信息。
6.可通过<dubbo:registry group="dubbo" />设置zookeeper的根节点,不设置将使用无根树。
7.支持*号通配符<dubbo:reference group="*" version="*" />,可订阅服务的所有分组和所有版本的提供者。
【三】Dubbo的基本服务流程
(1)提供服务的项目启动后将自己要对外提供的服务注册到Zookeeper上。/dubbo/接口名/providers/url
(2)消费服务的项目启动后向自己需要消费的接口节点订阅服务列表(/dubbo/接口名/providers),同时将自己的地址写到(/dubbo/接口名/consumers/url)
(3)当订阅成功后,一旦所订阅的节点下的服务列表有变化,zookeeper就会向消费端推送新的服务列表地址
(4)消费者要调用某个服务,则根据订阅的服务列表中根据路由规则挑选一台,调用服务提供者。
(5)在调用的同时会消费者和服务提供者会统计调用次数,记录到内存中。定时将数据推送的zookeeper中。