RabbitMQ临时队列周期性死亡

问题描述 投票:0回答:1

我正在使用RabbitMQ将长时间运行的进程状态更改传达给Web服务器。 Application Server将事件发布到队列中,Web Server将使用这些事件。

队列是临时队列(x过期时间:300000,自动删除:true),并且在Web应用程序首次启动时启动。

我面临的问题是队列定期消失。我发现一个问题与RequestedHeartbeat设置有关。由于我们在Web服务器上也有一些长期运行的任务,因此队列会定期消失。当我增加它的价值之后,在网络上长期运行的任务就可以正常工作了。

但是,队列仍然定期死亡。 Rabbit MQ的日志文件越来越多,出现以下错误。其中一些错误来自其他环境dev / staging / uat,但存在相同的错误

2020-04-30 01:16:15.218 [error] <0.3578.286> Channel error on connection <0.30037.285> (10.10.122.111:25734 -> 10.10.234.111:5672, vhost: '/', user: 'someuser'), 
channel 5: operation basic.consume caused a channel exception not_found: no queue 'QueueNo132321011360' in vhost '/'

另外,1)如何检测临时队列已死?

2)从Web Server更新临时队列的最佳机制是什么?

rabbitmq easynetq
1个回答
0
投票

[如果建议您保留x过期,但将自动删除更改为false,那么您的队列将在客户端暂时断开连接后幸存(除非您当然不关心丢失消息)。

© www.soinside.com 2019 - 2024. All rights reserved.