Merge pull request #1003 from fangjian0423/master

Adding a failure analyzer for Nacos Config
pull/1010/head^2
format 5 years ago committed by GitHub
commit b24d9a2293
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -18,11 +18,10 @@ package com.alibaba.cloud.nacos;
import java.util.Objects; import java.util.Objects;
import com.alibaba.cloud.nacos.diagnostics.analyzer.NacosConnectionFailureException;
import com.alibaba.nacos.api.NacosFactory; import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService; import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.exception.NacosException; import com.alibaba.nacos.api.exception.NacosException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -31,8 +30,6 @@ import org.springframework.beans.factory.annotation.Autowired;
*/ */
public class NacosConfigManager { public class NacosConfigManager {
private static final Logger log = LoggerFactory.getLogger(NacosConfigManager.class);
private static ConfigService service = null; private static ConfigService service = null;
@Autowired @Autowired
@ -46,7 +43,8 @@ public class NacosConfigManager {
properties.initConfigService(service); properties.initConfigService(service);
} }
catch (NacosException e) { catch (NacosException e) {
log.error("create config service error!properties={},e=,", properties, e); throw new NacosConnectionFailureException(properties.getServerAddr(),
e.getMessage(), e);
} }
} }
return service; return service;

@ -78,7 +78,7 @@ public class NacosConfigProperties {
.resolvePlaceholders("${spring.cloud.nacos.config.server-addr:}"); .resolvePlaceholders("${spring.cloud.nacos.config.server-addr:}");
if (StringUtils.isEmpty(serverAddr)) { if (StringUtils.isEmpty(serverAddr)) {
serverAddr = environment serverAddr = environment
.resolvePlaceholders("${spring.cloud.nacos.server-addr}"); .resolvePlaceholders("${spring.cloud.nacos.server-addr:}");
} }
this.setServerAddr(serverAddr); this.setServerAddr(serverAddr);
} }

@ -31,8 +31,10 @@ public class NacosConnectionFailureAnalyzer
@Override @Override
protected FailureAnalysis analyze(Throwable rootFailure, protected FailureAnalysis analyze(Throwable rootFailure,
NacosConnectionFailureException cause) { NacosConnectionFailureException cause) {
return new FailureAnalysis("Application failed to connect to Nacos server", return new FailureAnalysis(
"check your Nacos server config", cause); "Application failed to connect to Nacos server: \""
+ cause.getServerAddr() + "\"",
"Please check your Nacos server config", cause);
} }
} }

@ -24,29 +24,21 @@ package com.alibaba.cloud.nacos.diagnostics.analyzer;
*/ */
public class NacosConnectionFailureException extends RuntimeException { public class NacosConnectionFailureException extends RuntimeException {
private final String domain; private final String serverAddr;
private final String port; public NacosConnectionFailureException(String serverAddr, String message) {
public NacosConnectionFailureException(String domain, String port, String message) {
super(message); super(message);
this.domain = domain; this.serverAddr = serverAddr;
this.port = port;
} }
public NacosConnectionFailureException(String domain, String port, String message, public NacosConnectionFailureException(String serverAddr, String message,
Throwable cause) { Throwable cause) {
super(message, cause); super(message, cause);
this.domain = domain; this.serverAddr = serverAddr;
this.port = port;
}
String getDomain() {
return domain;
} }
String getPort() { public String getServerAddr() {
return port; return serverAddr;
} }
} }

@ -430,7 +430,8 @@ public class NacosDiscoveryProperties {
String serverAddr = env String serverAddr = env
.resolvePlaceholders("${spring.cloud.nacos.discovery.server-addr:}"); .resolvePlaceholders("${spring.cloud.nacos.discovery.server-addr:}");
if (StringUtils.isEmpty(serverAddr)) { if (StringUtils.isEmpty(serverAddr)) {
serverAddr = env.resolvePlaceholders("${spring.cloud.nacos.server-addr}"); serverAddr = env
.resolvePlaceholders("${spring.cloud.nacos.server-addr:}");
} }
this.setServerAddr(serverAddr); this.setServerAddr(serverAddr);
} }

Loading…
Cancel
Save