如何处理高并发环境下的分布式事务问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3056个文字,预计阅读时间需要13分钟。
前言:本章主要对分布式事务进行梳理和讲解。
在业务设计过程中,各微服务都采用了独立数据库。因此,这些微服务之间的数据共享有了更高的要求:要解决数据一致性的问题。
前言
本章主要对分布式事务进行梳理和讲解。可能在业务设计过程中,各微服务都采用了独立数据库,所以,这些微服务之间的数据共享有了更高的要求:要解决数据一致性的问题。
1. 数据一致性
数据一致性是指:数据被多次操作或者以多种方式操作时,能保持业务的不变性。数据一致性存在于很多场景中。导致数据不一致的原因也不尽相同。
- 在对数据库中的内容进行读写时,不是每个用户都能读取到正确的数据,可能在读取时数据未同步过来。
- 在分布式系统中,在Leader节点的“写”数据同步到各个Slave节点时,如果有一个节点未同步,则会造成数据不一致。
- 在多个业务方对同一个数据源获取数据时,如果业务方没有核对数据就进行相关计算,则会因为不同业务方使用了不同的处理逻辑,从而导致多个业务方最终的结果数据不一致。
- 在使用缓存的场景中,缓存更新策略的不同会造成缓存与数据库的数据不一致。
场景:
对于数据一致性问题,很典型的案例就是银行转账:在双方转账前后,双方的余额总和应该是不变的,这就是数据一致性。例如账户A向账户B转了100元:
- 如果转账成功,则账户A扣掉100元,账户B增加100元。
本文共计3056个文字,预计阅读时间需要13分钟。
前言:本章主要对分布式事务进行梳理和讲解。
在业务设计过程中,各微服务都采用了独立数据库。因此,这些微服务之间的数据共享有了更高的要求:要解决数据一致性的问题。
前言
本章主要对分布式事务进行梳理和讲解。可能在业务设计过程中,各微服务都采用了独立数据库,所以,这些微服务之间的数据共享有了更高的要求:要解决数据一致性的问题。
1. 数据一致性
数据一致性是指:数据被多次操作或者以多种方式操作时,能保持业务的不变性。数据一致性存在于很多场景中。导致数据不一致的原因也不尽相同。
- 在对数据库中的内容进行读写时,不是每个用户都能读取到正确的数据,可能在读取时数据未同步过来。
- 在分布式系统中,在Leader节点的“写”数据同步到各个Slave节点时,如果有一个节点未同步,则会造成数据不一致。
- 在多个业务方对同一个数据源获取数据时,如果业务方没有核对数据就进行相关计算,则会因为不同业务方使用了不同的处理逻辑,从而导致多个业务方最终的结果数据不一致。
- 在使用缓存的场景中,缓存更新策略的不同会造成缓存与数据库的数据不一致。
场景:
对于数据一致性问题,很典型的案例就是银行转账:在双方转账前后,双方的余额总和应该是不变的,这就是数据一致性。例如账户A向账户B转了100元:
- 如果转账成功,则账户A扣掉100元,账户B增加100元。

