From 7bfe787e395e8b60a1853abf118e19334b405975 Mon Sep 17 00:00:00 2001 From: ZQKC Date: Fri, 19 May 2023 11:46:33 +0800 Subject: [PATCH] =?UTF-8?q?[Bugfix]=E4=BF=AE=E5=A4=8Dzk=20standalone?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E4=B8=8D=E5=85=BC=E5=AE=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../km/biz/cluster/impl/ClusterZookeepersManagerImpl.java | 3 ++- .../know/streaming/km/common/enums/zookeeper/ZKRoleEnum.java | 2 ++ .../health/checker/zookeeper/HealthCheckZookeeperService.java | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/km-biz/src/main/java/com/xiaojukeji/know/streaming/km/biz/cluster/impl/ClusterZookeepersManagerImpl.java b/km-biz/src/main/java/com/xiaojukeji/know/streaming/km/biz/cluster/impl/ClusterZookeepersManagerImpl.java index aca30269..8aed18dd 100644 --- a/km-biz/src/main/java/com/xiaojukeji/know/streaming/km/biz/cluster/impl/ClusterZookeepersManagerImpl.java +++ b/km-biz/src/main/java/com/xiaojukeji/know/streaming/km/biz/cluster/impl/ClusterZookeepersManagerImpl.java @@ -62,7 +62,8 @@ public class ClusterZookeepersManagerImpl implements ClusterZookeepersManager { vo.setTotalObserverCount(0); vo.setAliveServerCount(0); for (ZookeeperInfo info: infoList) { - if (info.getRole().equals(ZKRoleEnum.LEADER.getRole())) { + if (info.getRole().equals(ZKRoleEnum.LEADER.getRole()) || info.getRole().equals(ZKRoleEnum.STANDALONE.getRole())) { + // leader 或者 standalone vo.setLeaderNode(info.getHost()); } diff --git a/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/enums/zookeeper/ZKRoleEnum.java b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/enums/zookeeper/ZKRoleEnum.java index fd379dc8..420ccc36 100644 --- a/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/enums/zookeeper/ZKRoleEnum.java +++ b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/enums/zookeeper/ZKRoleEnum.java @@ -10,6 +10,8 @@ public enum ZKRoleEnum { OBSERVER("observer"), + STANDALONE("standalone"), + UNKNOWN("unknown"), ; diff --git a/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/health/checker/zookeeper/HealthCheckZookeeperService.java b/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/health/checker/zookeeper/HealthCheckZookeeperService.java index f18f3172..933310dc 100644 --- a/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/health/checker/zookeeper/HealthCheckZookeeperService.java +++ b/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/health/checker/zookeeper/HealthCheckZookeeperService.java @@ -102,6 +102,10 @@ public class HealthCheckZookeeperService extends AbstractHealthCheckService { ); long value = infoList.stream().filter(elem -> ZKRoleEnum.LEADER.getRole().equals(elem.getRole())).count(); + if (value == 0) { + // ZK 在单机模式下,leader角色就是standalone + value = infoList.stream().filter(elem -> ZKRoleEnum.STANDALONE.getRole().equals(elem.getRole())).count(); + } checkResult.setPassed(value == 1 ? Constant.YES : Constant.NO); return checkResult;