场景1 启动时

dubbo服务提供端在Zookeeper上注册的节点目录:假设接口名称是:com.bob.dubbo.service.CityDubboService

dubbo服务提供端连接到注册中心,注册自身到/providers目录下,其节点信息参考如下。

其中第4个节点是临时节点。心跳检测超时zk会删除临时节点。

dubbo服务消费端连接到注册中心,注册自身到/consumers目录下,同时还会订阅/providers目录,实时获取其上Provider的URL字符串信息。同时订阅获得的Provider信息持久化到本地文件。

/providers下的临时节点变动时,dubbo服务消费端会拉取最新的/providers目录。

5s定时任务

dubbo服务提供端(Provider)或dubbo服务提供端(Consumer)启动成功后,会创建一个5s定时任务,内容如下:

Provider向zookeeper注册自身的url,生成一个临时的znode
Provider从Dubbo容器中退出,停止提供RPC调用。也就是移除zookeeper内自身url对应的znode
Consumer订阅 `/dubbo/Service/providers` 目录的子节点,生成ChildListener
Consumer从Dubbo容器中退出,移除之前创建的ChildListener

场景2 zk服务器挂掉

dubbo服务提供端(Provider)或dubbo服务提供端(Consumer)内部的zkClient会不停地尝试连接Server。

连接成功后重新注册和订阅。

连接不成功,不影响dubbo服务提供端(Consumer)调用。加载本地文件的Provider信息进行调用。

参考:

https://blog.csdn.net/qq_27529917/article/details/80632078

https://juejin.im/post/5cd29c1c6fb9a031f0381306

最新文章

  1. C++ new和delete具体操作符是怎样的
  2. APIJSON,让接口见鬼去吧!
  3. 使用FreePic2Pdf导出书签至Word建立层级目录——快速初始化Word笔记本目录
  4. Linux查看操作系统时间
  5. ubuntu su 密码
  6. web app 变革之rem
  7. 【风马一族_代码英语】代码英语之八 ADB
  8. [大牛翻译系列]Hadoop(11)MapReduce 性能调优:诊断一般性能瓶颈
  9. http://src.chromium.org/svn/ 定制chrome浏览器教程及源码
  10. 把 图片 资源文件 编译到dll
  11. Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: Multiple representations of the same entity解决方法
  12. Effective前端2---加快页面打开速度
  13. vue-先渲染dom载执行js
  14. Pycharm+Anaconda安装及配置
  15. 初识thinkphp(1)
  16. 20155225 2016-2017-2《Java程序设计》课程总结
  17. centos6.5/6.3升级安装ImageMagick7.0.1-1
  18. 如何在JTable中动态添加一行
  19. SQL基础(五):SQL函数
  20. [翻译]理解CSS模块方法

热门文章

  1. MySQL用户及权限
  2. nginx 405错误
  3. Docker搭建Gogs
  4. yum localinstall 解决本地 rpm 包的依赖问题
  5. mysql分组统计按照字段排序方法(分组之后保留最新时间、最大id...)
  6. Beta冲刺第6次
  7. c语言实现基本的数据结构(五) 单链队列
  8. JMeter的执行顺序
  9. Appium连接夜神模拟器,模拟手势点击(tap)
  10. 【BZOJ 4004】 装备购买(高斯消元+贪心)