在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

mq消息丢失问题如何解决

146次阅读
没有评论

共计 983 个字符,预计需要花费 3 分钟才能阅读完成。

这篇“mq 消息丢失问题如何解决”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mq 消息丢失问题如何解决”文章吧。

1. 生产者存放消息的过程中丢失消息

解决办法:

(1) 事务机制:(同步方式,不推荐)

对于 RabbitMQ 消息队列来说,生产者发送数据之前开启 RabbitMQ 的事务机制 channel.txselect,如果消息没有进队列,则生产者受到异常报错,并进行回滚 channel.txRollback,然后重试发送消息。如果收到了消息,则可以提交事务 channel.txCommit。这是同步操作,会影响性能。

(2) 异步机制:

confirm 模式来解决同步机制的性能问题。每次生产者发送的消息都会分配一个唯一的 id,如果写入到了 RabbitMQ 队列中,则 RabbitMQ 会回传一个 ack 消息,说明这个消息接收成功。如果 RabbitMQ 没能处理这个消息,则回调 nack 接口。说明需要重试发送消息。

也可以自定义超时时间 + 消息 id 来实现超时等待后重试机制。但可能出现的问题是调用 ack 接口时失败了,所以会出现消息被发送两次的问题,这个时候就需要保证消费者消费消息的幂等性。

事务模式和 confirm 模式的区别:

事务机制是同步的,提交事务后悔被阻塞直到提交事务完成后。

confirm 模式异步接收通知,但可能接收不到通知。需要考虑接收不到通知的场景。

2. 消息队列消息丢失

解决办法:

(1) 创建 Queue 时, 将其设置为持久化

(2) 发送消息的时候将消息的 deliveryMode 设置为 2(将消息持久化 1: 非持久化,2: 持久化)

(3) 开启生产者 confirm` 模式,可以重试发送消息。

3. 消费者丢失消息

解决办法:

关闭 RabbitMQ 的自动 ack,每次生产者将消息写入消息队列后,就自动回传一个 ack 给生产者。

消费者处理完消息再主动 ack,告诉消息队列我处理完了。

4. 总结

(1) 开启生产者消息手动确认机制

(2) 开启消息持久化,队列持久化,交换机持久化 (默认开启)

(3) 开启消费者消息手动确认机制

以上就是关于“mq 消息丢失问题如何解决”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计983字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产精品美女久久久久 | 久久精品免费全国观看国产 | 99久久无码私人网站 | 狠狠色欧美亚洲狠狠色www | 欧美视频在线观看 | 免费一级欧美片在线观免看 | 玩弄丰满少妇xxxxx性多毛 | 亚洲一级香蕉视频 | 久久手机免费视频 | 日韩成人在线视频 | 另类一区二区三区 | 国产超薄肉色丝袜的免费网站 | 极品粉嫩小泬无遮挡20p | 男女啪啪永久免费网站 | 欧美牲交a欧美牲交aⅴ一 | 日本va在线视频播放 | 青青久久国产成人免费网站 | 四虎精品在线视频 | 国产又色又爽又黄的免费软件 | 爱草在线 | 亚洲欧美精品一区天堂久久 | 狠狠色狠狠色88综合日日91 | 女女女女bbbbbb毛片在线 | 日本一级淫片观看 | 久久精品亚洲一区二区三区浴池 | 午夜在线视频观看 | 亚洲www| 啊v在线观看| 精品国产一区二区三区不卡 | 九九99香蕉在线视频免费 | 亚洲 欧洲 日韩 综合二区 | 精品国产天堂综合一区在线 | 亚洲高清影院 | 国产美女做爰免费视频网址 | 国产乱国产乱老熟300部视频 | 久久久精品人妻一区亚美研究所 | 免费无码黄十八禁网站在线观看 | 免费澳门一级毛片 | 国产午夜精品无码 | 中国美女一级看片 | 中国午夜伦理片伦理片 |