您的位置 首页 java

分布式系统中,借助「消息通知」实现最终一致性方案

分布式系统中,借助「消息通知」实现最终一致性方案

分布式事务 中的CAP理论


Eric Brewer提出, CAP理论 分布式 状况下无法做到同时满足。

Consistency :集群中所有的分布式节点,就同一份数据来说,副本均相同,也就是数据一致。

Availability :对数据的更新和读写操作,具具备高可用性,即服务不能出现无响应或者出错的情况。

Partition Tolerance :分区的容忍性,这里的分区不是指数据 分布式存储 中的shard分区,而是指由于网络问题等原因导致节点之间无法正常通讯,最终导致分布式节点之间没有联系,成为独立分区。在出现独立的故障分区后,整个系统还有能力对外提供正常的服务,这种情况就被称为分区容忍性。

分布式系统中,借助「消息通知」实现最终一致性方案

假设一个 分布式系统 中,存在两个节点,处于分区状态。若允许分区中其他节点来更新数据,那么会丧失一致性 C 。如果要保证一致性 C ,那处于分区状态的节点将不允许提供对外服务,这样又会丧失了可用性 A 。如果一定要保证 CA ,必须保证节点之间能够互相通信,那分区容忍性就无法保证,就又失去了 P。

Eric Brewer提出,在分布式环境下,一个系统只能同时满足其中两点特性,同时满足CAP是无法做到的。在大多数的分布式系统设计中,人们多会选择满足 AP 两点特性。而放弃强一致性,转而追求最终一致性。

有句英文描述就是: B asically A vailable, S oft-state, E ventually consistent ,所以简称就是 BASE。

分布式系统中,借助「消息通知」实现最终一致性方案

最终一致性方案 的解决方案有很多,比如paxos, raft ,TCC以及消息通知,本文下面介绍一下消息通知方案。

借助消息通知实现最终一致性方案


借助消息通知,可以协调具体事务涉及到的多个分布式服务,最终完成业务场景逻辑。

消息通知方案也有细分:

  1. 借助Kafka使用本地事务:分布式服务系统有一个共用的消息表,通过它来协调监控服务双方的业务执行状况,最终异步确保。

分布式系统中,借助「消息通知」实现最终一致性方案

  1. 借助MQ消息事务模式:具体实现由两种方式,如图所示。

方式一

方式二

文章来源:智云一二三科技

文章标题:分布式系统中,借助「消息通知」实现最终一致性方案

文章地址:https://www.zhihuclub.com/188860.shtml

关于作者: 智云科技

热门文章

网站地图