Dubbo的注册中心有好多种,包括MulticastZookeeperRedisSimple等。Dubbo官方推荐使用Zookeeper注册中心,我所使用过的也只是Zookeeper注册中心。

首先介绍一下Zookeeper: ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

建议使用dubbo-2.3.3以上版本的zookeeper注册中心客户端

流程说明:

服务提供者启动时
    向/dubbo/com.foo.BarService/providers目录下写入自己的URL地址。
服务消费者启动时
    订阅/dubbo/com.foo.BarService/providers目录下的提供者URL地址。
    并向/dubbo/com.foo.BarService/consumers目录下写入自己的URL地址。
监控中心启动时
    订阅/dubbo/com.foo.BarService目录下的所有提供者和消费者URL地址。

支持以下功能:

当提供者出现断电等异常停机时,注册中心能自动删除提供者信息。
当注册中心重启时,能自动恢复注册数据,以及订阅请求。
当会话过期时,能自动恢复注册数据,以及订阅请求。
当设置时,记录失败注册和订阅请求,后台定时重试。
可通过设置zookeeper登录信息。
可通过设置zookeeper的根节点,不设置将使用无根树。
支持*号通配符,可订阅服务的所有分组和所有版本的提供者。

ZKClient Zookeeper Registry

从2.2.0版本开始缺省为zkclient实现,以提升zookeeper客户端的健状性。

缺省配置:

或:

dubbo.registry.client=zkclient

或:

zookeeper://10.20.153.10:2181?client=zkclient

Curator Zookeeper Registry

从2.3.0版本开始支持可选curator实现。 如果需要改为curator实现,请配置:

或:

dubbo.registry.client=curator

或:

zookeeper://10.20.153.10:2181?client=curator

Zookeeper单机配置:

Or:

Zookeeper集群配置:

Or:

同一Zookeeper,分成多组注册中心: