分布式事务形成的问题:
买东西,你的请求会发送A服务, A服务会调用三个微服务的功能,订单,支付,库存。如果库存保存成功。支付保存失败,订单保存成功。这样就形成了数据不一致,导致问题。
1:A总服务,会把数据交给tcc分布式事务框架,三个服务保存数据成功和失败都会给tcc返回状态,如果失败回滚。
2:列:库存表,如果你的库存为100,这次买了3件,就会变成97,但是这个3会存在一个字段里,如果提交失败,tcc会调用提前写的回滚接口(这些接口就是把你下订单的数据,改成下订单之前的数据。),再把数据修改成下订单之前的数据。
但是这里会有mysql事务问题。