summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlijinyang <[email protected]>2024-03-25 16:54:05 +0800
committerlijinyang <[email protected]>2024-03-25 16:54:05 +0800
commit49fabc4c3089a9082017bad61918e17d3b4de92c (patch)
treeacb9cfdc966ee180e58e2d3101cb8bb18952d333
parentdf91256800abf407517aa79e06c26aa0a56e1c2d (diff)
fix:检测接口增加微服务节点状态,修复状态歧义问题
-rw-r--r--src/main/java/com/mesa/reportservice/service/ZookeeperService.java3
-rw-r--r--src/main/java/com/mesa/reportservice/service/impl/JobServiceImpl.java15
-rw-r--r--src/main/java/com/mesa/reportservice/service/impl/ZookeeperServiceImpl.java30
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;
+ }
}