在 WSL 中使用 RabbitMQ的问题

/ 3 评 / 阅读 1418

在WSL部署RabbitMQ,安装成功之后将官网的示例代码运行了一下,出现错误:

PHP Fatal error:  Uncaught PhpAmqpLib\Exception\AMQPConnectionClosedException: Broken pipe or closed connection

一直以为可能是自己代码里配置错了,看了半天源码没结果,就放着了。

今天想起来,会不会是WSL本身的问题呢?

果不其然,在stackoverflow上看到一个回答,要将默认的监听地址改为 127.0.0.1。默认的是同时监听了IPv6的地址,可能导致了问题。为什么会这样就不清楚了。😂

sudo vim /etc/rabbitmq/rabbitmq-env.conf 
# By default RabbitMQ will bind to all interfaces, on IPv4 and IPv6 if
# available. Set this if you only want to bind to one network interface or#
# address family.
NODE_IP_ADDRESS=127.0.0.1

参考链接🔗:

https://stackoverflow.com/questions/54322974/wsl-error-mainprocess-consumer-cannot-connect-to-amqp-guest127-0-0-156

发表评论

电子邮件地址不会被公开。 必填项已用*标注

全部评论

  1. 大佬,太感谢了,完美解决!!!!! 今天正好用wsl的ubuntu系统安装rmq,结果死活创建不了连接,

    一直提示Reason: "EOF",找遍了方法都没用,以前直接用虚拟机或者线上服务器从来没出现过这问

    题,差点让人崩溃.

  2. 今天在hyperf中用rabbitmq也碰到了这个问题