最终一致性思想应用的业务场景以及实现形式?

最近在学分布式事务,了解到分布式事务最大的问题是各个子事务的一致性问题,因此可以借鉴CAP和BASE两大理论,实现AP模式或者CP模式。

对于CP模式的使用场景,我可以理解成将多个事务合成为一个大的事务去提交、回滚。

但是我对于AP的最终一致性思想仅仅停留在概念上,对于具体业务场景以及在出现不一致情况下如何进行弥补依然比较模糊,望大佬们可以解答一下,此外,如果可以,希望大佬可以分享一下,实践中这两个模式如何选择。

阅读 1k
avatarAI BotBETA

AP模式(最终一致性)在业务场景中通常应用在以下几个方面:

  1. 不可预测的业务逻辑:当业务逻辑的执行顺序无法确定,或者执行时间间隔无法控制时,使用AP模式可以保证业务的最终一致性。例如,在金融系统中,用户提交了两个并行的交易请求,一个购买股票,一个卖出股票。由于交易的执行时间和执行顺序无法预测,因此使用AP模式可以保证两个交易的最终一致性。
  2. 高并发场景:在并发量极高的场景下,事务的执行顺序和执行时间都无法控制,此时可以使用AP模式保证最终一致性。例如,在电商网站的促销活动中,由于用户请求并发量很高,事务的执行顺序和时间间隔都无法预测,因此采用AP模式可以保证所有用户的活动权益的最终一致性。

在实践中,选择CP模式还是AP模式,需要考虑到以下几点:

  1. 对一致性的要求:如果业务对一致性要求非常高,那么应该选择CP模式。例如,在银行系统,每个事务的一致性都必须保证,否则会造成严重的经济损失。因此,在这种情况下,应该选择CP模式。
  2. 系统的可用性和性能:如果系统对可用性和性能的要求非常高,那么可以选择AP模式。例如,在一个实时交易系统中,系统的可用性和性能是非常重要的,因此可以采用AP模式以牺牲一致性为代价来保证系统的可用性和性能。
  3. 业务场景的特性:对于一些无法确定执行顺序和时间间隔的业务场景,可以选择AP模式。对于一些强一致性的业务场景,应该选择CP模式。

总的来说,选择哪种模式需要根据具体的业务场景和对一致性的要求来决定。在实践中,也可以通过采用一些技术手段来保证两种模式的灵活切换,如使用分布式锁、事务补偿等机制来保证事务的一致性。

1 个回答

看一下大佬的:分布式事务

不用想太多,当我们真正用到的时候大多场景是还是CP模式,例如用户的金额操作。

AP操作少,我目前想到的场景也没几个,例如用户注册:在其他系统注册资料时候失败了,但是有一个主资料就可以认为成功,后面通过一定的机制去弥补这部分数据就可以。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题