【知识积累】(二)、Dubbo注册中心

一、分类

Zookeeper(默认)、Multicase、Redis、Simple

二、Zokeeper注册中心

安装请参照:http://blog.csdn.net/axin1240101543/article/details/79368271

1、简介

Zookeeper是Dubbo推荐使用的注册中心,是Apache Hadoop的子项目,是一个树型的目录服务,支持变更服务,工业强度较高,适用生产环境。

流程说明:

 

  • 服务提供者启动时:向/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="*" />,可订阅服务的所有分组和所有版本的提供者。

2、依赖

在provider和consumer中加入zookeeper客户端jar包依赖:

<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.3.3</version>

</dependency>

3、客户端

Dubbo支持zkclient和curator客户端

a、zkcilent客户端(默认

<dependency>
    <groupId>com.github.sgroschupf</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.1</version>

</dependency>

从2.2.0版本缺省为zkclient实现,以提升zookeeper客户端的健壮性。zkclient是Datameer开源的一个zookeeper客户端实现。

<dubbo:registry client="zkclient"/>

或者:dubbo.registry.client=zkclient

或者:zookeeper://127.0.0.1:2181?client=zkclient

b、curator客户端

<dependency>
    <groupId>com.netflix.curator</groupId>
    <artifactId>curator-framework</artifactId>
    <version>1.1.10</version>

</dependency>

从2.3.0版本开始支持可选curator实现。Curator是Netflix开源的一个zookeeper客户端实现。

 

<dubbo:registry client="curator"/>

或者:dubbo.registry.client=curator

或者:zookeeper://127.0.0.1:2181?client=curator

4、单机和集群配置

a、单机

<dubbo:registry address="zookeeper://127.0.0.1:2181"/>

或者:<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"/>

b、集群

<dubbo:registry address="zookeeper://127.0.0.1:2181?backup=192.168.0.1:2181,192.168.0.2:2181"/>

或者:<dubbo:registry protocol="zookeeper" address="192.168.0.1:2181,192.168.0.2:2181"/>

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

<dubbo:registry id="chinaRegistry" protocol="zookeeper" address="127.0.0.1:2181" group="china"/>

<dubbo:registry id="intlRegistry" protocol="zookeeper" address="127.0.0.1:2181" group="intl"/>

5、配置参数说明

<dubbo:registry />注册中心配置,对应的配置类:com.alibaba.dubbo.config.RegistryConfig。

如果有多个注册中心,可声明多个<dubbo:registry />,通过id属性来区分,并在<dubbo:service />或<dubbo:reference/>的registry属性指定使用的注册中心。

 

属性对应的URL参数类型是否必填缺省值作用描述
兼容性
id string  配置关联标识此注册中心1.0.16以上
address<host:prot>string必填 服务发现

注册中心地址,

无端口缺省值9090,

同一集群地址用

逗号分隔,不同

集群配置多个

<dubbo:registry />

1.0.16以上
protocol<protocol>string dubbo服务发现

注册中心地址协议,

支持dubbo、http、local

三种协议

2.0.0以上
port<port>string 9090服务发现

注册中心缺省端口,

当address没有端口,

使用此参数

2.0.0以上
username<username>string  服务治理

登陆注册中心用户名

不需验证可为空

2.0.0以上
password<password>string  服务治理

登陆注册中心密码

不需验证可为空

2.0.0以上
transportregistry.transporterstring netty性能调优

网络传输方式

mina、netty

2.0.0以上
timeoutregistry.timeoutint 5000性能调优

注册中心请求超时时间

单位:毫秒

2.1.0以上
sessionregistry.sessionint 60000性能调优

注册中心会话超时时间

单位:毫秒

用于检测提供者非正常

断电后的脏数据,比如

心跳检测。

2.1.0以上
fileregistry.filestring  服务治理

使用文件存储注册中心

及服务提供者列表,应用

重启时将基于此文件恢复

(两个注册中心不能用一个文件)

2.0.0以上
waitregistry.waitint 0服务治理

停止时等待通知完成时间

单位:毫秒

2.0.0以上
checkcheckboolean true服务治理注册中心不存在,是否报错2.0.5以上
registerregisterboolean true服务治理是否开启向注册中心注册2.0.5以上
subscribesubscribeboolean true服务治理是否开启向注册中心订阅2.0.5以上
dynamicdynamicboolean true服务治理服务是否动态注册2.0.5以上

 

三、Multicase注册中心

1、流程说明

此注册中心不需要启动任何中心节点,只要广播地址一样,就可以互相发现。

a、提供者启动时,广播自己的地址

b、消费方启动时,广播订阅请求

c、提供方收到订阅请求后,单播自己的地址给订阅者,如果设置了unicast=false,则广播给订阅者。

d、消费方收到提供方地址时,连接该地址进行RPC调用。

组播受网络结构限制,只适合小规模应用或开发阶段使用。组播地址段:224.0.0.0-239.255.255.255

2、配置

<dubbo:registry address="multicast://224.5.6.7:1234" />

或者:

<dubbo:registry protocol="multicast" address="224.5.6.7:1234" />

为了减少广播量,Dubbo默认使用单播发送提供者地址给消费者,如果一台机器上同时启动了多个消费者进程,消费者需声明unicast=false,否则只有一个消费者收到消息:

<dubbo:registry protocol="multicast" address="224.5.6.7:1234?unicast=false" />

或者:

<dubbo:registry address="multicast://224.5.6.7:1234" >

   <dubbo:parameter key="unicast" value="false"/>

<dubbo:registry/>

四、Redis注册中心

五、Simple注册中心

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值