Dubbo核心架构!
Dubbo核心架构!
月伴飞鱼Registry:注册中心
负责服务地址的注册与查找,服务的 Provider 和 Consumer 只在启动时与注册中心交互。
注册中心通过长连接感知 Provider 的存在,在 Provider 出现宕机的时候。
- 注册中心会立即推送相关事件通知 Consumer。
Provider:服务提供者
在它启动的时候,会向 Registry 进行注册操作。
- 将自己服务的地址和相关配置信息封装成 URL 添加到 ZooKeeper 中。
Consumer:服务消费者
在它启动的时候,会向 Registry 进行订阅操作。
订阅操作会从 ZooKeeper 中获取 Provider 注册的 URL,并在 ZooKeeper 中添加相应的监听器。
获取到 Provider URL 之后,Consumer 会根据负载均衡算法从多个 Provider 中选择一个 Provider 并与其建立连接
- 最后发起对 Provider 的 RPC 调用。
如果 Provider URL 发生变更,Consumer 将会通过之前订阅过程中在注册中心添加的监听器
- 获取到最新的 Provider URL 信息,进行相应的调整,比如断开与宕机 Provider 的连接,并与新的 Provider 建立连接。
Consumer 与 Provider 建立的是长连接,且 Consumer 会缓存 Provider 信息,所以一旦连接建立。
- 即使注册中心宕机,也不会影响已运行的 Provider 和 Consumer。
Monitor:监控中心
用于统计服务的调用次数和调用时间。
Provider 和 Consumer 在运行过程中,会在内存中统计调用次数和调用时间。
- 定时每分钟发送一次统计数据到监控中心。