服务器 > 服务器 > 微服务

服务注册 Zookeeper

106人参与 2024-08-02 微服务

服务注册 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

配置大全:

注册中心配置。

属性对应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 节点结构

在这里插入图片描述

流程:

支持以下功能:

4、注册中心的实质

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

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

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

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

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

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

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

ZooKeeper中节点的操作命令(查看、创建、删除节点)_zookeeper 删除 节点

08-02

Zookeeper与Nacos的对比分析

08-02

Zookeeper 复习知识点(更新中)

08-02

访问网站提示502 Bad Gateway的原因和解决方法

08-02

【Docker】docker常用命令

08-02

网格化监控:Eureka与分布式服务网格的协同监控

08-02

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论