【发布时间】:2015-05-22 08:25:44
【问题描述】:
我有一个 C# 应用程序,它在 RabbitMQ 中对任务进行排队,以由多台工作机器处理以进行分布式计算。每台工作机器运行一个进程,该进程托管许多处理程序,每个处理程序处理来自单个队列的消息。每个处理程序都在其自己的应用程序域中启动。当这正常工作时,队列处理程序可以保持在线数月而不会中断或出现问题。
我的一个队列处理程序一直停止在工作机器上接收消息。它们不会一下子全部掉下来……一次一点点。
添加日志时,发现RabbitMQ连接已关闭,并指定关闭原因为“End of Stream”。似乎没有确定的时间量或明确的事件会导致这种情况,而且它只发生在这个处理程序中。所有其他人都继续工作,所以这不是网络问题。
我该怎么做才能找到根本原因?处理消息的 C# 代码的哪些方面可能导致兔子频道关闭?
提前感谢您提供有关记录、调试或修复此问题的任何想法。
【问题讨论】:
标签: c# multithreading rabbitmq