第一种方案:
可靠消息最终一致性:需要业务系统结合MQ消息中间件来实现,在实现过程中,需要保证消息的成功发送及成功消费。即需要通过业务系统控制MQ的消息状态。
第二种方案:
TCC补偿性:分为三个阶段,TRYING(trying)–CONFIRMING(confirming)–CANCELING(canceling)。
每个阶段做不同的处理:
TRYING阶段主要是对业务系统进行检测及资源预留
CONFIRMING阶段是做业务提交,通过TRYING阶段执行成功后,再执行该阶段。默认如果TRYING阶段执行成功,CONFIRMING就一定能成功。
CANCELING阶段是对业务做回滚,在TRYING阶段中,如果存在分支事务TRYING失败,则需要调用CANCELING将已预留的资源进行释放。