it编程 > 前端脚本 > Erlang

RabbitMQ 消息丢失的场景,如何保证消息不丢失?

157人参与 2024-07-28 Erlang

一.rabbitmq消息丢失的三种情况

二.rabbitmq消息丢失解决方案

1.针对生产者

方案1 :开启rabbitmq事务

可以选择用 rabbitmq 提供的事务功能,就是生产者发送数据之前开启 rabbitmq 事务channel.txselect,然后发送消息,如果消息没有成功被 rabbitmq 接收到,那么生产者会收到异常报错,此时就可以回滚事务channel.txrollback,然后重试发送消息;如果收到了消息,那么可以提交事务channel.txcommit

// 开启事务
channel.txselect
try {
      // 这里发送消息
} catch (exception e) {
      channel.txrollback

// 这里再次重发这条消息

}

// 提交事务
channel.txcommit

缺点:

rabbitmq 事务机制是同步的

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

RabbitMQ详解与实战(绝对足够惊喜)

07-28

25道RabbitMQ面试题含答案(很全)

07-28

【RabbitMQ】【Docker】基于docker-compose构建rabbitmq容器

07-28

rabbit启动:Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces auth.erl

07-28

RabbitMQ 安装分享

07-28

Ruby langchainrb gem and custom configuration for the model setup

07-28

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论