diff options
| author | lijinyang <[email protected]> | 2024-03-25 16:54:05 +0800 |
|---|---|---|
| committer | lijinyang <[email protected]> | 2024-03-25 16:54:05 +0800 |
| commit | 49fabc4c3089a9082017bad61918e17d3b4de92c (patch) | |
| tree | acb9cfdc966ee180e58e2d3101cb8bb18952d333 /src/main | |
| parent | df91256800abf407517aa79e06c26aa0a56e1c2d (diff) | |
fix:检测接口增加微服务节点状态,修复状态歧义问题
Diffstat (limited to 'src/main')
3 files changed, 43 insertions, 5 deletions
diff --git a/src/main/java/com/mesa/reportservice/service/ZookeeperService.java b/src/main/java/com/mesa/reportservice/service/ZookeeperService.java index 69f77d2..4b86792 100644 --- a/src/main/java/com/mesa/reportservice/service/ZookeeperService.java +++ b/src/main/java/com/mesa/reportservice/service/ZookeeperService.java @@ -4,6 +4,7 @@ package com.mesa.reportservice.service; import org.springframework.stereotype.Service; import java.net.InetAddress; +import java.util.Map; /** * @@ -14,4 +15,6 @@ import java.net.InetAddress; public interface ZookeeperService { boolean isMaster(); + + Map<String,Object> status() throws Exception; }
\ No newline at end of file diff --git a/src/main/java/com/mesa/reportservice/service/impl/JobServiceImpl.java b/src/main/java/com/mesa/reportservice/service/impl/JobServiceImpl.java index 95653e0..c60d5e3 100644 --- a/src/main/java/com/mesa/reportservice/service/impl/JobServiceImpl.java +++ b/src/main/java/com/mesa/reportservice/service/impl/JobServiceImpl.java @@ -58,13 +58,18 @@ public class JobServiceImpl extends ServiceImpl<JobMapper, JobEntity> implements @Override public R getJobStatus() { Map<String,Object> numMap = getJobCount(); + Map<String, Object> status = null; + try { + status = zookeeperService.status(); + } catch (Exception e) { + e.printStackTrace(); + } + if(ObjectUtil.isNotEmpty(status.get("nodeStatus"))){ + numMap.put("nodeStatus",status.get("nodeStatus")); + } R r = new R(); r.put("data",numMap); - if(zookeeperService.isMaster()){ - r.put("status","UP"); - }else{ - r.put("status","DOWN"); - } + r.put("status",status.get("status")); return r; } diff --git a/src/main/java/com/mesa/reportservice/service/impl/ZookeeperServiceImpl.java b/src/main/java/com/mesa/reportservice/service/impl/ZookeeperServiceImpl.java index dd2c267..070231b 100644 --- a/src/main/java/com/mesa/reportservice/service/impl/ZookeeperServiceImpl.java +++ b/src/main/java/com/mesa/reportservice/service/impl/ZookeeperServiceImpl.java @@ -12,6 +12,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * @@ -68,6 +72,32 @@ public class ZookeeperServiceImpl implements ZookeeperService { return false; } } + + @Override + public Map<String,Object> status() throws Exception { + Map<String, Object> status = new HashMap<>(); + status.put("status","UP"); + if (zookeeperProperties.getOpen() == 0) { + List<Map> nodeList = new ArrayList<>(); + Map<String, Object> node = new HashMap<>(); + List<String> children = curatorConnect.getChildren().forPath("/"); + boolean isDown = true; + for (String child : children) { + Stat stat = curatorConnect.checkExists().forPath("/" + child); + node.put("url",child); + node.put("status",stat != null?"UP":"DOWN"); + nodeList.add(node); + if (stat != null) { + isDown = false; + } + } + if(isDown){ + status.put("status","DOWN"); + } + status.put("nodeStatus",nodeList); + } + return status; + } } |
