一、整体性业务,即:虽然有多库多表,但都在同一个部门下,或者是可控的情况
采用TCC、seata分布式事务框架,实现分布式事务
性能问题:事务采用mysql,进行分库分表解决性能问题,哪个步骤慢,就解决哪个步骤的性能
https://www.cnblogs.com/jajian/p/10014145.html
二、非整体性业务
2.1:下游只提供接口,比较中心化的服务,比如积分服务,京豆服务等
此时只能用记录日志的方式,记录整个事务的执行状态,并且记录每一步的执行日志,预留好回滚需要的数据
2.2:下游可以消费上游的消息
可使用rocketmq进行事务处理,利用半消息机制,确认发送到mq再提交事务,提供回调接口,提供事务是否提交成功,告诉mq数据可提交让下游消费