一、消息发送一致性
1.消息中间件在分布式系统中的主要作用:异步通讯、解耦、并发缓冲
2.传统的事务解决
3.消息发送一致性:变通的做法(主动方执行业务成功后,一定会投递消息到中间件)
二、消息发送一致性的异常流程处理
1.异常点
2.异常分析
3.异常处理
*异常处理流程出现异常:再次执行查询,根据返回结果来处理消息即可(可用定时任务)
三、MQ队列消息的处理流程和特点
1.主要用到队列模型(点对点)。
2.队列消息的生产与消费常规流程
3.对比,常规与消息发送一致性:
4.结论方案
5.总结。
* 常规的MQ队列消息的处理流程无法实现消息发送一致性,因此直接使用现成的MQ中间件产品无法实现可靠消息最终一致性的分布式解决方案。
*MQ中间件只是此方案中的一个环节。
四、消息重复发送问题及业务接口的幂等性设计
1.消息重新发送的原因
2.被动方基于消息的重新发送,要实现业务的幂等
3.业务接口的幂等性设计(结合具体业务场景,只要保证幂等性即可)
4.消息重复发送限制。
*一般设置3,5次,进入DLQ后,按照业务情况来进行处理
5.消息的ACK确认