高性能rpc框架-Dubbo注册中心

本文介绍了Dubbo注册中心的重要性和作用,包括动态加入、发现、调整和统一配置。讨论了Dubbo 2.6.x及2.7.7版本中的各种注册中心选项,如Zookeeper、Nacos、Consul等。强调了Eureka的现状,Nacos作为Spring Cloud Alibaba组件的特性。对比了Zookeeper的CP特性与Nacos的AP和CP模式。详细阐述了注册中心的工作流程、Zookeeper的节点类型以及Dubbo在Zookeeper上的发布与订阅机制。此外,还分析了Dubbo的缓存机制和重试策略。
摘要由CSDN通过智能技术生成

Dubbo微服务体系中,注册中心是核心组件之一,dubbo通过注册中心实现服务注册与发现。

注册中心有哪些作用?

  • 动态加入: 服务提供者通过注册中心动态的把自己暴露给其他服务消费者,无需服务提供者逐个更新配置文件。
  • 动态发现: 动态感知新的配置、路由规则、新服务不需要重启服务使之生效。
  • 动态调整: 动态调整参数,自动同步到所有相关的服务节点。
  • 统一配置: 避免了本地配置导致每个服务的配置不一致。

Dubbo 2.6.x版本中主要包含四种注册中心: Zookerper、Redis、Simple、Multicast。
Dubbo 2.7.7最新版本中注册中心增加了:Sofa、Nacos、Eureka、etcd3、Consul。

  • Eureka: 是SpringCloud Netfilx中的重要组件,主要作用是做服务注册和发现,但是现在已经闭源(2.0版本以后)。
  • Nacos: 是一个更易于构建原生态应用的动态服务发现,配置管理和服务管理平台,它是Spring Cloud Alibaba组件之一,负责服务注册与发现和服务配置,可以认为nacos=enueka+config。
  • Consul: 是基于GO语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册,服务发现和配置管理的功能。
  • Sofa: 蚂蚁金服开源的具有承载海量服务注册和订阅能力的、高可用的服务注册中心。

Dubbo 2.6.x官方推荐使用的注册中心是Zookerper,而Nacos现在使用的也越来越多。

Nacos和Zookerper有什么不同?

  • CAP理论

    一致性(Consistency) :所有节点在同一时间具有相同的数据
    可用性(Availability) :保证每个请求不管成功或者失败都有响应
    分区容忍性(Partition tolerance) :系统中任意信息的丢失或失败不会影响系统的继续运作

  • Zookerper

    • CAP理论选择CP强一致性,如果Master节点挂了,zookeeper集群需要重新选举,这个是时候不能提供服务的。
    • 健康检查支持Keep Alive。
  • Nacos

    • Nacos同时支持AP和CP两种模式,具体选择根据服务注册选择临时和永久来决定走AP模式还是CP模式。
    • Nacos=配置管理+注册中心
    • Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。

注册中心工作流程
工作流程

  • 服务提供者启动时,会向注册中心写入自己的元信息,同时会订阅配置元数据信息 。
  • 消费者启动时,向注册中心写入自己的元信息,并订阅服务提供者、路由和配置元信息。
  • 服务治理中心(dubbo-admin)启动时,会订阅所有消费者、服务提供者、路由和配置元数据信息。
  • 服务提供者离开或者有新服务加入,注册中心服务提供者目录会发生变化,变化信息会动态通知消费者,服务治理中心。
  • 消费者发起服务调用时,会异步调用,统计信息等上报监控中心(dubbo-admin-simple)
    Zookeeper原理
    Zookeper是树形结构的注册中心,每个节点的类型分为持久节点、持久顺序节点、临时节点、临时顺序节点。

    1.持久节点:服务注册后保证节点不丢失,注册中心重启也会存在。
    2.持久顺序节点:在持久节点特性基础上增加节点先后顺序的能力。
    3.临时节点:服务注册后连接丢失或者Session超时,注册的节点会自动被移除。
    4.临时顺序节点:在临时节点基础上增加了节点的先后顺序能力。

Dubbo使用Zookerper注册中心,只是用了持久节点和临时节点,对创建的顺序并没有要求。

 + /dubbo
 + --service
        +-- providers
        +-- consumers
        +-- routers
        +-- configurators

Dubbo在启动时会创建4个目录,在providers和consumers目录中分别存储服务提供方,消费方元数据信息,主要包括IP、端口、权重和用户名等数据,routers用于消费路由策略,URL元数据信息,configurators服务动态配置元数据信息。

  • Zookeeper发布实现

    服务提供提供者注册是为了让消费者感知服务的存在,从而发起远程调用,也让服务治理中心感知有新的服务提供者上线,Zookeeper发布就是调用Zookeeper的客户端在注册中心创建一个目录,取消发布只要把对应的路径删除。

  • Zookeeper订阅实现
    订阅通常有pull和push两种形式:

    pull 客户端定时轮询

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值