mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-08-12 07:02:14 +08:00
2.0
This commit is contained in:
@@ -62,24 +62,24 @@ public class DocDiscovery {
|
||||
// subscribe
|
||||
String thisServiceId = nacosDiscoveryProperties.getService();
|
||||
for (ServiceInfo serviceInfo : subscribes) {
|
||||
String serviceName = serviceInfo.getName();
|
||||
String serviceId = serviceInfo.getName();
|
||||
// 如果是本机服务,跳过
|
||||
if (Objects.equals(thisServiceId, serviceName) || "api-gateway".equalsIgnoreCase(serviceName)) {
|
||||
if (Objects.equals(thisServiceId, serviceId) || "api-gateway".equalsIgnoreCase(serviceId)) {
|
||||
continue;
|
||||
}
|
||||
// nacos会不停的触发事件,这里做了一层拦截
|
||||
// 同一个serviceId5秒内允许访问一次
|
||||
Long lastUpdateTime = updateTimeMap.getOrDefault(serviceName, 0L);
|
||||
Long lastUpdateTime = updateTimeMap.getOrDefault(serviceId, 0L);
|
||||
long now = System.currentTimeMillis();
|
||||
if (now - lastUpdateTime < FIVE_SECONDS) {
|
||||
continue;
|
||||
}
|
||||
updateTimeMap.put(serviceName, now);
|
||||
updateTimeMap.put(serviceId, now);
|
||||
try {
|
||||
List<Instance> allInstances = namingService.getAllInstances(serviceName);
|
||||
List<Instance> allInstances = namingService.getAllInstances(serviceId);
|
||||
if (CollectionUtils.isEmpty(allInstances)) {
|
||||
// 如果没有服务列表,则删除所有路由信息
|
||||
docManager.remove(serviceName);
|
||||
docManager.remove(serviceId);
|
||||
} else {
|
||||
for (Instance instance : allInstances) {
|
||||
String url = getRouteRequestUrl(instance);
|
||||
@@ -87,16 +87,16 @@ public class DocDiscovery {
|
||||
if (responseEntity.getStatusCode() == HttpStatus.OK) {
|
||||
String body = responseEntity.getBody();
|
||||
docManager.addDocInfo(
|
||||
serviceName
|
||||
serviceId
|
||||
, body
|
||||
, callback -> log.info("加载服务文档,serviceId={}, 机器={}"
|
||||
, serviceName, instance.getIp() + ":" + instance.getPort())
|
||||
, serviceId, instance.getIp() + ":" + instance.getPort())
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (NacosException e) {
|
||||
log.error("选择服务实例失败,serviceName:{}", serviceName, e);
|
||||
log.error("选择服务实例失败,serviceId:{}", serviceId, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user