关于CPA原理理解以及分布式系统的系统选型

CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。

在一个分布式项目中,我们必须考虑系统的分区容错性,其他的两个特性要根据实际的生成的环境和项目需求来考量。强一致性指的是在整个系统中,各个副本之间的数据都应该保持一致,每次或者每个对象查询的数据都应该保持一致,这是mysql的数据库最基本的要求。如果在分布式系统中我们要求数据强一致性,会导致系统的运行效率,以及用户体验很差。在web项目中,系统的实际运行效率比数据强一致性更加重要,为了解决这样的问题,我们常用NOSQL,它的原子性只针对行级元素,保证一个key-value的一致性,这会大大提高数据的运行效率。可用性是值在系统遭遇不可预知的灾难室后,还可以保持基本的功能运行。这就要求每个服务器至少有2个极其以上的副本数据,这又和系统数据的强一致性违背。所以我们经常采用的与BASE的处理方案。

BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的简写。

其中对于系统的可用性,我们准备了基本可用的方法,就是保证基本的功能运行,但是响应的速度会减低,或者一部分的功能不能使用,但是不影响主要功能。

对于数据的的一致性,我们采用数据软状态的处理方案,就是允许数据不是实时的一致性。允许数据在不影响主要功能的前提下,可以延迟更新。以减少数据强一致性带来的性能损失。

但是一个系统的数据有差异是由可能导致一定的错误性,为了消除数据的软处理方案带来的负面影响,我们提出了最终一致性。说的是系统数据的各个副本之间的数据通过一段时间的延迟同步后,最终会达到一致性的结果。从而来消除数据弱状态的影响。

我们正是通过BASE来处理分布式系统中的CAP原则,更加合理的配置系统来满足实际生存过程中的分区容错性,一致性,和高可用性的。

你可能感兴趣的:(大数据)