rocketmq发送消息小概率情况下出现异常

暖心

2021-10-24 16:23:11
服务器百科 2021-10-24 16:23:11
出现如图错误
最佳答案
最多人观看 最多人点赞
方案1:如果消息发送异常,则数据回滚,同时在消费端增加消息确认,比如订单是否入库,但是存在一个问题,有可能consumer消息接收速度比数据commit更快,那么就会出现消费端先判断数据不再数据库,而后数据才插入,因此方案1不论从性能还是逻辑上都比较差,pass。 方案2(推荐):api接收订单后入库,不论MQ消息是否发送成,都返回请求成功,无需回滚。增加监听程序,定时把超时未消费(即消息发送失败)的订单补发消息,这个方案相对好在发送消息使用默认配置也可以,可以不加大发消息重试次数和重试超时时长限制,以最快的速度接收订单 存库 推送消息。消息发送失败是比较极端情况,因此监听任务量不大而且执行逻辑非常简单,补发消息就是了。 建议不论使用什么MQ,消息吞吐量和消息必达的测试结果都是扯淡的,加上业务逻辑后就会出现各种各样的坑,如果希望确保消息必达或必发,那么方案2中的监听是一个必不可少的模块。
1 条评论
框架系统   粤ICP备13024006号 广州市光算科技有限公司 版权所有