部署emqx集群,节点分别部署在不同的服务器上,每个服务器配置双网卡
节点服务器网卡1断开后,节点与集群断开,显示其余节点stopped。集群无法自愈
你的意思是服务器上有两个网卡A和B,然后emqx使用了其中一个网卡?当这个网卡断开后,emqx没有迁移到另外一个网卡上?
是的
能看下你配置文件么,我去查下代码看看
emqx:
image: emqx/emqx
container_name: emqx
environment:
- EMQX_NAME=emqx
- EMQX_HOST=mhb.pn9900.cn
- EMQX_MANAGEMENT__LISTENER__HTTP=18080
- EMQX_LISTENER__TCP__EXTERNAL=1883
- EMQX_NODE__DIST_LISTEN_MIN=6000
- EMQX_NODE__DIST_LISTEN_MAX=7999
- EMQX_NODE__DIST_NET_TICKTIME=1800
- EMQX_NODE__COOKIE=emqxcookie
- EMQX_CLUSTER__NAME=pnemqx
- EMQX_CLUSTER__AUTOCLEAN=15m
- EMQX_CLUSTER__AUTOHEAL=on
- EMQX_CLUSTER__DISCOVERY=etcd
- EMQX_CLUSTER__ETCD__SERVER=http://xxxxx:2379
- EMQX_CLUSTER__ETCD__PREFIX=emqcl3
- EMQX_CLUSTER__ETCD__NODE_TTL=1m
- EMQX_LOG.TO=both
restart: always
network_mode: host
mhb.pn9900.cn对应两个IP
感觉是TTL导致key超时,然后找不到服务了
1.你检查下各个节点下的日志,看看有没有socket cluster相关的内容
2.我怀疑是域名多ip导致的,当网卡1断开后,域名映射没有变化,不考虑dns缓存的情况,每次发送数据就有1/2的概率出现链路不通的情况,如果使用多ip,最好在这前面加入一层keepalived
3.我先把这个问题反馈下,后续如果确定是bug的话,会尽快修复
请问在哪里加一层keepalived
还有再请教下,我在配置时设置了autoheal为on,autoclean为15m,为什么>5分钟还是无法集群恢复,<5分钟可以