http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-RequiredDependencies
Zookeeper Registry
建议使用dubbo-2.3.3以上版本的zookeeper注册中心客户端
Zookeeper说明
Zookeeper是Apacahe Hadoop的子项目,是一个树型的目录服务,支持变更推送,适合作为Dubbo服务的注册中心,工业强度较高,可用于生产环境,并推荐使用,参见:
http://zookeeper.apache.org
Zookeeper安装
安装方式参见:
Zookeeper安装手册
,只需搭一个原生的Zookeeper服务器,并将
Quick Start
中Provider和Consumer里的conf/dubbo.properties中的dubbo.registry.addrss的值改为zookeeper://127.0.0.1:2181即可使用
流程说明:
-
服务提供者启动时
- 向/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。
- 支持*号通配符<dubbo:reference group="*" version="*" />,可订阅服务的所有分组和所有版本的提供者。
在provider和consumer中增加zookeeper客户端jar包依赖:
<
dependency
>
<
groupId
>org.apache.zookeeper</
groupId
>
<
artifactId
>zookeeper</
artifactId
>
<
version
>3.3.3</
version
>
</
dependency
>
|
或直接下载: http://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper
支持zkclient和curator两种Zookeeper客户端实现:
ZKClient Zookeeper Registry
从2.2.0版本开始缺省为zkclient实现,以提升zookeeper客户端的健状性。
ZKClient是Datameer开源的一个Zookeeper客户端实现,开源比较早,参见: https://github.com/sgroschupf/zkclient |
缺省配置:
<
dubbo:registry
...
client
=
"zkclient"
/>
|
或:
dubbo.registry.client=zkclient
|
或:
zookeeper://10.20.153.10:2181?client=zkclient
|
需依赖:
<
dependency
>
<
groupId
>com.github.sgroschupf</
groupId
>
<
artifactId
>zkclient</
artifactId
>
<
version
>0.1</
version
>
</
dependency
>
|
或直接下载: http://repo1.maven.org/maven2/com/github/sgroschupf/zkclient
Curator Zookeeper Registry
从2.3.0版本开始支持可选curator实现。
Curator是Netflix开源的一个Zookeeper客户端实现,比较活跃,参见: https://github.com/Netflix/curator |
如果需要改为curator实现,请配置:
<
dubbo:registry
...
client
=
"curator"
/>
|
或:
dubbo.registry.client=curator
|
或:
zookeeper://10.20.153.10:2181?client=curator
|
需依赖:
<
dependency
>
<
groupId
>com.netflix.curator</
groupId
>
<
artifactId
>curator-framework</
artifactId
>
<
version
>1.1.10</
version
>
</
dependency
>
|
或直接下载: http://repo1.maven.org/maven2/com/netflix/curator/curator-framework
Zookeeper单机配置:
<
dubbo:registry
address
=
"zookeeper://10.20.153.10:2181"
/>
|
Or:
<
dubbo:registry
protocol
=
"zookeeper"
address
=
"10.20.153.10:2181"
/>
|
Zookeeper集群配置:
<
dubbo:registry
address
=
"zookeeper://10.20.153.10:2181?backup=10.20.153.11:2181,10.20.153.12:2181"
/>
|
Or:
<
dubbo:registry
protocol
=
"zookeeper"
address
=
"10.20.153.10:2181,10.20.153.11:2181,10.20.153.12:2181"
/>
|
同一Zookeeper,分成多组注册中心:
<
dubbo:registry
id
=
"chinaRegistry"
protocol
=
"zookeeper"
address
=
"10.20.153.10:2181"
group
=
"china"
/>
<
dubbo:registry
id
=
"intlRegistry"
protocol
=
"zookeeper"
address
=
"10.20.153.10:2181"
group
=
"intl"
/>