summaryrefslogtreecommitdiffstats
path: root/apiroute/apiroute-service/src
diff options
context:
space:
mode:
Diffstat (limited to 'apiroute/apiroute-service/src')
-rw-r--r--apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListConsumer.java76
1 files changed, 14 insertions, 62 deletions
diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListConsumer.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListConsumer.java
index c673d78..6ed9cf8 100644
--- a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListConsumer.java
+++ b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListConsumer.java
@@ -1,11 +1,11 @@
/*******************************************************************************
* Copyright 2016-2017 ZTE, Inc. and others.
- *
+ *
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
@@ -35,31 +35,24 @@ import com.fasterxml.jackson.core.JsonToken;
public class ServiceListConsumer implements Runnable {
private static final Logger LOGGER = LoggerFactory.getLogger(ServiceListConsumer.class);
-
private boolean isRunning = true;
-
private int index;
-
public ServiceListConsumer() {
this.index = 0;
}
public void run() {
LOGGER.info("run ServiceList Consumer Thread [" + index + "]");
-
while (isRunning) {
try {
// 取最新一条记录
ServiceData<HttpEntity> serviceData = QueueManager.getInstance().takeFromServiceListQueue(index);
LOGGER.debug("ServiceList Consumer Thread [" + index
- + "] take out serviceData from Queue successfully");
-
+ + "] take out serviceData from Queue successfully");
HttpEntity newValues = serviceData.getData();
-
Set<String> newServiceNameList = filterServiceList(newValues);
-
- if (ServiceListCache.getLatestServiceNamelist().size() == 0) {
+ if (ServiceListCache.getLatestServiceNamelist().isEmpty()) {
boolean initSuccess = initServiceList(newServiceNameList);
if (initSuccess) {
ServiceListCache.setLatestServiceNamelist(newServiceNameList);
@@ -68,8 +61,6 @@ public class ServiceListConsumer implements Runnable {
updateServiceList(newServiceNameList);
ServiceListCache.setLatestServiceNamelist(newServiceNameList);
}
-
-
} catch (Exception e) {
LOGGER.error("ServiceListConsumer throw Exception: ", e);
}
@@ -78,17 +69,14 @@ public class ServiceListConsumer implements Runnable {
private void startWatchService(String serviceName) {
// start to Watch service nodes
-
SyncDataManager.startWatchService(serviceName);
}
private void updateServiceList(Set<String> newServiceNameList) {
Set<String> registerServiceNameList =
- CommonUtil.getDiffrent(ServiceListCache.getLatestServiceNamelist(), newServiceNameList);
-
- if (registerServiceNameList.size() > 0) {
+ CommonUtil.getDiffrent(ServiceListCache.getLatestServiceNamelist(), newServiceNameList);
+ if (!registerServiceNameList.isEmpty()) {
LOGGER.info("***need to start Watch Service num from consul :" + registerServiceNameList.size());
-
for (String serviceName : registerServiceNameList) {
startWatchService(serviceName);
}
@@ -97,18 +85,13 @@ public class ServiceListConsumer implements Runnable {
private boolean initServiceList(Set<String> newServiceNameList) {
LOGGER.info("***start to initialize service List when System startup ***");
-
Set<String> dbServiceNameList = MicroServiceWrapper.getInstance().getAllMicroServiceKey();
-
if (dbServiceNameList == null) {
LOGGER.error("init ServiceList from redis fail ");
return false;
}
-
-
// 对比删除redis脏数据
Set<String> delServiceNameList = CommonUtil.getDiffrent(newServiceNameList, dbServiceNameList);
-
LOGGER.info("***need to delete Service num from redis :" + delServiceNameList.size());
for (String serviceName : delServiceNameList) {
try {
@@ -117,47 +100,24 @@ public class ServiceListConsumer implements Runnable {
} catch (Exception e) {
LOGGER.error("initialize serviceList :Delete MicroServiceInfo serviceName:" + serviceName + " FAIL : ",
- e);
+ e);
}
}
// 启动同步开启监听全部服务列表
LOGGER.info("***need to start Watch Service num from initialize :" + newServiceNameList.size());
-
for (String serviceName : newServiceNameList) {
startWatchService(serviceName);
}
-
return true;
-
}
- /*
- * private ImmutableSet<String> filterServiceList( final Map<String, List<String>> serviceList)
- * { if (serviceList == null || serviceList.isEmpty()) { return ImmutableSet.of(); }
- *
- * final ImmutableSet.Builder<String> builder = ImmutableSet.builder();
- *
- * for (Map.Entry<String, List<String>> entry : serviceList.entrySet()) {
- *
- * String key = entry.getKey(); if (key != null && !"consul".equals(key)) {
- *
- * List<String> value = entry.getValue(); if
- * (ServiceFilter.getInstance().isFilterService(value)) { builder.add(key); } } }
- *
- * LOGGER.info("consul all service num:" + serviceList.size());
- * LOGGER.info("consul filter service num:" + builder.build().size());
- *
- * return builder.build(); }
- */
private Set<String> filterServiceList(final HttpEntity serviceList) {
if (serviceList == null || serviceList.getContentLength() == 0) {
- return new HashSet<String>();
+ return new HashSet<>();
}
-
- final Set<String> builder = new HashSet<String>();
-
+ final Set<String> builder = new HashSet<>();
JsonFactory f = new JsonFactory();
JsonParser jp = null;
List<String> tagList = null;
@@ -173,31 +133,23 @@ public class ServiceListConsumer implements Runnable {
while (jp.nextToken() != JsonToken.END_ARRAY) {
tagList.add(jp.getText());
}
-
- if (serviceName != null && !"consul".equals(serviceName)) {
- if (ServiceFilter.getInstance().isFilterService(tagList)) {
- builder.add(serviceName);
- }
+ if (serviceName != null && !"consul".equals(serviceName)&&ServiceFilter.getInstance().isFilterService(tagList)) {
+ builder.add(serviceName);
}
}
} catch (IOException e) {
LOGGER.warn("parse service list error", e);
- return new HashSet<String>();
+ return new HashSet<>();
} finally {
try {
jp.close();
} catch (IOException e) {
LOGGER.warn("parse service list error", e);
- return new HashSet<String>();
}
}
-
int latestServiceNum = ServiceListCache.getLatestServiceNamelist().size();
- // if(latestServiceNum!=builder.size()){
LOGGER.info("[consul] all service num:" + inputServiceNum + ", filter service num: new——" + builder.size()
- + " old——" + latestServiceNum);
- // }
-
+ + " old——" + latestServiceNum);
return builder;
}