美文网首页设计方案
(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