【发布时间】:2021-07-08 09:44:21
【问题描述】:
我对消费者的一些奇怪行为有疑问。
最近我们在生产环境中遇到了奇怪的情况。两个不同微服务上的两个消费者被一些消息卡住了。第一个持有来自 rabbitMQ 队列的 20 条消息,第二个持有 2 条消息,他们没有处理它们。这些消息在 RabbitMQ 中显示为 Unacked 两天。就在这两个微服务重新启动时,它们回到了就绪状态。当消费者接收这些消息时,整个程序每小时处理数千条消息,所以基本上我们的 Saga 和所有消费者都在工作。当这些消息回到就绪状态时,它们会在一秒钟后被处理,所以我认为它们没有问题。
消息由 Saga 发布到 Exchange,除了这两个卡住的消费者之外,我们还有 EventLogger 消费者订阅了所有消息,这个 EventLogger 正常处理了这 22 条消息,没有任何问题(来自他自己的队列)。此外,我们已将 Application Insights 连接到消费者,并且没有关于这两个消费者接收这 22 条消息的信息(有关于由 EventLogger 接收的信息)。
前几天我们在测试环境中遇到了同样的问题。
最近我们将项目中的 MassTransit 版本从 6.2.0 版本更新到 7.1.6 版本,在此之前我们没有注意到消费者有任何类似的问题,但这可能只是巧合。我们还有重试、重新发送、断路器和内存发件箱机制,但我认为它们没有问题,因为消费者甚至没有开始处理这 22 条消息。
你有什么建议可以发生在这个消费者身上吗?
【问题讨论】:
标签: masstransit