--- title: "不再是主节点 - 如何解决此 Elasticsearch 异常" date: 2026-03-14 lastmod: 2026-03-14 description: "当 Elasticsearch 集群中之前作为主节点的节点不再担任该角色时,会抛出此错误。通常由网络问题、资源限制或新主节点选举导致。" tags: ["集群管理", "主节点"] summary: " 版本: 7.7-8.9 简要来说,当 Elasticsearch 集群中之前作为主节点(master)的节点不再担任该角色时,就会出现此错误。这可能是由于网络问题、资源限制或选举出了新的主节点导致的。要解决此问题,您可以检查集群健康状态和日志以识别任何问题。如果是网络问题,请确保所有节点正确连接。如果是资源问题,请考虑添加更多资源或节点。如果由于旧主节点无响应而选举出了新主节点,请调查无响应的原因。 日志上下文 # 日志"no longer master"的类名是 PendingListenersQueue.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考: if (listeners.isEmpty() == false) { threadPool.generic().execute(() -> { if (isMaster) { ActionListener.onResponse(listeners, null); } else { ActionListener.onFailure(listeners, new NotMasterException("no longer master")); } }); } } " --- > **版本:** 7.7-8.9 简要来说,当 Elasticsearch 集群中之前作为主节点(master)的节点不再担任该角色时,就会出现此错误。这可能是由于网络问题、资源限制或选举出了新的主节点导致的。要解决此问题,您可以检查集群健康状态和日志以识别任何问题。如果是网络问题,请确保所有节点正确连接。如果是资源问题,请考虑添加更多资源或节点。如果由于旧主节点无响应而选举出了新主节点,请调查无响应的原因。 日志上下文 ----------- 日志"no longer master"的类名是[PendingListenersQueue.java。](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考: ```java if (listeners.isEmpty() == false) { threadPool.generic().execute(() -> { if (isMaster) { ActionListener.onResponse(listeners, null); } else { ActionListener.onFailure(listeners, new NotMasterException("no longer master")); } }); } } ```