📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 7-7.15

简要来说,当 Elasticsearch 集群中的当前主节点因网络分区、节点故障或具有更高 term 的新节点被选举为主节点而失去其状态时,会发生此错误。要解决此问题,请确保所有节点都在运行且网络连接稳定。如果问题仍然存在,请考虑增加 ‘discovery.zen.minimum_master_nodes’ 设置的值以防止脑裂情况。同时,检查集群的健康状况和日志以发现任何异常。如果新的主节点导致此问题,请验证其配置以及是否适合主节点角色。

日志上下文 #

日志 “node is no longer master for term” 的类名是 Coordinator.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:

try {
 synchronized (mutex) {
 if (mode != Mode.LEADER || getCurrentTerm() != clusterChangedEvent.state().term()) {
 logger.debug(() -> new ParameterizedMessage("[{}] failed publication as node is no longer master for term {}";
 clusterChangedEvent.source(); clusterChangedEvent.state().term()));
 publishListener.onFailure(new FailedToCommitClusterStateException("node is no longer master for term " +
 clusterChangedEvent.state().term() + " while handling publication"));
 return;
 }  if (currentPublication.isPresent()) {