惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
Recent Announcements
Recent Announcements
大猫的无限游戏
大猫的无限游戏
MongoDB | Blog
MongoDB | Blog
A
About on SuperTechFans
M
MIT News - Artificial intelligence
V
Visual Studio Blog
云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
Jina AI
Jina AI
P
Proofpoint News Feed
博客园_首页
酷 壳 – CoolShell
酷 壳 – CoolShell
T
The Blog of Author Tim Ferriss
G
Google Developers Blog
宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
N
Netflix TechBlog - Medium
人人都是产品经理
人人都是产品经理

博客园 - 草珊瑚

前端git开发分支各种场景管理 RxJS Subject学习 微信小程序登陆流程(20200322) vue依赖收集的策略 eggjs2.x版本异步获取config配置方案 - 草珊瑚 - 博客园 计算机中对流的理解 Egg.js运行环境配置场景 Promise和Observable的映射 eggjs异常捕获机制 极客时间数据结构与算法之美笔记7 JS项目快速压缩(windows平台) - 草珊瑚 - 博客园 JS项目快速压缩(windows平台) - 草珊瑚 - 博客园 Maven工程的POM继承 Docker构建一个node镜像 win10家庭版安装Docker for Windows linux,vim和bash命令小册 vue文档阅读笔记——计算属性和侦听器 nodejs的jekins部署 `vue-router`的`History`模式下的项目发布
dubbo连接过程
草珊瑚 · 2019-12-02 · via 博客园 - 草珊瑚

场景1 启动时

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

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

其中第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