RabbitMQ问题解决:TCP connection succeeded but Erlang distribution failed
说明
本来是要先把Hystrix 仪表盘更完的,但是出现了Turbine、Dashboard、RabbitMQ整合实现监控。
所以先在学RabbitMq的基本操作,在安装过程中出现了
E:\RabbitMQ Server\rabbitmq_server-3.6.5\sbin>rabbitmqctl status
Status of node 'rabbit@DESKTOP-T5RBR6M' ...
Error: unable to connect to node 'rabbit@DESKTOP-T5RBR6M': nodedown
DIAGNOSTICS
===========
attempted to contact: ['rabbit@DESKTOP-T5RBR6M']
rabbit@DESKTOP-T5RBR6M:
* connected to epmd (port 4369) on DESKTOP-T5RBR6M
* epmd reports node 'rabbit' running on port 25672
* TCP connection succeeded but Erlang distribution failed
* suggestion: hostname mismatch?
* suggestion: is the cookie set correctly?
* suggestion: is the Erlang distribution using TLS?
current node details:
- node name: 'rabbitmq-cli-27@DESKTOP-T5RBR6M'
- home dir: C:\Users\Administrator
- cookie hash: +Xg8GwzCRQiqRrJZqqF30A==
重点在TCP connection succeeded but Erlang distribution failed
、suggestion: is the cookie set correctly?
这两行,在网上看了两个小时了,发现很多都是不明所以弄成了就随便捊一下就写。。
有一些现在没有suggestion的输出,这不是很重要,这里我先恢复事故现场,大家一起踩坑
WorkArounds
问题复现
分别安装 Erlang (otp_win64_20.3.exe) 、RabbitMQ Server(rabbitmq-server-3.7.5.exe)
这里为了能看清晰问题是出在安装目录上还是其它,都装到D盘,其他不变
安装完成在菜单栏中会有这个显示,这里用win10演示(公司电脑)
查看服务,服务已经正常启动
cmd命令cd到D:\RabbitMQ Server\rabbitmq_server-3.7.5\sbin (你实际的安装位置)
小提示:如果是默认的安装位置,用 可以直接定位到sbin下
输入rabbitmqctl status
D:\RabbitMQ Server\rabbitmq_server-3.7.5\sbin>rabbitmqctl status
Status of node rabbit@DESKTOP-T5RBR6M ...
Error: unable to perform an operation on node 'rabbit@DESKTOP-T5RBR6M'. Please see diagnostics information and suggestions below.
Most common reasons for this are:
* Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)
* CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)
* Target node is not running
In addition to the diagnostics info below:
* See the CLI, clustering and networking guides on http://rabbitmq.com/documentation.html to learn more
* Consult server logs on node rabbit@DESKTOP-T5RBR6M
DIAGNOSTICS
===========
attempted to contact: ['rabbit@DESKTOP-T5RBR6M']
rabbit@DESKTOP-T5RBR6M:
* connected to epmd (port 4369) on DESKTOP-T5RBR6M
* epmd reports node 'rabbit' uses port 25672 for inter-node and CLI tool traffic
* TCP connection succeeded but Erlang distribution failed
* Authentication failed (rejected by the remote node), please check the Erlang cookie
Current node details:
* node name: 'rabbitmqcli49@DESKTOP-T5RBR6M'
* effective user's home directory: C:\Users\Administrator
* Erlang cookie hash: joVCp1tjZbhK/nWhgoYyjQ==
问题复现。
Authentication failed (rejected by the remote node), please check the Erlang cookie
是重点,说明cookie可能有问题。
问题解决
这里直接告诉大家问题出在哪吧,是Erlang新版本的cookie位置换了!
两种解决办法:
- 使用旧版本Erlang
- cookie替换到正确的位置
打开路径C:\Windows\System32\config\systemprofile
我们看到了这里有一个.erlang.cookie,复制这个文件到C:\Users\你的用户名
下
如果没有这个文件,请打开菜单栏的Erlang快捷方式,出现白色窗口的时候,
C:\Windows\System32\config\systemprofile
这个目录下就会出现这个文件,可能会慢一些耐心等
要确保C:\Windows\System32\config\systemprofile
和C:\Users\你的用户名
下的cookie是同一个文件!
替换完成后,无需重启服务,直接rabbitmqctl status
,如图这样就成功了。
以上