CAP理论以及kafka当中的CAP机制
分布式系统当中的CAP理论
分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。
分布式系统的最大难点,就是各个节点的状态如何同步。
为了解决各个节点之间的状态同步问题,在1998年,由加州大学的计算机科学家 Eric Brewer 提出分布式系统的三个指标,分别是
- Consistency:一致性
- Availability:可用性
- Partition tolerance:分区容错性
Eric Brewer 说,这三个指标不可能同时做到。最多只能同时满足其中两个条件,这个结论就叫做 CAP 定理
CAP理论是指,分布式系统中,一致性、可用性和分区容忍性最多只能同时满足两个。
一致性:Consistency
• 通过某个节点的写操作结果对后面通过其它节点的读操作可见
• 如果更新数据后,并发访问情况下后续读操作可立即感知该更新,称为强一致性
• 如果允许之后部分或者全部感知不到该更新,称为弱一致性
• 若在之后的一段时间(通常该时间不固定)后,一定可以感知到该更新,称为最终一致性
可用性:Availability
• 任何一个没有发生故障的节点必须在有限的时间内返回合理的结果
分区容忍性:Partition tolerance
• 部分节点宕机或者无法与其它节点