目录
- 背景介绍
- 什么是分布式事务
- 什么叫做逆向补偿呢
- 互联网最流行的分布式事务组件seata
- 总结
背景
大家好,今天给大家分享一个在 2022 年出去面试 Java 几乎必问的一个技术,那就是 seata。
什么??你才看了第一句话心里有闪现了无数个问号?因为没听说过 seata 这个东西?
没关系,为了避免兄弟们出去面试被问到 seata 的时候,一脸蒙圈,我们今天就把这个东西给大家讲明白。
既然要给大家讲什么是 seata,那就得先说一下这个东西的定位,这东西就是现在很火的 Spring Cloud Alibaba 里的一个组件,是专门帮助我们解决分布式事务问题的,也就是说,seata 是一个分布式事务框架。
什么是分布式事务
那可能很多小伙伴很蒙圈了,什么是分布式事务?好吧,为了保证大家能继续看下去,我们先说一下什么是分布式事务这个问题。
举个最简单的例子,假设现在你负责了一个订单系统,一个库存系统,一个营销系统,然后呢,当你的订单系统收到用户一个请求要创建订单的时候,这个时候你得做三件事情。
第一,调用库存系统的接口锁定库存,第二,调用调用营销系统的接口锁定优惠券,第三,你订单系统自己得在 MySQL 里插入一系列订单的数据。
比如下图 1 所示:
图片
那么现在问题来了,你订单系统有自己的订单数据库,可以去插入订单数据,那库存系统是不是也应该有自己的库存数据库,去锁定库存数据?
营销系统是不是应该有自己的营销数据库,去锁定优惠券&#