CAP

发布时间 2023-09-05 15:31:34作者: 木乃伊人

微服务架构CAP

一、分布式系统CAP

        C【Consistency】: 一致性,即数据一致性,特指分布式系统中的数据一致性。

        A【Availability】: 可用性,即服务的高可用,特指分布式系统中的服务的高可用,某个服务瘫痪不影响整个分布式系统的正常运行。

       P【Partition Tolerance】: 分区容错性(也有的叫分区耐受性),即网络故障,特指分布式系统中服务之间出现了网络故障,整个分布式系统仍然保持可用性和一致性。

       

              

 总结CAP:在分布式系统中,网络故障,服务瘫痪,整个系统的数据仍然保持一致性。

二、分布式系统解决方案

       2.1、AP【牺牲一致性】:保证高可用,保证分区容错,牺牲数据一致性。

                解决思路:网络恢复后,重启请求。

       2.2、CP【牺牲可用性】:保证数据一致性。

                解决思路:只有等网络恢复正常后,才能成功下单。

       2.3、CA【牺牲分区容错】:不要P分区,即不允许出现网络故障,这不可能实现

三、常见微服务注册中心CAP原理

       3.1、zookeeper

                采用CP原理,即保证数据一致性,牺牲可用性。zk集群在选举出leader节点期间,Client客户端无法注册,即zookeeper服务不可用,牺牲了系统可用性。

               CP有个致命缺点:大型分布式系统中,网络非常复杂,leader节点出现故障频率特别高i,很容易引起雪崩。故而很多大型分布式系统都不会选择zookeeper作为注册中心。

       3.2、Eureka

                采用AP原理,保证系统可用性,牺牲一致性。

                Eureka数据同步原理:

                第一步,Client1 客户端注册到 eureka Server1 服务中;

                第二步,eureka Server1 直接告诉 Client1 注册成功。

                第三步,eureka Server1 把 Client1 的注册信息同步给 Server2,为了保证服务的可用性,eureka Server 之间是异步同步的。

参考文章:https://cloud.tencent.com/developer/article/1589357