博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Zookeeper笔记(四)Zookeeper在Dubbo中的应用
阅读量:5836 次
发布时间:2019-06-18

本文共 2345 字,大约阅读时间需要 7 分钟。

Zookeeper在Dubbo中的应用

Dubbo的架构

节点角色说明:

Provider: 暴露服务的服务提供方。

Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。
调用关系说明:

0. 服务容器负责启动,加载,运行服务提供者。

1. 服务提供者在启动时,向注册中心注册自己提供的服务。
2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

Dubbo推荐使用Zookeeper注册中心

流程说明:

服务提供者启动时

向/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/

你可能感兴趣的文章
跟我学Spring Cloud(Finchley版)-17-Zuul路由配置详解
查看>>
2.nginx架构及工作流程
查看>>
事故·由于操作不当,造成小范围断电
查看>>
识别线程结束,获取信息
查看>>
信号(signal)
查看>>
css续集3
查看>>
springboot2增加diskspace指标
查看>>
聊聊storm trident spout的_maxTransactionActive
查看>>
【学习笔记】Android权限操作
查看>>
聊聊flink taskmanager的jvm-exit-on-oom配置
查看>>
作业三
查看>>
实现xshell以及crt自动化登录
查看>>
双重检查
查看>>
http主要应用
查看>>
Arraylist动态扩容详解
查看>>
运维学习之ISCSI(小型计算机系统接口)服务
查看>>
samba安装与配置
查看>>
硬盘SMART检测参数详解[转]
查看>>
QDemo之去除窗体标题栏
查看>>
Tomcat安装以及多实例部署
查看>>