微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

生产中报告的消息丢失问题

如何解决生产中报告的消息丢失问题

我们最近在 PROD 中收到了多个消息丢失问题。

在调查此类问题后,我们得出的结论是

  1. 发布者正在使用消息传递框架组件向 RabbitMQ 发送消息

  2. 我们已经看到只有一些消息被发布到 RabbitMQ 队列中,并且通过在发送消息之前和发送消息之后监视 message_stats 中的“publish”和“deliver”字段,我们看到了使用 RabbitMQ 队列 REST API 的相同情况消息。

在最近的一个用例中,如果说发送了 28 条消息,则“发布”和“交付”使累积值仅增加了 20 条,并且丢失了 8 条消息。

在消息传递框架中实现的日志记录也证实了这一行为。消息传递框架记录了 28 条传入消息的日志记录,而接收端的后处理器仅记录了 20 条消息的日志记录。

  1. 由于我们使用 Spring AMQP 来发布消息,因此在消息传递框架中,我们无法进一步调试 Spring AMQP 和 RabbitMQ 之间的问题。

还有一个观察结果,我们重新启动了应用程序,它在一个特定用例中解决了一次问题,我们可以在发送方和接收方接收所有消息的日志记录。

在这里需要一些建议。此外,最近我们在 PROD 中推出了暂停少数配置,无需发布确认。会不会是消息丢失的原因。尽管如此,我们将进一步调查日志。

这里的任何帮助都是有益的

问候,

Apoorv

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