Nacos架构与原理:CAP一致性协议详解
创作时间:
作者:
@小白创作中心
Nacos架构与原理:CAP一致性协议详解
引用
1
来源
1.
https://cloud.tencent.com/developer/article/2301539
Nacos是一个集服务注册发现和配置管理于一体的组件,为了实现数据存储和一致性保障,它在单个集群中同时运行CP协议(Raft)和AP协议(Distro)。这种设计既满足了服务发现注册中心的高可用性需求,又保证了配置数据的强一致性。
为什么 Nacos 需要一致性协议
Nacos的目标是尽可能减少用户的部署和运维成本,支持单机模式和集群模式的启动。由于Nacos需要存储数据,因此在集群模式下,必须解决节点间的数据一致性和同步问题。这需要引入共识算法来保障数据一致性。
为什么 Nacos 选择了 Raft 以及 Distro
Nacos作为一个集服务注册发现和配置管理于一体的组件,需要从两个方面来考虑数据一致性保障:
从服务注册发现来看
- 对于非持久化服务(需要客户端上报心跳进行服务实例续约),由于采用了心跳可自动完成服务数据补偿的机制,因此更注重可用性,适合使用最终一致性共识算法。
- 对于持久化服务(直接通过Nacos服务端创建的数据),则需要保障数据在各个节点之间的强一致性,因此选择强一致性共识算法。
从配置管理来看
配置数据必须保证大部分节点都保存了此配置数据才能认为配置被成功保存,因此对于配置数据的管理,必须要求集群中大部分节点是强一致的,只能使用强一致性共识算法。
为什么是 Raft 和 Distro ?
Raft (CP模式)
- 选择原因:当前工业生产中使用最多的强一致性共识算法是Raft协议,它更容易理解且有多个成熟实现。Nacos作为Java技术栈项目,选择了支持多RaftGroup的JRaft,为后续的多数据分片提供了可能。
Distro (AP模式)
- 特点:Distro是阿里巴巴自研的最终一致性协议,通过引入权威Server的概念,有效降低了消息冗余问题,提高了网络传输效率。
Nacos 一致性协议的演进
早期的 Nacos 一致性协议
早期Nacos架构中,服务注册和配置管理的一致性协议是分开的,没有下沉到内核模块作为通用能力演进,导致服务注册发现模块逻辑复杂且难以维护。
当前 Nacos 的一致性协议层
当前Nacos已经将一致性协议能力下沉到内核模块,提供了统一的抽象接口,使得服务注册发现模块和配置管理模块不再需要耦合任何一致性语义,实现了计算存储的彻底分离。
Nacos 如何做到一致性协议下沉
- 一致性协议抽象:将一致性协议抽象为基本的读写操作,通过插件化设计实现解耦。
- 数据存储抽象:通过KVStore接口实现存储抽象,使得服务模块和配置模块可以专注于核心逻辑,而将数据存储和一致性问题交给存储层处理。
通过这些改进,Nacos实现了计算和存储的逻辑分离,提高了系统的性能和可用性。
热门推荐
外国人去中国旅游免签政策:中国旅游240小时过境免签政策超全详细攻略
MBTI人格类型之INTJ性格分析,INTJ类型人格的优点跟缺点是什么?
冬瓜排骨汤怎么做好喝又鲜
装修工期一般多长时间?装修工期预估及施工细节
家装流程全攻略:详细解析每个步骤,避免工期陷阱
公募热炒的沙特ETF,投资者需要注意哪些风险?
孩子前庭神经炎挂什么科室检查
研究提出微喷带灌溉冬小麦高产高效水肥管理模式
人类从哪里来?进化论揭示生命起源之谜
八字中时柱帝旺的含义及对子女的影响 时柱帝旺与子女命运分析
《水调歌头·游泳》全文创作背景及解读
加工中心铝件加工参数解析
莲花·绿塘摇滟接星津
江南可采莲,莲叶何田田。6首江南荷花诗词:不染纤尘的诗意生活
如何写出贪吃蛇源码
唯一一套住房拍卖时需审查“三性”,否则不能拍卖!
热水器火焰感应针工作原理是什么?
炒锅底部的黑色油乎乎污渍如何去除
口袋妖怪复刻裂空座mega性格及配招哪个好
美国旅游:自然人文与现代文明的完美融合
深度体验DeepSeek后,深圳校长感叹:教育必须培养这种能力!
危房改造政策补贴指南:了解补贴金额和申请流程
30+女性的减龄秘籍 | 蓬松感+氛围感短发,谁剪谁美!
产品经理如何查资料真假
哪些渠道可以获取政策解读信息?
《诗画中国·江河万古流》以科技连接古今,创新活化东方美学意象
腰右侧疼怎么回事?疼和肾有没有关系
月季黑斑病防治:有效的农药选择与使用指南
开户行账号是不是银行卡号?一文读懂银行账户相关概念
“三伏天晒背”靠谱吗?中医专家:靠谱!但有一个讲究