分布式下AP与CP的区别
在分布式中有一种理论叫CAP理论,C表示数据一致性,A表示系统可用性,P表示分区容错性,提出这个理论的人也指出了CAP这三者间只能有两个同时成立。
先来解释一下P分区容错性,在分布式的情况下,应用都会搭一个集群,比如用户在使用一个服务的时候可能会有多个用户服务端,当一个用户在一个服务端进行了修改了数据时,另一个服务端如果有相关的数据,那也需要跟着修改,否则,两个服务端的得到的结果就会不一样,因此两个服务端之间需要进行数据的通信,但是数据通信的时候可能会由于网络波动导致通信失败,这时就会出现分区,而P就是保证,在出现分区的时候,用户仍可访问任何一个服务端。
而用户在使用应用时难免会出现网络波动导致产生分区,因此在CAP这个理念中,P是一定存在的,因为前面提到过,CAP三者之间只有两个可以同时存在,要保证AC也就是数据一致性和系统可用性同时存在只有两种情况,一种是用户在使用应用时不会存在网络波动,那么只要两者保持通信,数据就会永远一致,但是这是不现实的,另一种情况是这是一个单节点,单节点就不存在数据不一致了,因为只有一个数据,但是现在说的是分布式,所以AC是不存在的,那么就只剩下两种情况,CP和AP。
CP:保证了数据的一致性。适用于一些强一致性要求较高、可以容忍短暂的不可用性的应用场景,缺点就是在在发生网络波动时,会导致服务不可用,需要等到数据一致后,才能让用户正常访问,所以会影响用户体验。
AP:对于一些对一致性要求较低、需要保证系统的高可用性和持续可用性的应用场景。适用于社交媒体,AP不会影响用户体验,能保证系统的正常运行;在面对网络分区时,AP系统会牺牲一致性,允许系统中的数据存在短暂的不一致。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)