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实现了计算和存储的逻辑分离,提高了系统的性能和可用性。
热门推荐
车辆损失险是否包含盗抢险和自燃险?
东汉历代帝王一览
5G浪潮下,无线射频与基站天线的技术革新与市场机遇
古建筑乌头门、棂星门、牌坊、牌楼、鸟居、华表、阙之间的差别
误删的微信聊天记录怎么恢复?安卓版本完整指南
大市值股票怎么找?如何筛选出大市值的优质股票?这类股票具有哪些特征?
盘点宋朝六大名将,他们是谁最后结局如何?
自制百香芒芒冰橘茶
中药物质基础重磅综述!中药中自组装的天然生物活性物质综述
如何重新利用废旧轮胎?发现创新和环保应用
备孕期间服药要注意哪些问题
如何反击项目经理的话
“眼见为实”!厦门大学崔勇团队联合香港中文大学姜里文团队揭示植物液泡起源的奥秘
崔勇教授团队揭示植物细胞中液泡生物发生的机制
禹王山阻击战:60军舍命疆场,日军被拦27天寸步难进
“穿越”魅力小镇|“穿越”艺术小镇看文旅融合协同发展
小规模和一般纳税人的区别有哪些?
小红书需要一场「内斗」
香港VS新加坡,中产家庭的留学目的地怎么选?
全国4所“顶级”211大学,社会认可度极高,就业率力压985!
QS重磅发布2025世界大学学科排名!英美高校霸榜,中国高校成最大黑马!
报警未立案可否撤销?立案到开庭要多久?一文详解
紫金山天文台太赫兹天文科考设备亮相中国极地考察40周年成就展
最强高达机体排名前十,这些机体绝对不容小觑(探秘高达世界中的顶级机体)
杭州环西湖骑行攻略:南山路、杨公堤、北山街精华景点全览
阿拉伯语男孩名字大全:独特寓意与文化内涵
人的心脏正常一分钟跳多少下
宇智波带土
面瘫治疗药物全解析:从糖皮质激素到神经营养药
测血压时胳膊怎么放?放不对,测出的血压与实际血压差多少?