Nacos 源码分析(五) 一致性协议Distro

本文深入探讨Nacos的Distro协议,用于保证注册中心的数据一致性。协议特点是无需持久化,确保写操作始终成功,通过节点间的交互实现数据同步。服务端接收到心跳包后,若长时间未收到则会下线服务。Distro协议涉及服务注册、心跳、健康检查等关键环节,并在新节点启动时加载数据。此外,Nacos还支持AP和CP两种一致性协议,Distro提供高可用的AP解决方案。
摘要由CSDN通过智能技术生成
EphemeralConsistencyService 接口

这个为临时数据的一致性协议: 这种类型的一致性协议,不需要把数据存储到磁盘或者数据库;因为临时数据通常和服务器保持一个session会话;这个会话只要存在,数据就不会丢失。

写必须永远是成功的,即使可能会发生网络分区。当网络恢复时,每个数据分片都合并到一个set中,所以集群就是恢复成一致性的状态

distro协议的关键点:

  • distro协议是为了注册中心而创造出的协议;

  • 客户端与服务端有两个重要的交互,服务注册与心跳发送;

  • 客户端以服务为维度向服务端注册,注册后每隔一段时间向服务端发送一次心跳,心跳包需要带上注册服务的全部信息,在客户端看来,服务端节点对等,所以请求的节点是随机的;

  • 客户端请求失败则换一个节点重新发送请求;

  • 服务端节点都存储所有数据,但每个节点只负责其中一部分服务,在接收到客户端的“写“(注册、心跳、下线等)请求后,服务端节点判断请求的服务是否为自己负责,如果是,则处理,否则交由负责的节点处理;

  • 每个服务端节点主动发送健康检查到其他节点,响应的节点被该节点视为健康节点;

  • 服务端在接收到客户端的服务心跳后,如果该服务不存在,则将该心跳请求当做注册请求来处理;

  • 服务端如果长时间未收到客户端心跳,则下线该服务;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值