大众运输如何应对缓慢的消费者

问题描述

我正在与消费者使用Masstransit 7.0.0来处理RabbitMQ的消息。我观察到当使用者处理消息的速度很慢时,或者当我将调试点放在Visual Studio中供使用者使用时,一段时间之后,我的使用者再次收到了消息。我的假设是Masstransit认为消费者崩溃了并再次发送了消息。

就我而言,我的消费者在与外部端点进行对话时处理消息有时会变慢,但是处理大约需要30-40秒而不是几分钟。

您能否解释一下,大众运输如何知道消费者已崩溃(或其后果)以重新发送消息?如果它等待一定的时间来等待确认,那么是否有任何设置只是为了增加此时间来专门用于队列/消费者?

谢谢

解决方法

使用RabbitMQ,没有超时后可以重新发送邮件。如果要在调试器中停止使用者,则可能导致RabbitMQ套接字连接关闭。关闭连接后,MassTransit将重新连接,届时将重新传递以前未确认的任何消息。

在正常操作中,花费30、60、90甚至300秒的使用者很少会成为问题,因为可以维持代理连接。