本文共 2345 字,大约阅读时间需要 7 分钟。
节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。Registry: 服务注册与发现的注册中心。Monitor: 统计服务的调用次调和调用时间的监控中心。Container: 服务运行容器。调用关系说明:0. 服务容器负责启动,加载,运行服务提供者。
1. 服务提供者在启动时,向注册中心注册自己提供的服务。2. 服务消费者在启动时,向注册中心订阅自己所需的服务。3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
流程说明:
服务提供者启动时
向/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="*" />,可订阅服务的所有分组和所有版本的提供者。在provider和consumer中增加zookeeper客户端jar包依赖:
1 2 3 4 5 | < 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客户端实现:
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
需依赖:
1 2 3 4 5 | < dependency > < groupId >com.github.sgroschupf</ groupId > < artifactId >zkclient</ artifactId > < version >0.1</ version > </ dependency > |
或直接下载:http://repo1.maven.org/maven2/com/github/sgroschupf/zkclient
Zookeeper单机配置:
1 2 3 | < dubbo:registry address="" /> Or: < dubbo:registry protocol="zookeeper" address="10.20.153.10:2181" /> |
Zookeeper集群配置:
1 2 3 | < dubbo:registry address=",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,分成多组注册中心:
1 2 | < 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" /> |
转载地址:http://gzfcx.baihongyu.com/