赞
踩
C是一致性
A是可用性
P是分区容忍性。当分区发生时,系统仍然能提高服务。
P理论上一定会发生的。因为网络时无法保证100%不出问题的。
所以理论上只有CP、AP两种选择。
1、CAP是理论,是忽略时延的。同机房几毫秒,异地机房几十毫秒。
理论上无法做到,单一金额的分布式部署。但通过用户ID的hash分区,可实现整个系统的分布式部署。这样当发生故障,只是部分节点发生故障,提供系统可用性。
2、CAP是数据粒度的一致性,而不是整个系统的整体逻辑。例:用户核心数据和用户扩展数据(年龄,爱好),用户核心数据应该做的CP,用户扩展数据应该做到AP。
3、保证CP,AP不意味着忽略的那个A,C什么都不做。可设计为分区恢复后做准备。分区发生,保证C,造成一部分访问返回正确,一部分访问返回错误的情况。可以记录日志,当状态好的时候,同步到另外的分区。
4、现实中,P出现的概率很低,因此可以设计实现CA的系统。但不同数据实现方式不一样。例如用户核心数据,利用消息队列的方式实现一致性,实时性好,实现比较复杂。用户扩展数据,利用数据库自身同步机制实现同步。
BASE ,即使无法实现强一致性,也可以用适当的方式,实现最终一致性。
1、基本可用,当问题发生时,保证核心数据可用。
2、软状态,及最终一致性的中间状态。
3、无法实现强一致性,可实现最终一致性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。