对 CAP 的理解
聊CAP时的时候通常会聊到分布式存储。其中,在分布式存储中会不可避免地遇到P问题,这个时候分布式存储选择C行为还是A行为就决定了该分布式存储的应用场景。
P是指网络分区,C是指保持分布式节点之间的数据保持一致,A是指保持服务的可用性。
比如,有1000台机器,有500台分布在北京,500台分布在上海,共同维护一些业务数据。因为当网络分区问题时,此时涉及到业务数据的读写时,可能出现北京、上海两个机房的数据不一致,甚至出现冲突;为了保证北京、上海两个机房数据一致性,那么在网络分区发生时,必须停止提供服务。
也就是说CAP是指当分布式存储遇到P问题时,在C与A之间如何权衡。
当前,实际情况是分布式存储没有在CA之间2选1,而是使用了C与A之间的弱化版本,即在C中选择最终一致性,在A中选择冲突数据不可用。
总之,CAP是讨论分布式存储时不可避免的话题,通常的选择都是选择弱化版本的C与A。而不是单方面否定。
版权声明: 本文为 InfoQ 作者【朱月俊】的原创文章。
原文链接:【http://xie.infoq.cn/article/ca1c86da4c387925f32069267】。文章转载请联系作者。
评论