服务注册 Zookeeper

服务注册 Zookeeper

1、配置并启用 Zookeeper

# application.yml
dubbo
 registry
   address: zookeeper://localhost:2181
# dubbo.properties
dubbo.registry.address=zookeeper://localhost:2181
<dubbo:registry address="zookeeper://localhost:2181" />

address 是启用 zookeeper 注册中心唯一必须指定的属性,而在生产环境下,address 通常被指定为集群地址,如

address=zookeeper://10.20.153.10:2181?backup=10.20.153.11:2181,10.20.153.12:2181

protocol 与 address 分开配置的模式也可以,如

<dubbo:registry protocol="zookeeper" address="10.20.153.10:2181,10.20.153.11:2181,10.20.153.12:2181" />

2、高级配置

1、认证服务

如果 Zookeeper 开启认证,Dubbo 支持指定 username、password 的方式传入身份标识。

# application.yml
dubbo
 registry
   address: zookeeper://localhost:2181
   username: hello
   password: 1234

2、分组隔离

通过指定 group 属性,可以在同一个 Zookeeper 集群内实现微服务地址的逻辑隔离。比如可以在一套集群内隔离出多套开发环境,在地址发现层面实现隔离。

# application.yml
dubbo
 registry
   address: zookeeper://localhost:2181
   group: daily1

3、配置过期时间

配置连接、会话过期时间

# application.yml
dubbo
 registry
   address: zookeeper://localhost:2181
   timeout: 30 * 1000* # 连接超时时间,默认 30s
   session: 60 * 1000* # 会话超时时间,默认 60s

配置大全:

注册中心配置。

对应的配置类: org.apache.dubbo.config.RegistryConfig。同时如果有多个不同的注册中心,可以声明多个 <dubbo:registry> 标签,并在 <dubbo:service><dubbo:reference>registry 属性指定使用的注册中心。

属性对应URL参数类型是否必填缺省值作用描述兼容性
idstring可选配置关联注册中心引用BeanId,可以在<dubbo:service registry=“”>或<dubbo:reference registry=“”>中引用此ID1.0.16以上版本
addresshost:portstring必填服务发现注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的注册中心,请配置多个dubbo:registry标签1.0.16以上版本
protocolstring可选dubbo服务发现注册中心地址协议,支持dubbo, multicast, zookeeper, redis, consul(2.7.1), sofa(2.7.2), etcd(2.7.2), nacos(2.7.2)等协议2.0.0以上版本
portint可选9090服务发现注册中心缺省端口,当address没有带端口时使用此端口做为缺省值2.0.0以上版本
usernamestring可选服务治理登录注册中心用户名,如果注册中心不需要验证可不填2.0.0以上版本
passwordstring可选服务治理登录注册中心密码,如果注册中心不需要验证可不填2.0.0以上版本
transportregistry.transporterstring可选netty性能调优网络传输方式,可选mina,netty2.0.0以上版本
timeoutregistry.timeoutint可选5000性能调优注册中心请求超时时间(毫秒)2.0.0以上版本
sessionregistry.sessionint可选60000性能调优注册中心会话超时时间(毫秒),用于检测提供者非正常断线后的脏数据,比如用心跳检测的实现,此时间就是心跳间隔,不同注册中心实现不一样。2.1.0以上版本
zonezonestring可选服务治理注册表所属区域,通常用于流量隔离2.7.5以上版本
fileregistry.filestring可选服务治理使用文件缓存注册中心地址列表及服务提供者列表,应用重启时将基于此文件恢复,注意:两个注册中心不能使用同一文件存储2.0.0以上版本
waitregistry.waitint可选0性能调优停止时等待通知完成时间(毫秒)2.0.0以上版本
checkcheckboolean可选true服务治理注册中心不存在时,是否报错2.0.0以上版本
registerregisterboolean可选true服务治理是否向此注册中心注册服务,如果设为false,将只订阅,不注册2.0.5以上版本
subscribesubscribeboolean可选true服务治理是否向此注册中心订阅服务,如果设为false,将只注册,不订阅2.0.5以上版本
dynamicdynamicboolean可选true服务治理服务是否动态注册,如果设为false,注册后将显示为disable状态,需人工启用,并且服务提供者停止时,也不会自动取消注册,需人工禁用。2.0.5以上版本
groupgroupstring可选dubbo服务治理服务注册分组,跨组的服务不会相互影响,也无法相互调用,适用于环境隔离。2.0.5以上版本
versionversionstring可选服务发现服务版本1.0.0以上版本
simplifiedsimplifiedboolean可选false服务治理注册到注册中心的URL是否采用精简模式的(与低版本兼容)2.7.0以上版本
extra-keysextraKeysstring可选服务治理在simplified=true时,extraKeys允许你在默认参数外将额外的key放到URL中,格式:“interface,key1,key2”。2.7.0以上版本
useAsConfigCenterboolean可选服务治理该注册中心是否作为配置中心使用2.7.5以上版本
useAsMetadataCenterboolean可选服务治理该注册中心是否作为元数据中心使用2.7.5以上版本
acceptsacceptsstring可选服务治理该注册中心接收rpc协议列表,多协议用逗号隔开,例如dubbo,rest2.7.5以上版本
preferredpreferredboolean可选服务治理是否作为首选注册中心。当订阅多注册中心时,如果设为true,该注册中心作为首选2.7.5以上版本
weightweightint可选性能调优注册流量权重。使用多注册中心时,可通过该值调整注册流量的分布,当设置首选注册中心时该值不生效2.7.5以上版本
registerModeregister-modestring可选all服务治理控制地址注册行为,应用级服务发现迁移用。 * instance 只注册应用级地址; * interface 只注册接口级地址; * all(默认) 同时注册应用级和接口级地址;3.0.0以上版本
enableEmptyProtectionenable-empty-protectionboolean可选true服务治理是否全局启用消费端的空地址列表保护,开启后注册中心的空地址推送将被忽略,默认 true3.0.0以上版本
parametersMap<string, string>可选服务治理扩展预留,可扩展定义任意参数,所有扩展参数都将原样反映在 URL 配置上2.0.0以上版本

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 地址。

支持以下功能:

  • 当提供者出现断电等异常停机时,注册中心能自动删除提供者信息
  • 当注册中心重启时,能自动恢复注册数据,以及订阅请求
  • 当会话过期时,能自动恢复注册数据,以及订阅请求
  • 当设置 <dubbo:registry check="false" /> 时,记录失败注册和订阅请求,后台定时重试
  • 可通过 <dubbo:registry username="admin" password="1234" /> 设置 zookeeper 登录信息
  • 可通过 <dubbo:registry group="dubbo" /> 设置 zookeeper 的根节点,不配置将使用默认的根节点。
  • 支持 * 号通配符 <dubbo:reference group="*" version="*" />,可订阅服务的所有分组和所有版本的提供者

4、注册中心的实质

注册中心实质上是一个集中存储和管理服务元数据信息的组件。它在Dubbo框架中扮演着重要角色,用于实现服务的注册、发现和通知。

具体来说,注册中心是一个独立的服务,它维护着一个服务目录,记录了可用的服务提供者的地址、协议、调用方式等信息。服务提供者在启动时,会向注册中心注册自己提供的服务,并定期发送心跳保持连接。而服务消费者则可以通过注册中心查询和订阅自己所需的服务,获取可用的服务提供者列表。

注册中心的实质可以是多种不同的实现,Dubbo框架支持多种注册中心,如Zookeeper、Redis、Multicast、Simple等。不同的注册中心实现方式可能有所差异,但其核心功能都是提供服务的注册、发现和通知功能。

所需的服务,获取可用的服务提供者列表。

注册中心的实质可以是多种不同的实现,Dubbo框架支持多种注册中心,如Zookeeper、Redis、Multicast、Simple等。不同的注册中心实现方式可能有所差异,但其核心功能都是提供服务的注册、发现和通知功能。

总而言之,注册中心的实质是一个集中管理服务元数据信息的组件,它提供了服务的注册和发现功能,帮助服务提供者和消费者之间实现解耦和动态扩展,从而构建一个高可用、弹性和可伸缩的分布式服务架构。

  • 9
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值