CAP定理的理解

本文深入解析了分布式系统中的CAP定理,强调了C-A-P三种情况,并讨论了在实际项目如Dubbo中的应用选择,如PC模式和AP解决方案。作者分享了自己的理解和实践案例,包括Eureka和RocketMQ在AP模式中的角色。
摘要由CSDN通过智能技术生成
第一篇文章,一直将知识点和笔记记录在印象笔记里面,只是自己对一些模糊区域知识点的理解和看法,
不知是错还是对,本着学习的态度将所有的知识点分享到网络上,大家共同学习进步。
今天上来就要说的是分布式系统中的CAP定理,先上图来一波简单的理解

ProcessOn制图 CAP定理图
C(一致性)全称(Consistency):分布式系统中,当A服务调用B服务都有写库操作时,要么同时成功,要么同时失败
A(可用性)全称(Availability):分布式系统中,当A服务挂掉后,不会影响到非依赖A服务的其他服务的正常运行
P(分区容错性)全称(Partition tolerance):分布式系统中,不可能是单机部署项目了,可能存在多台服务器部署,那么可能存在网络通信失败的情况存在,它们之间可能不能相互通信。

  从图中我们可以容易的知道它们是两两交集,那么就存在AP、PC、CA三种情况。在这里我要说的是,CAP是分布式
系统的基础理论,但是CA的情况就不满足分布式系统的概念,如果舍弃掉P(分区容错性),单机部署服务将不叫
分布式系统。所以在这里P可以认定为恒成立的(个人的理解,如果有不同的意见可以提出)。
  我在Dubbo项目中(非特大型项目),我通过PC模式来搭建的框架,即使用TCC模式(类似2PC模式)保证一致性。
在使用Dubbo搭建的框架中使用zookeeper作为注册中心,其实使用搭建的框架在设计初已经保证了可用性(微服务
拆分)。例如在一个要被说烂的电商项目中,如果用户支付功能挂掉,但是查看商品的功能可以继续使用。
如果要实现各个微服务模块的高可用性,可以使用容器(Docker Kubernetes)技术来解决相关的问题。
  其实在框架搭建的时候需要根据相关业务来权衡是用那种模式的,就像我上面的项目中(非特大型项目),服务之
  间的依赖不会过多。如果这个时候相互依赖过多,一个服务依赖了多个服务,前面的都成功了,到最后一个失败了,
  那么前面的多个服务都需要进行回滚,那么这样的成本就相当的高。
  
下面是一些AP的解决方案:
1.Eureka----> AP
2.RocketMQ中间件----> AP
知识点可能过于浅,也有可能存在错误的理解,欢迎大佬指正!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一个未秃头的猿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值