解决方案一:
使用 Alibaba Seata 可以来解决 ,但是该种解决方案 不适合 大并发情况下,会影响性能,(使用于管理后台各个微服务调用的增删改查的事务管理)
解决方案二:
使用 MQ 来解决,(保证数据的最终一致性)
如: 在电商系统中,当下一个订单后,要扣减库存,我们先远程调用 库存接口,
(有可能会出现,库存扣减成功,但是返回给订单系统的数据,因为网络原因失败了,此时订单因为调用库存系统超时,订单下单失败。)
我们可以在库存系统使用 rabbitMQ ,我们锁库存成功后,把消息放入到 rabbitMQ 延时队列(利用死信实现),如果过了一段时间,延时队列就发消息,确认订单是否下单成功,如果没有下单成功,就自动的解锁库存,保证数据的最终一致性。