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

问题描述

我们最近在 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 (将#修改为@)