关于EMQ脑裂情况的一些疑问

请教各位关于emqx脑裂的一些问题~
1、emqx脑裂期间有无措施让脑裂的少数派节点拒绝客户端写请求,或因脑裂无法接收到的消息如何数据恢复?
2、4.x的emqx有无关于脑裂的告警机制?

  1. 暂时还没有的。EMQX 发现脑裂后,会尝试自动治愈少数的节点
  2. 有的

参考:分布式集群 | EMQX 企业版 4.4 文档

关于第一点,我也想提个建议,如果超过5分钟自动踢出集群,但实际该节点还是存活的,对于做了nginx派发,有时数据会派发到踢出集群的该节点,那这种会导致数据丢失,所以可否在踢出集群的时候,可以让进程自杀或者停止端口的监听呢?

听起来是有必要的但比较麻烦,得思考下:thinking:。按我的理解,如果被踢出集群它是会立马重启,然后在开始尝试重新加入集群,在重启一次。

所以这个不稳定的过程中,只要有链接派发到了在重启的节点,确实是会导致数据部分上行消息丢失的。

cc @wivwiv @Benniu

对于已经出现了网络分区的少数派脑裂节点,能否支持一种机制让该节点停止端口监听呢,这样就不会出现数据丢失的情况。判断的原则其实就是该节点能ping通的节点集合已经不是集群的多数派(不过半)