首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Java高并发:分布式-CAP理论学习

Java高并发:分布式-CAP理论学习

作者头像
用户1289394
发布2020-11-06 10:22:35
发布2020-11-06 10:22:35
1.4K0
举报
文章被收录于专栏:Java学习网Java学习网

理论

CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

  • 一致性(C):对某个指定的客户端来说,读操作能返回最新的写操作结果
  • 可用性(A):非故障节点在合理的时间返回合理的响应
  • 分区容错性(P):分区容错性是指当网络出现分区(两个节点之间无法连通)之后,系统能否继续履行职责

CAP理论就是说在分布式系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以考虑最差情况,分区容忍性是一般是需要实现的

个人理解

满足之后: 如果选择C,则需要将数据同步更新到所有节点上,每次写操作就都要等待全部节点写成功,会导致A的降低。 如果选择A,就需要将数据复制到很多个节点,需要复制的数据很多,复制的过程缓慢,会导致C的降低

正常情况下,不存在CP还是AP的选择,可以做到CA,但如果网络出现分区(节点之间的网络连接不正常),就必须要为了满足P,而放弃C或A,放弃哪个?一般我们要保证的是系统不能挂掉(AP),然后通过同步数据的方式还原C,还可能让我们的系统挂一部分(CP),然后通过重启节点的方式还原A

对于不同业务也会需要考虑到不同的CAP选择,以电商网站为例,会员登录、个人设置、个人订单、购物车、搜索用AP,因为这些数据短时间内不一致不影响使用;后台的商品管理就需要CP,避免商品数量的不一致;支付功能需要CA,保证支付功能的安全稳定

BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 理论
  • 个人理解
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档