Nacos 原理 Jraft Distro Grpc 持续跟新中...

Nacos采用心跳和TCP保活机制确保集群节点状态,其中注册中心使用Distro协议保证AP特性,实现内存中数据的一致性。配置中心则借助JRaft协议保证CP特性,确保数据在存储设备上的同步。协议设计遵循CAP理论,平衡一致性、可用性和分区容错性。
摘要由CSDN通过智能技术生成

一、核心

  1. 通过心跳方式保证集群节点之间的存活状态
  2. 通过一致性协议保证数据AP或者CP

二、协议

Nacos中有两种协议,JRaft(CP)、Distro(AP),协议本身没有什么高大上,只是有一套规则保证CAP;

CAP理论:

  1. C:Consistency(强一致性)
  2. A:Availability(可用性)
  3. P:Partition tolerance(分区容错性)

注册中心:特性更加适合AP,基于内存,保证高可用所以在Nacos中使用Distro协议;
配置中心:特性需要保证各节点配置是同步的,基于存储设备,所以使用的JRaft协议;

1. 集群保活

  1. 每五秒和集群其中一个节点交换节点信息-http;
  2. 第一次5秒给所有发送请求检查健康,后续2秒检查一次-http;

2. tcp保活

Nacos2.*开始使用Grpc,所以有一套保证连接的方式,这个连接可能是集群之间也可能是实例于集群之间的
只管理连接层面的,不管业务层面

  1. 连接活跃时间大于5秒给被连接对象发送一次心跳包-grpc;
  2. 心跳检查失败后,不断重试-睡眠-重试,最少五秒尝试重连一次-grpc;
  3. 给注册到节点的连接,活跃时间超过20秒的发送检查包,失败就断连-grpc;

2. Distro(AP)怎么保证注册中心数据最终一致(Base)

主要在内存中保存集群数据和实例数据

  1. 集群节点启动时全量拉去其他所有集群节点的数据;
  2. 根据权重选择获取数据的集群节点,也就是连接的集群节点;
  3. 每个5秒轮询一个节点校验元数据,校验失败全量拉取;
  4. 每个节点独立处理读请求,及时从本地发出响应。
  5. 写到本机,同步给其他节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值