RabbitMQ:简单测试程序可能存在网络问题

RabbitMQ:简单测试程序可能存在网络问题,rabbitmq,Rabbitmq,我有一个简单的RabbitMQ测试程序,它向RabbitMQ服务器发送然后接收消息。我有两台计算机,我发现我的代码是否工作取决于哪台计算机承载RabbitMQ服务器。以下是我的情况(请原谅我的MS油漆): 如果计算机A托管服务器并运行代码,将消息从A发送到A,那么它就可以工作 如果计算机A托管服务器,并且我的代码在计算机B上运行,从B向A发送消息,那么它就工作了 如果计算机B托管服务器,并且我的代码在计算机A上运行,从A向B发送消息,我会得到一个异常,该异常表示“没有指定的端点是可访问的” 如

我有一个简单的RabbitMQ测试程序,它向RabbitMQ服务器发送然后接收消息。我有两台计算机,我发现我的代码是否工作取决于哪台计算机承载RabbitMQ服务器。以下是我的情况(请原谅我的MS油漆):

  • 如果计算机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也设置为默认值(我最近没有安装)


    请提供帮助。

    只有当A尝试连接到B时,问题才明显,因此:

    • 检查A是否可以将B的主机名解析为IP地址。为此使用
      nsb
    • 检查A是否可以到达B。运行
      ping B
      将对此有所帮助
    • 使用telnet从A连接到B的RabbitMQ端口(可能是5672):
      telnet B 5672
      。如果出现一个空白屏幕,则表示连接已被接受。我打赌你会犯一些错误。先用b的IP地址试试这个技巧,如果可以的话,用b的主机名试试,确保它能解析

    总之,只需将其简化为纯网络检查(不涉及RabbitMQ)并从那里开始工作。

    我最初设置的防火墙规则不正确。现在可以了。谢谢你的建议。