美文网首页设计方案
(1)RabbitMQ重试机制和消息幂等性

(1)RabbitMQ重试机制和消息幂等性

作者: hedgehog1112 | 来源:发表于2019-12-23 17:10 被阅读0次

一. 自动重试机制

原理:@RabbitHandler注解 底层用Aop拦截,(消费者)没抛异常,自动提交事务

如Aop异常通知拦截获取异常,自动补偿,消息缓存在RabbitMQ服务器端

二、合理重试

1: 第三方接口无法访问: 可能网络原因,手动抛异常,RabbitMQ自动重试

2: 程序抛出异常:不需重试,日志记录+定时任务健康检查+人工补偿

三、消费者幂等性

用全局ID 或唯一标识如时间戳 或UUID 或者订单ID

消息时用该id先判断是否已消费过。不仅对MQ有要求,对业务上下游也有要求。

一般在业务层处理。增加表来排重,msgId 为唯一索引,更新库存,插入库存变更表。重复消费报错回滚。

相关文章

网友评论

    本文标题:(1)RabbitMQ重试机制和消息幂等性

    本文链接:https://www.haomeiwen.com/subject/dqttoctx.html