我有一个简单的 RabbitMQ 测试程序,它向 RabbitMQ 服务器发送然后接收消息。我有两台计算机,我发现我的代码是否有效取决于哪台计算机托管 RabbitMQ 服务器。这是我的情况(请原谅我的 MS Paint):
- 如果计算机 A 托管服务器并运行代码,将消息从 A 发送到 A,它就可以工作。
- 如果计算机 A 托管服务器并且我的代码在计算机 B 上运行,将消息从 B 发送到 A,它就可以工作。
- 如果计算机 B 托管服务器并且我的代码在计算机 A 上运行,将消息从 A 发送到 B,我会收到一个异常,提示“指定的端点均不可访问”。
- 如果计算机 B 托管服务器并运行代码,将消息从 B 发送到 B,它就可以工作。
我不明白为什么场景 #3 对我不起作用。
- 我不认为这是代码,因为我的三个场景完全按照我的预期工作。
- 我认为这不是防火墙问题,因为我在两台计算机上都关闭防火墙的情况下运行了这些测试。
- 我不认为计算机 B 上的 RabbitMQ 服务器有问题,因为它能够很好地与自身通信(场景 #4)。
- 在尝试场景 #3 后,我检查了计算机 B 上的 RabbitMQ 日志文件,但我没有看到任何关于尝试连接的内容。我认为计算机 A 在发送请求时根本无法看到计算机 B。
我的问题通常是,我应该寻找哪些可能指向我的问题的东西?必须有一些设置在计算机 A 上被选中,但在计算机 B 上没有被选中。计算机 B 具有 Erlang 和 RabbitMQ 的默认安装。我很确定计算机 A 也设置为默认值(我最近没有安装它)。
请帮忙。