RabbitMQ 接受连接,但在接受任何输入之前关闭它们



所以我刚刚安装了最新版本的rabbitmq,我一直在努力让它工作。服务器正在运行,我已经重新启动了它一次,以确保这是一个一致的问题。

如果我telnet localhost 5672,我会得到

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

如您所见,连接被接受,但 rabbitmq 不接受任何输入。连接将立即关闭。日志中不会显示更多信息。

rabbitmqctl工作没有任何问题。

这在 Linux/Ubuntu 的 Windows 子系统上运行。对于本地开发环境,我没有任何其他选择,因为我使用的是被锁定得非常紧的工作计算机。

我遇到了同样的问题,在Windows和rabbitmq 3.7.8上使用Ubuntu(16.04(作为子系统。我注意到在运行sudo rabbitmqctl status时,侦听器显示以下内容:

{listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]}

我通过创建一个 rabbitmq 配置文件并指定本地主机和端口 5762 来解决此问题

这是我一步一步做的事情。

  1. 使用 sudo && vim,我创建了一个 'rabbitmq.conf' 文件,位于/etc/rabbitmq/

    sudo vim /etc/rabbimq/rabbitmq.conf
    
  2. 我指定了本地主机(127.0.0.1(和端口(5672(作为默认值rabbitmq.conf 文件中的 TCP 侦听器

    listeners.tcp.default = 127.0.0.1:5672
    
  3. 重新启动兔

    sudo service rabbitmq-server stop

    然后

    sudo service rabbitmq-server start

  4. 检查sudo rabbitmqctl status并查看侦听器,您应该会看到新的 TCP 侦听器,其中本地主机 IP 已隔离

    {

    listeners,[{clustering,25672,"::"},{amqp,5672,"127.0.0.1"}]}

以下是来自 rabbitmq 的配置文档,可能有助于澄清其中一些步骤。

Telnet 允许您确认系统正在侦听并允许传入连接。但即使是 RabbitMQ 的"开箱即用"安装也需要连接凭据。

rabbitmqctl list_users以查看配置了哪些用户。

如果客人在场,典型的信条是客人/客人

安装管理插件(或确认已安装(,或者编写测试脚本,大多数语言都有一个可用于连接到 RabbitMQ 的软件包。

相关内容

最新更新