MENU

分布式事务之CAP/BASE理论

前言

对于互联网业务系统来说,随着高本发、高流量的趋势,单机系统已经无法满足我们的业务系统要求,因此出现有分布式系统。对于单机系统,ACID已经保证业务系统数据的严格一致性,对于分布式系统如何保证数据的严格一致性?如何构建一个兼顾可用性和一致性的分布式系统。

CAP定理

CAP理论:一个分布式系统不可能同时满足一致性(C)、可用性(A)、分区容错性(P)这三个基本需求,最多只能同时满足其中的两项。

  • 一致性:在分布式系统中,一致性是指数据在多个副本之间是否能够保持一致的特性。如果能够做到针对一个数据项的更新操作执行成功后,所有的用户都可以读取到其最新的值,那么这样的系统被认为具有强一致性。
  • 可用性:可用性是指系统提供的服务必须一直处于可用的状态,对于用户的每一个操作请求总是能够在有限的时间内返回结果。有限的时间内:是指对于用户的一个操作请求,系统必须能够在指定的时间内返回对应的处理结果。返回结果:是指它要求系统在完成对用户请求的处理后,返回一个正常的响应结果。正常的响应结果通常能够明确地反映出对请求的处理结果,即成功或失败,而不是一个让用户感动困惑的返回结果。
  • 分区容错性:分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。

BASE理论

BASE是对CAP中一致性和可用性权衡的结果,是基于CAP定理逐步演化而来的,核心思想是即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式使系统达到最终一致性

  • 基本可用(Basically Available):指分布式系统在出现不可预知故障的时候,允许损失部分可用性
    • 响应时间上的损失:正常情况,一个在线搜索引擎需要在0.5s内返回给用户相应的查询结果,但由于出现故障,查询结果的响应时间增加到1~2s
    • 功能上的损失:正常情况下,在一个电商网站进行购物,所有服务都可以用,但出现购物高峰,为保护购物系统的稳定性,部分消费者可能被引导至一个降级页面。
  • 软状态(Soft state):也称为弱状态,指系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的存在延时。
  • 最终一致性(Eventually consistent):系统中所有的数据副本,在经过一段时间内同步后,最终能够达到一个一致的状态。
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码