集群脑裂与自动愈合

EMQ X 支持集群脑裂自动恢复(Network Partition Autoheal):

  1. cluster.autoheal = on

集群脑裂自动恢复流程:

  1. 节点收到 Mnesia 的 inconsistent_database 事件 3 秒后进行集群脑裂确认;
  2. 节点确认集群脑裂发生后,向 Leader 节点(集群中最早启动节点)上报脑裂消息;
  3. Leader 节点延迟一段时间后,在全部节点在线状态下创建脑裂视图(SplitView);
  4. Leader 节点在多数派(majority)分区选择集群自愈的 Coordinator 节点;
  5. Coordinator 节点重启少数派(minority)分区节点恢复集群。