节点断网一段时间后,不重启无法自动加入集群

环境信息

  • EMQ X 版本:4.3.6
  • 操作系统及版本:docker
  • 其他

问题描述

集群部署后,节点网络中断后>5分钟,在集群节点列表中只展示该节点,显示其余节点(正常)stopped

其余节点查看集群状态,该节点stopped,无法自行恢复,需要重启节点

[error] Mnesia('emqx@xxxxx'): ** ERROR ** mnesia_event got {inconsistent_database, starting_partitioned_network, 'emqx@xxxxx'},

配置文件及日志

- EMQX_MANAGEMENT__LISTENER__HTTP=18080
- EMQX_LISTENER__TCP__EXTERNAL=1883
- EMQX_NODE__DIST_LISTEN_MIN=6000
- EMQX_NODE__DIST_LISTEN_MAX=7999
- EMQX_NODE__COOKIE=emqxcookie
- EMQX_CLUSTER__NAME=pnemqx
- EMQX_CLUSTER__AUTOHEAL=on
- EMQX_CLUSTER__AUTOCLEAN=10h
- EMQX_CLUSTER__DISCOVERY=etcd
- EMQX_CLUSTER__ETCD__SERVER=http://192.168.111.132:2379
- EMQX_CLUSTER__ETCD__PREFIX=emqcl3
- EMQX_CLUSTER__ETCD__NODE_TTL=1m

你用的是公网集群吗?

你这个错误是分布性集群系统脑裂的错误LOG,在分布性集群系统中,是通过网络来同步数据,如果网络不稳定会导致集群下的节点数据不一致,就会出现脑裂情况

不是,私网

四个节点分别部署在四台服务器,其中一台或两台断网(如插拔网线)后,重新联网后,断网的这台服务器集群下仅展示自己

如果由于网络不稳定造成脑裂后,除了重启有别的方式能够自动加入集群吗

你可以去官网文档里面查看一下集群脑裂的自愈文档


你好! 官网文档里关于脑裂自动愈合的文档只有这一块吗?我也遇到了相同的问题。
我的是在阿里云和华为云的服务器上,可能这两个云服务的网络通信不好,华为云的会自动脑裂成为一个单独的节点,阿里云的三个节点成为一个集群了,请问怎么设置自动愈合呢?必须手动再加入下集群?

你好,你这个问题解决了吗?我也遇到了和你一样的问题

超过AUTOCLEAN的时间就无法自愈了,我原来遇到没有到AUTOCLEAN这个时间都无法自愈,是将 node.dist_net_ticktime配置小点,基本上在AUTOCLEAN时间内可以自愈,不过如果集群的多数派不可用,则不会进行自愈。之前我试过四个节点,停掉两个后,剩下的两个集群脑裂后不会进行自愈