分布式系统的 CAP 定理

image-20220627091912430

分布式系统的三大指标,Eric Brewer 说,这三个指标不可能同时做到。这个结论就叫做 CAP 定理。

Partition tolerance

分区容错性,多数分布式系统都分布在多个子网络,每个子网络就是一个区。分区容错的意思是,允许区间通信失败,也就是节点之间通信失败。强调节点的独立性。

分布式系统中,网络异常是很难避免的,因此可以认为 CAP 的 P 总是成立。CAP 定理告诉我们,剩下的 C 和 A 无法同时做到。

Consistency

一致性,由于是分布式系统,多节点设计,就得考虑一致性问题,即访问分布式系统,和访问单体应用一样,下一次读操作一定能读到上一次的写操作结果。是不是有点像多线程并发,只是将线程换成了节点。

Availability

可用性,整个分布式系统能正常对外提供服务。

为什么一致性和可用性不能同时满足?

假如节点之间数据同步失败,整个系统还是要对外提供服务,也就是以分区容错为基础。

  • 如果要保证一致性,那么同步失败的节点就不能对外提供服务,得等到数据同步成功才能恢复,失去可用性。
  • 如果保证可用性,那么访问到未同步数据的节点,就会得到脏数据,失去一致性。

所以得结合实际使用场景,在设计阶段,对一致性和可用性进行取舍。

参考资料

CAP 定理的含义

分布式系统的CAP理论

作者:Yuyy
博客:https://yuyy.info
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇