目录:
服务注册与发现机制
服务调用
线程派发机制
1、服务注册与发现机制
Dubbo的服务注册与发现机制如下图所示:
Dubbo中存在4类角色:
Registry 注册中心。
Consumer 服务调用者、消费端。
Provider 服务提供者。
Monitor 监控中心。
调用过程:
服务提供者 Provider 启动然后向 Registry 注册自己所能提供的服务。
服务消费者 Consumer 向Registry订阅所需服务,Consumer 解析Registry提供的元信息,从服务中通过负载均衡选择 Provider调用。
服务提供方 Provider 元数据变更的话Registry会把变更推送给Consumer,以此保证Consumer获得最新可用信息。
注意点:
Provider 跟 Consumer 在内存中记录调用次数跟时间,定时发送统计数据到Monitor,发送的时候是短连接。
Monitor 跟 Registry 是可选的,可直接在配置文件中写好,Provider 跟 Consumer进行直连。
Monitor 跟 Registry 挂了也没事, Consumer 本地缓存了 Provider 信息。
Consumer 直接调用 Provider 不会经过 Registry。Provider、Consumer这俩到 Registry之间是长连接。
Dubbo官方提供了多种注册中心,接下来将以使用最为普遍的Zookeeper进一步介绍注册中心的原理。首先我们来看一下Zookeeper注册中心中的数据存储目录结构,从目录结构来窥探其实现机制。