dubbo源码_Dubbo源码-注册中心
Dubbo注册中心注册实现了分布式环境中个注册服务于发现,它记录了当前节点注册的服务和订阅服务,并可以动态加入订阅和服务,也可以动态取消订阅和服务。
注册中心源码按照包结构可以如下划分:
- api:包含了注册中心的所有的API和抽象实现类
- zookeeper:使用Zookeeper作为注册中心的实现
- redis:使用Redis作为注册中心的实现
- default:Dubbo基于内存的默认实现,
- multicast:multicast模式的服务注册于发现
工作流程:
- 当生产者启动时,回向注册中心写入自己的元数据信息,并订阅生产者、路由和配置元数据信息
- 消费者启动时,也会向数据中心写入自己的元数据信息,并订阅生产者、路由和配置元数据信息
- 服务治理中心(dubbo-admin)启动时,会同时订阅所有的消费者路由和配置元数据信息
- 每当有生产者离开或者有新的服务提供者加入时,注册中心生产者目录会发生改变,变化信息会动态通知给消费者、服务治理中心
- 每当消费者发起服务调用时,会异步将调用,统计信息等上报给监控中心(dubbo-monitor-simple)
dubbo-registry中提供了四种注册中心实现,分别为:zookeeper(官方推荐),Redis,default,muticast这四种
Simple是一个单点Rpc服务,不支持集群,也不允许出现故障,是一个标准的Rpc服务。
multicast是广播模式,生产者启动时会广播自己的地址,消费者启动时会广播订阅请求,生产者收到订阅请求就会根据广播或单播给订阅者。此模式十分不安全。
dubbo有非常良好的扩展性,如果以上四种不能满足业务,用户可以自行扩展。