目前Dubbo主要支持5种形式的注册中心,其中推荐使用zookeeper注册中心
Multicast 注册中心不需要启动任何中心节点,只要广播地址一样,就可以互相发现。
unicast=false
,则广播给订阅者组播受网络结构限制,只适合小规模应用或开发阶段使用。组播地址段: 224.0.0.0 - 239.255.255.255
Zookeeper 是 Apacahe Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用 [1]。
流程说明:
/dubbo/com.foo.BarService/providers
目录下写入自己的 URL 地址/dubbo/com.foo.BarService/providers
目录下的提供者 URL 地址。并向 /dubbo/com.foo.BarService/consumers
目录下写入自己的 URL 地址/dubbo/com.foo.BarService
目录下的所有提供者和消费者 URL 地址。支持以下功能:
<dubbo:registry check="false" />
时,记录失败注册和订阅请求,后台定时重试<dubbo:registry username="admin" password="1234" />
设置 zookeeper 登录信息<dubbo:registry group="dubbo" />
设置 zookeeper 的根节点,不配置将使用默认的根节点。*
号通配符 <dubbo:reference group="*" version="*" />
,可订阅服务的所有分组和所有版本的提供者Nacos 是 Dubbo 生态系统中重要的注册中心实现,其中 dubbo-registry-nacos
则是 Dubbo 融合 Nacos 注册中心的实现。
当您将 dubbo-registry-nacos
整合到您的 Dubbo 工程之前,请确保后台已经启动 Nacos 服务。如果您尚且不熟悉 Nacos 的基本使用的话,可先行参考 Nacos 快速入门。建议使用 Nacos 1.0.0
及以上的版本。
Dubbo 融合 Nacos 成为注册中心的操作步骤非常简单,大致步骤可分为“增加 Maven 依赖”以及“配置注册中心“。
使用 Redis 的 Key/Map 结构存储数据结构:
使用 Redis 的 Publish/Subscribe 事件通知数据变更:
register
, unregister
, subscribe
, unsubscribe
register
, unregister
事件psubscribe
功能订阅 /dubbo/*
,会收到所有服务的所有变更事件调用过程:
Key:/dubbo/com.foo.BarService/providers
下,添加当前提供者的地址Channel:/dubbo/com.foo.BarService/providers
发送 register
事件Channel:/dubbo/com.foo.BarService/providers
订阅 register
和 unregister
事件Key:/dubbo/com.foo.BarService/consumers
下,添加当前消费者的地址register
和 unregister
事件后,从 Key:/dubbo/com.foo.BarService/providers
下获取提供者地址列表Channel:/dubbo/*
订阅 register
和 unregister
,以及 subscribe
和unsubsribe
事件register
和 unregister
事件后,从 Key:/dubbo/com.foo.BarService/providers
下获取提供者地址列表subscribe
和 unsubsribe
事件后,从 Key:/dubbo/com.foo.BarService/consumers
下获取消费者地址列表Simple 注册中心本身就是一个普通的 Dubbo 服务,可以减少第三方依赖,使整体通讯方式一致。