Nacos的配置中心的CP和AP模式 - 知乎
1、首先我们需要知道什么是CP,AP?
CP,AP这两个代码一致性的解决方案。
CP:一致性(Consistency)+分区容错性(Partition tplerance),这是一种强一致性算法。
AP:可用性(Availability)+分区容错性(Partition tplerance),这是一种最终一致性算法。
2、配置中心采用哪种一致性算法?
根据《Nacos架构&原理》一书和源码阅读,我们知道配置中心根据是否采用外部数据库,采用了不同的一致性算法。
- 无外部数据库 作为存储的情况下,Nacos 通过数据保存到本地Derby内存数据库后,然后再通知其他节点,数据发生变化,但是其他节点只会查询当前节点的本地Derby内存数据库,但是无法获取到集群中其他节点的Derby内存数据库的数据,所以就会出现数据不一致的情况。所以我认为配置中心在不采用外部数据库的情况下,只能采用单机部署的方式,不能采用集群部署,不然会出现数据不一致的情况。
- 有 外部数据库-mysql 作为存储的情况下,Nacos 通过持久化到mysql外部数据库。然后异步通知其他节点到数据库拉取数据来保证数据一致性,另外采用读写分离架构来保证高可用,所以这里我认为这里采用的 AP。因为这个异步通知有可能失败,失败后,如果出现服务挂了,那么其他没有同步的数据,就会出现短暂的不一致的情况。所以这是一个最终一致性的情况,于是我认为这个是AP模式。
参与讨论
(Participate in the discussion)
参与讨论