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

时间:2018-03-14 18:19:58

标签: rabbitmq windows-subsystem-for-linux

所以我刚刚安装了最新版本的rabbitmq,而且我一直试图让它运行起来。服务器正在运行,我已经重启了一次,只是为了确保它是一致的问题。

如果我telnet localhost 5672,我会

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

如您所见,连接已被接受,但rabbitmq不接受任何输入。连接立即关闭。没有进一步的信息显示在日志中。

rabbitmqctl没有任何问题。

这是在Windows子系统Linux / Ubuntu上运行的。我没有为本地开发环境提供任何其他选项,因为我在工作计算机上被严格锁定。

2 个答案:

答案 0 :(得分:3)

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

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

我通过创建Rabbitmq配置文件并指定localhost和5762端口来解决此问题

这是我逐步进行的工作。

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

    sudo vim /etc/rabbimq/rabbitmq.conf
    
  2. 我将localhost(127.0.0.1)和port(5672)指定为默认值 Rabbitmq.conf文件中的tcp监听器

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

    sudo service rabbitmq-server stop

    然后

    sudo service rabbitmq-server start

  4. 检查sudo rabbitmqctl status并查看侦听器,您应该看到新的tcp侦听器带有分隔的localhost ip

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

这是Rabbitmq的config docs,可能有助于阐明其中一些步骤。

答案 1 :(得分:0)

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

rabbitmqctl list_users查看哪些用户已配置。

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

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