Skip to main content

用CAP來談網路 真的很有啟發性

包处理的艺术(2)---如何设计协议

 https://mp.weixin.qq.com/s/Wx7-8RpC_M-8ME8whDLJsg

事实1:基于目的地址转发的系统是CP

CP without A:如果不要求A(可用),相当于每个请求都需要在服务器之间保持强一致,而P(分区)会导致同步时间无限延长(也就是等待数据同步完才能正常访问服务),一旦发生网络故障或者消息丢失等情况,就要牺牲用户的体验,等待所有数据全部一致了之后再让用户访问系统 


事实2:路由协议和一些SDN实现是CA
CA without P:如果不要求P(不允许分区),则C(强一致性)和A(可用性)是可以保证的。但放弃P的同时也就意味着放弃了系统的扩展性,也就是分布式节点受限,没办法部署子节点,这是违背分布式系统设计的初衷的。

事实3:SR采用适当的源路由放弃一致性获得可用性,即AP
AP wihtout C:要高可用并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。

协议设计的原则

原则1:控制平面采用CP

原则2:数据平面采用AP->BASE

Comments

Popular posts from this blog