一、2pc(two-phase commitment)
请求进来,生成全局雪花id,存本地线程变量,存request请求头部head;
消费者请求走服务1,
自己做hystrix熔断;
服务里面以标签配置事务,事务做切点的拦截,切面干事情,开启子线程,且把子线程阻塞,一旦放开阻塞走提交。请求主线程继续走,并返回结果。开启主线程,死循环检查过期事务;(locksupport,线程阻塞)
走服务2,同理走服务1的事情;
提交commit。post请求。对应的commit,触发子线程阻塞放开。
二、补偿事务
通俗,一系列事务业务操作,按序执行,其中任一步出现问题,都执行回退。这些回退操作,你自己写代码完成。就这么玩。