我有不同的机器上运行多个RabbitMQ节点。 安装完每个节点后,我无法为每个节点指定一个通用的cookie,所以我不得不返回并手动更改文件.erlang.cookie。 我的问题是,这样做后,我得到了冲突的错误消息。 如果我做rabbitmqctl状态,我得到以下错误:
诊断
试图联系:['rabbit @ nc-mso-test01']
rabbit @ nc-mso-test01:*连接到nc-mso-test01上的epmd(端口4369)* epmd报告在端口25672上运行的节点'rabbit'* TCP连接成功,但Erlang分发失败
- 身份validation失败(被远程节点拒绝),请检查Erlang cookie
当前节点详细信息: – 节点名称:'rabbitmq-cli-45 @ nc-mso-test01' – home dir:C:\ Users \ jol – Cookie hash:9 / Hx6l + wLQv3NkmSDFqBog ==
无论我打电话给谁,我都会得到同样的错误。 我尝试重新启动服务,通过rabbitmq-service删除并安装它。 错误依然存在。 从我从其他post可以得到的情况来看,原因可能是节点和erlang代理运行在不同的用户上,每个用户都有一个不同版本的cookie,一个是旧的。
我怎样才能使服务器和节点重新启动,以便他们都使用新的cookie文件?
我解决了我的问题。 我错过了这个事实:RabbitMQ安装程序有两个cookie文件,一个在erlang组件的c:\ Windows中,一个在C:\ Users \%USER%中。 据我所知,如果erlan虚拟机启动它自己的应用程序用户和RabbitMQ节点启动不同的用户,这将是我的情况,那么这两个cookie文件是不同的,我必须同步之前同步群集饼干。