前言【Dubbo-聊聊注册中心的设计】Dubbo源码阅读分享系列文章,欢迎大家关注点赞
SPI实现部分
- Dubbo-SPI机制
- Dubbo-Adaptive实现原理
- Dubbo-Activate实现原理
- Dubbo SPI-Wrapper
- Provider应用启动后的初始化阶段会向注册中心完成注册操作;
- Consumer应用启动初始化阶段会完成对所需 Provider的进行订阅操作;
- 在Provider发生变更时通知监听的Consumer;
源码分析开始之前,首先来看下关于注册中心源码的项目结构,整个项目由两块组成,一个就是核心Api,另外一个就是具体一些中间件的实现,看到这个我们可能会有一些想法,这个定然会有一些模板类以及一些工厂设计,能想到这里,说明你已经具有很好的抽象思维,废话不多说开始源码 。
文章插图
核心Apidubbo-registry-api是注册中心核心对象的抽象以及实现部分,我们首先来看下几个核心对象设计
文章插图
NodeNode位于Dubbo的dubbo-common项目下面,在Dubbo中Node这个接口用来抽象节点的概念,Node不仅可以表示Provider和Consumer节点,还可以表示注册中心节点 。Node节点内部定义三个方法:
- getUrl方法返回当前节点的URL;
- isAvailable方法方法返回对象是否可用;
- destroy方法负责销毁对象;
- register方法向注册中心注册一个URL;
- unregister方法取消一个URL的注册;
- subscribe方法订阅一个URL,订阅成功之后,当订阅的数据发生变化时,注册中心会主动通知第二个参数指定的 NotifyListener对象,NotifyListener接口中定义的 notify() 方法就是用来接收该通知的;
- unsubscribe方法取消一个URL定义,同时当数据发生变化时候也会主动发起通知;
经验总结扩展阅读
- 2023年10月2日公司注册好不好 2023年农历八月十八宜公司注册吗
- 2023年10月3日是公司注册的黄道吉日吗 2023年农历八月十九公司注册吉日
- 2023年农历正月十七公司注册吉日 2023年2月7日是公司注册吉日吗
- 2023年10月4日公司注册行吗 2023年10月4日是公司注册吉日吗
- 驱动开发:内核枚举Registry注册表回调
- 2023年10月5日公司注册黄道吉日 2023年10月5日是公司注册的黄道吉日吗
- 2023年2月8日是公司注册的黄道吉日吗 2023年2月8日公司注册黄道吉日
- 2023年10月6日公司注册黄道吉日 2023年农历八月廿二宜公司注册吗
- 2023年农历八月廿三宜公司注册吗 2023年10月7日公司注册吉日一览表
- 2023年农历八月廿四宜公司注册吗 2023年10月8日公司注册黄道吉日