一、Event Driven Architecture 基于事件驱动架构
消息表(任务表) :适用于java 、 php
1、 将业务操作抽象成一个任务入库,如果业务涉及到的接口成功,更新任务表成功,不成功设置失败状态,通过定时调度做处理,处理方式有三种:
1) 重试+告警(人工干预)
2) 撤销+告警(人工干预)
3) 直接告警(人工干预)
2、以订单积分操作为例:
1)用户服务积分增减接口保证幂等性,可以支持重试;
2)积分消息发送mq,可以用定时任务异步发送,并重试3次;
3)对于积分消息表没有确认处理的消息,并且重试3次仍然没有成功的消息,告警出来;
二、全局分布式事务服务管理服务gts(dubbo方式)
非强一致性控制,在网络不通等极端情况下可能导致数据不一致,需要告警人工介入
详见:https://github.com/chenjy16/gts