RabbitMQ:简单测试程序可能存在网络问题
我有一个简单的RabbitMQ测试程序,它向RabbitMQ服务器发送然后接收消息。我有两台计算机,我发现我的代码是否工作取决于哪台计算机承载RabbitMQ服务器。以下是我的情况(请原谅我的MS油漆):RabbitMQ:简单测试程序可能存在网络问题,rabbitmq,Rabbitmq,我有一个简单的RabbitMQ测试程序,它向RabbitMQ服务器发送然后接收消息。我有两台计算机,我发现我的代码是否工作取决于哪台计算机承载RabbitMQ服务器。以下是我的情况(请原谅我的MS油漆): 如果计算机A托管服务器并运行代码,将消息从A发送到A,那么它就可以工作 如果计算机A托管服务器,并且我的代码在计算机B上运行,从B向A发送消息,那么它就工作了 如果计算机B托管服务器,并且我的代码在计算机A上运行,从A向B发送消息,我会得到一个异常,该异常表示“没有指定的端点是可访问的” 如
- 我认为这不是代码,因为我的三个场景完全按照我的预期工作
- 我不认为这是防火墙问题,因为我在两台计算机上都关闭防火墙的情况下运行了这些测试
- 我认为计算机B上的RabbitMQ服务器没有问题,因为它能够很好地与自身通信(场景4)
- 在尝试场景#3后,我检查了计算机B上的RabbitMQ日志文件,但没有看到任何关于尝试连接的信息。我认为计算机A在发送请求时根本看不到计算机B
请提供帮助。只有当A尝试连接到B时,问题才明显,因此:
- 检查A是否可以将B的主机名解析为IP地址。为此使用
nsb
- 检查A是否可以到达B。运行
将对此有所帮助ping B
- 使用telnet从A连接到B的RabbitMQ端口(可能是5672):
。如果出现一个空白屏幕,则表示连接已被接受。我打赌你会犯一些错误。先用b的IP地址试试这个技巧,如果可以的话,用b的主机名试试,确保它能解析telnet B 5672
总之,只需将其简化为纯网络检查(不涉及RabbitMQ)并从那里开始工作。我最初设置的防火墙规则不正确。现在可以了。谢谢你的建议。