1

我创建了一个简单的 saga 原型项目,其中 RabbitMQ 作为传输,RavenDB 作为持久性机制。原型实际上按预期运行,但每隔几秒钟我就会收到此错误消息:

错误 NServiceBus.Transports.RabbitMQ.RabbitMqDequeueStrategy 无法从 [Assembly] 接收消息。重试 System.AggregateException:发生一个或多个错误。--> System.IO.EndOfStreamException: SharedQueue 在 RabbitMQ.Util.SharedQueue 1.EnsureIsOpen() at RabbitMQ.Util.SharedQueue1.Dequeue 关闭(int 32 毫秒超时.......

在上述消息之后,我也立即收到一条几乎相同的消息,但它说它无法接收来自 RabbitMGPoller.Timeouts 的消息

除此之外,还有不断的 INFO 消息说:NServiceBus.Transports.RabbitMQ.RabbitMqConnectionManager 与 RabbitMQ 代理断开连接,原因:AMQP 关闭原因,已启动库,代码 = 0 文本 =“流结束”...原因 = 系统.IOException:无法将数据写入传输连接:现有连接被远程主机强行关闭。---> System.Net.Sockets.SocketException: 现有连接被远程主机强行关闭...

我尝试将 DequeueTimeout=600 值添加到传输连接,但仍然会出现相同的错误。我也尝试在配置文件中添加以下键,但它似乎仍然没有帮助。

4

1 回答 1

0

我最终想通了,只是我对 RabbitMQ 和 NServiceBus 缺乏了解。我将 RabbitMQ 连接的 RequestedHeartbeat 值更改为更大的值,即 RequestedHeartbeat=6000。这解决了我的问题。

于 2016-01-07T20:45:49.473 回答