5.1.1出现脑裂后报以下错误没法启动,把data目录清空了一样没法运行,请况是什么问题呢?


5.1.1出现脑裂后报以下错误没法启动,把data目录清空了一样没法运行,请况是什么问题呢?

这个bad_cookies的出现,应该是data目录没删除,你是用什么方式安装的?删除的目录在哪里?

在centos7 下解压下载的压缩包,删除止录是emqx下的data目录。

好的。那应该是删对了,你删除后,再启动,虽然失败了,他还会生成文件么?

会的,最后我发现日志有一些我之前踢出集群的节点的数据存在,但这也是一个很奇怪的问题,那些被我踢出节点的数据不知怎么突然自已加回来,而且是集群上面显示停止状态的,最后我再次踢走这些有问题的节点就能启动了。这里是比较灵异的地方

你好,请问一下,是不是使用的静态方式组建集群,在etc/emqx.conf中指定了所有的节点名字
然后再用的命令行踢出节点。然后删除data后启动失败的

是的,如果不踢出节点,就算删除data目录也没法启动,要踢出节点后再删除data才能正常启动成功,但最诡异的地方是我踢出的节点在脑裂前是不存在的,脑裂后就出来了。

那我试着理一下流程:

  1. A,B两个节点,静态组成集群(emqx.conf中seeds有[A,B]),出现脑裂,分成2个集群。
  2. 发现问题,A,B都进行重启(或者重启了其中1个节点A)
  3. 发现其中A节点重启失败,B成功(或者 B一直存活)。
  4. B活着时,B中seeds有 [A,B],所以B会自动去重连 A
  5. A失败后,删除data目录,启动时,B一直在尝试连接A,所以会干扰A的启动。导致了A的日志里面有B的节点信息。

是的,是这样的流程;但这个一开始我是有五个节点,分别是A,b,c,d,e 最后我踢走了3个,只留AB,然后就根据你这个流程下来。到了第5步就发现,日志里还有之前踢走的3个节点的日志信息,最后我用emqx_ctl 查看,脑裂后,之前踢的的三个节点还在集群信息中,状态只stop,最后我用emqx_ctl 再次踢走那3个节点后,A节点才能启动

那就

对的,如果不主动踢出节点,emqx的状态只会显示为stop,当离开的时间超过了cluster.autoclean 后,才会自动把他移除集群,5.1里面默认是24h.

但问题我出现脑裂前这三个节点已被我踢出了,只是脑裂后这三个节点的数据又回来了;

不好意思,我有点没跟上。回到哪里了,能详细说一下步骤么?
比如你在哪些节点上用的什么操作(命令)踢出,数据回来是回到哪里。