消息传给消费者,消费者自己弄丢
业务幂等
所有的业务都应该保证幂等性,
如何保障业务幂等性
非幂等业务表单重复提交,在进入表单之前生成唯一标识,未token,携带token进行请求,执行表单提交,把token删掉,重复提交就无法识别就请求失败了
通过业务做判断实现幂等
如果订单已经支付过就不需要再重复支付,所以在先要做订单状态查询,然后判断是否未支付,如果未支付才需求修改业务状态
总结
首先,支付服务会在用户支付成功后利用mq消息通知交易服务,完成订单状态同步,
其次为了保证mq消息的可靠性,采用生产者确认机制,消费者确认,消费者失败重试等策略,确保消息投递和处理的可靠性,同时也开启了mq的持久化,避免因服务宕机导致消息丢失,
最后我们还在交易服务更新订单状态时做了业务幂等判断,避免因消息重复消费导致订单状态异常