Mik*_*key 29 cookies erlang rabbitmq
我正在使用带有grails的rabbitMQ,今天早上出现了一个问题.当我运行rabbitmqctl status时它会告诉我:
C:\Users\BuildnTest2>rabbitmqctl status
Status of node 'rabbit@BUILDNTEST2-PC' ...
Error: unable to connect to node 'rabbit@BUILDNTEST2-PC': nodedown diagnostics:
- nodes and their ports on BUILDNTEST2-PC: [{rabbit,49164},
{rabbitmqctl27693,49286}]
- current node: 'rabbitmqctl27693@BuildnTest2-PC'
- current node home dir: C:\Users\BuildnTest2
- current node cookie hash: cSYB8tsT4mGGZHSUGQi08w==
Run Code Online (Sandbox Code Playgroud)
当我进入兔子故障排除页面时:http://www.rabbitmq.com/troubleshooting.html他们说:
then you should make sure the erlang cookies are the same.
Run Code Online (Sandbox Code Playgroud)
这是什么意思,它是如何实现的?
谷歌搜索发现这个论坛帖子http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2011-January/010806.html声称有解决这个问题的说明,但唉它只是重定向回兔子网站那里不是答案.
Ste*_*rdi 16
在我的情况下,由于某种原因,该Cookie(.erlang.cookie下储存)C:\Windows\是从我我家下存储的一个(不同的%HOMEDRIVE% %HOMEPATH%,这是C:\对我来说).
一旦我将cookie复制C:\Windows到我的主文件夹中,一切都开始工作了.
slf*_*slf 12
对于那些谷歌搜索,当您HOME从环境配置中缺少参数时,可能会发生同样的错误cookie错误.例如,在rabbitmq的默认ArchLinux安装上.
在这种情况下,服务启动systemctl start rabbitmq并生成一个cookie,但cli工具rabbitmqctl status不会开箱即用,因为他们不知道家的位置.
默认 /etc/rabbitmq/rabbitmq-env.conf
NODENAME=rabbit
NODE_IP_ADDRESS=0.0.0.0
NODE_PORT=5672
LOG_BASE=/var/log/rabbitmq
MNESIA_BASE=/var/lib/rabbitmq/mnesia
Run Code Online (Sandbox Code Playgroud)
修改 /etc/rabbitmq/rabbitmq-env.conf
NODENAME=rabbit
NODE_IP_ADDRESS=127.0.0.1
NODE_PORT=5672
HOME=/var/lib/rabbitmq
LOG_BASE=/var/log/rabbitmq
MNESIA_BASE=/var/lib/rabbitmq/mnesia
Run Code Online (Sandbox Code Playgroud)
参考https://bbs.archlinux.org/viewtopic.php?id=191587
小智 10
对于它的价值,在2018年,文档是错误的.在Windows 10中,cookie文件的默认位置似乎是:
C:\Windows\System32\config\systemprofile
Run Code Online (Sandbox Code Playgroud)
并不是
C:\Windows
Run Code Online (Sandbox Code Playgroud)
正如文档所说.
最好的办法是查看日志文件,该文件通常位于用户%AppData%\Roaming\RabbitMQ\log目录中.
日志文件包含此条目,这有助于我确定cookie位置:
node : rabbit@computername
home dir : C:\WINDOWS\system32\config\systemprofile
Run Code Online (Sandbox Code Playgroud)
在运行erlang进程的用户的主目录中,有隐藏文件.erlang.cookie.它包含负责erlang集群拓扑的字符串.确保要连接的所有节点上的字符串(cookie)相同.如果没有cookie,请创建一个.
关于您的具体问题的最终答案,在RabbitMQ网站上是http://www.rabbitmq.com/clustering.html
但是,从您的状态转储中,看起来这不是您的问题.它看起来好像你的节点已关闭.假设您没有运行群集,我是否正确?您无法连接的节点与运行命令的节点相同,这表明这一点.
如果RabbitMQ服务正在运行,那么运行rabbitmqctl start如果它没有运行,那么转到服务并启动它,然后再运行上面的服务.erlang cookie与非群集配置无关.
| 归档时间: |
|
| 查看次数: |
51528 次 |
| 最近记录: |