- 2 阶段,创建订单,扣减库存
请求调用订单服务 1 创建订单---> 订单库 2 库存库减库存.

订单服务 下订单,扣减库存
存在单点故障,数据不一致的问题
执行前后,生成前置和后置的镜像。 逆向执行Sql.
- Seata引入了for update 全局锁,如果出现死锁,会不断进行重试。 最后靠等待全局锁超时才能释放锁。不优雅也延长了对数据库锁的占有时间
下单的 库存,订单,账户,优惠券等各个库.
XA 是 强一致性: 整合2阶段提交都会一直持有锁
TCC最终一致性: 不会一直持有资源的锁
AT: 全局行锁
- 定时任务,尽最大努力通知
最大努力通知和可靠消息最终一致性
最大努力: 消息无法被发送方接收时,由接收方主动查询消息
可靠性消息最终一致性:发出到接收的一致性,消息发出并且被接收到

可靠性消息最终一致性方案
- 本地消息表记录消息发送和消费状态,定时任务不断的做轮训
- MQ事务消息
- 最大努力通知
中台架构落地实战

网友评论