springcloud运行流程

本文深入探讨了分布式系统中的一致性(Consistency)、可用性(Availability)和分隔容忍(Partition tolerance)三者之间的关系,并通过具体场景分析了在不同组合下系统的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rW3wrfmmK_lgJLov4fmnaXnmoTlpKk=,size_12,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rW3wrfmmK_lgJLov4fmnaXnmoTlpKk=,size_20,color_FFFFFF,t_70,g_se,x_16 

CAP理论是分布式架构中重要理论

 

一致性(Consistency) (所有节点在同一时间具有相同的数据)

可用性(Availability) (保证每个请求不管成功或者失败都有响应)

分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rW3wrfmmK_lgJLov4fmnaXnmoTlpKk=,size_20,color_FFFFFF,t_70,g_se,x_16 

1. 在保证C和P的情况下

为了保证数据一致性,data1需要将数据复制给data2,即data1和data2需要进行通信。但是由于网络是不可靠的,我们系统有保证了分区容忍性,也就是说这个系统是可以容忍网络的不可靠的。这时候data2就不一定能及时的收到data1的数据复制消息,当有请求向data2访问number数据时,为了保证数据的一致性,data2只能阻塞等待数据真正同步完成后再返回,这时候就没办法保证高可用性了。

所以,在保证C和P的情况下,是无法同时保证A的。

2. 在保证A和P的情况下

为了保证高可用性,data1和data2都有在有限时间内返回。同样由于网络的不可靠,在有限时间内,data2有可能还没收到data1发来的数据更新消息,这时候返回给客户端的可能是旧的数据,和访问data1的数据是不一致的,也就是违法了C。

也就是说,在保证A和P的情况下,是无法同时保证C的。

3. 在保证A和C的情况下

如果要保证高可用和一致性,只有在网络情况良好且可靠的情况下才能实现。这样data1才能立即将更新消息发送给data2。但是我们都知道网络是不可靠的,是会存在丢包的情况的。所以要满足即时可靠更新,只有将data1和data2放到一个区内才可以,也就丧失了P这个保证。其实这时候整个系统也不能算是一个分布式系统了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海·是倒过来的天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值