Commit d9c8d814 by Nepxion

修复在Consul路由的Bug

parent e5170b12
......@@ -9,17 +9,49 @@ package com.nepxion.discovery.plugin.framework.adapter;
* @version 1.0
*/
import javax.annotation.PostConstruct;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.serviceregistry.Registration;
import org.springframework.cloud.consul.serviceregistry.ConsulRegistration;
import org.springframework.core.env.ConfigurableEnvironment;
import com.nepxion.discovery.plugin.framework.constant.ConsulConstant;
import com.nepxion.discovery.plugin.framework.constant.PluginConstant;
import com.nepxion.discovery.plugin.framework.exception.PluginException;
public class ConsulAdapter implements PluginAdapter {
@Autowired
protected ConfigurableEnvironment environment;
private ConfigurableEnvironment environment;
private String version;
@PostConstruct
private void initialize() {
String value = environment.getProperty(ConsulConstant.METADATA_VERSION);
if (StringUtils.isEmpty(value)) {
return;
}
String[] valueArray = StringUtils.split(value, ",");
if (ArrayUtils.isEmpty(valueArray)) {
return;
}
for (String text : valueArray) {
String[] textArray = StringUtils.split(text.trim(), "=");
if (textArray.length != 2) {
throw new PluginException("Invalid tags config for consul");
}
if (StringUtils.equals(textArray[0].trim(), PluginConstant.VERSION)) {
version = textArray[1].trim();
return;
}
}
}
@Override
public String getIpAddress(Registration registration) {
......@@ -34,6 +66,6 @@ public class ConsulAdapter implements PluginAdapter {
@Override
public String getVersion() {
return environment.getProperty(ConsulConstant.METADATA_VERSION);
return version;
}
}
\ No newline at end of file
......@@ -10,5 +10,5 @@ package com.nepxion.discovery.plugin.framework.constant;
*/
public class ConsulConstant {
public static final String METADATA_VERSION = "spring.cloud.consul.discovery.tags.version";
public static final String METADATA_VERSION = "spring.cloud.consul.discovery.tags";
}
\ No newline at end of file
......@@ -19,7 +19,7 @@ import com.nepxion.discovery.plugin.framework.exception.PluginException;
public class EurekaAdapter implements PluginAdapter {
@Autowired
protected ConfigurableEnvironment environment;
private ConfigurableEnvironment environment;
@Override
public String getIpAddress(Registration registration) {
......
......@@ -19,7 +19,7 @@ import com.nepxion.discovery.plugin.framework.exception.PluginException;
public class ZookeeperAdapter implements PluginAdapter {
@Autowired
protected ConfigurableEnvironment environment;
private ConfigurableEnvironment environment;
@Override
public String getIpAddress(Registration registration) {
......
......@@ -44,7 +44,7 @@ public class RouterController {
private PluginAdapter pluginAdapter;
@Autowired
protected ConfigurableEnvironment environment;
private ConfigurableEnvironment environment;
@Autowired
private RestTemplate routerRestTemplate;
......
......@@ -4,7 +4,7 @@ server.port=1100
# Eureka config
eureka.instance.metadataMap.version=1.0
# Consul config
# Consul config(多个值用“,”分隔,例如version=1.0,value=abc)
spring.cloud.consul.discovery.tags=version=1.0
# Zookeeper config
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment