关于在WSL中使用RabbitMQ的问题

今天简单研究了一下 RabbitMQ,由于在 Windows 下安装较麻烦,还要先安装 ErLang 环境,感觉很不爽,于是决定在 WSL 中安装试试,sudo apt install rabbitmq-server,基本上可以说是一切顺利,sudo rabbitmq-server 启动了服务,sudo rabbitmq-plugins enable rabbitmq_management 启用了控制台插件,然后通过 http://127.0.0.1:15672,输入账号密码 guest/guest 访问一切正常!

 

然后用程序连接就开始出症了,怎么都连不上,看错误像是端口号不正确,但反复核对了,也没有发现问题,端口号确保无误。经历了半下午的研究,才终于在 stackoverflow 上找到答案,原来是 rabbitmq  这货在 WSL 中启动时默认只绑定 IPv6 的地址,简直巨坑!按帖子内容 sudo vim /etc/rabbimq/rabbitmq.conf,添加了配置项 listeners.tcp.default = 127.0.0.1:5672,重启服务,终于可以通过程序正常连接了!

注意:sudo rabbitmqctl status 必须能看到 “Interface: 127.0.0.1, port: 5672, ...” 这样的地址才算正常,如果是 “Interface: [::], port: 5672, ...” 这样的地址,表示只绑定了 IPv6

 

参考地址:https://stackoverflow.com/questions/49285088/rabbitmq-accepting-connections-but-closing-them-before-accepting-any-input

 

posted @ 2022-12-25 20:35  润之  阅读(211)  评论(0编辑  收藏  举报