Commit d9c8d814 by Nepxion

修复在Consul路由的Bug

parent e5170b12
...@@ -9,17 +9,49 @@ package com.nepxion.discovery.plugin.framework.adapter; ...@@ -9,17 +9,49 @@ package com.nepxion.discovery.plugin.framework.adapter;
* @version 1.0 * @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.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.serviceregistry.Registration; import org.springframework.cloud.client.serviceregistry.Registration;
import org.springframework.cloud.consul.serviceregistry.ConsulRegistration; import org.springframework.cloud.consul.serviceregistry.ConsulRegistration;
import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.ConfigurableEnvironment;
import com.nepxion.discovery.plugin.framework.constant.ConsulConstant; import com.nepxion.discovery.plugin.framework.constant.ConsulConstant;
import com.nepxion.discovery.plugin.framework.constant.PluginConstant;
import com.nepxion.discovery.plugin.framework.exception.PluginException; import com.nepxion.discovery.plugin.framework.exception.PluginException;
public class ConsulAdapter implements PluginAdapter { public class ConsulAdapter implements PluginAdapter {
@Autowired @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 @Override
public String getIpAddress(Registration registration) { public String getIpAddress(Registration registration) {
...@@ -34,6 +66,6 @@ public class ConsulAdapter implements PluginAdapter { ...@@ -34,6 +66,6 @@ public class ConsulAdapter implements PluginAdapter {
@Override @Override
public String getVersion() { 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; ...@@ -10,5 +10,5 @@ package com.nepxion.discovery.plugin.framework.constant;
*/ */
public class ConsulConstant { 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; ...@@ -19,7 +19,7 @@ import com.nepxion.discovery.plugin.framework.exception.PluginException;
public class EurekaAdapter implements PluginAdapter { public class EurekaAdapter implements PluginAdapter {
@Autowired @Autowired
protected ConfigurableEnvironment environment; private ConfigurableEnvironment environment;
@Override @Override
public String getIpAddress(Registration registration) { public String getIpAddress(Registration registration) {
......
...@@ -19,7 +19,7 @@ import com.nepxion.discovery.plugin.framework.exception.PluginException; ...@@ -19,7 +19,7 @@ import com.nepxion.discovery.plugin.framework.exception.PluginException;
public class ZookeeperAdapter implements PluginAdapter { public class ZookeeperAdapter implements PluginAdapter {
@Autowired @Autowired
protected ConfigurableEnvironment environment; private ConfigurableEnvironment environment;
@Override @Override
public String getIpAddress(Registration registration) { public String getIpAddress(Registration registration) {
......
...@@ -44,7 +44,7 @@ public class RouterController { ...@@ -44,7 +44,7 @@ public class RouterController {
private PluginAdapter pluginAdapter; private PluginAdapter pluginAdapter;
@Autowired @Autowired
protected ConfigurableEnvironment environment; private ConfigurableEnvironment environment;
@Autowired @Autowired
private RestTemplate routerRestTemplate; private RestTemplate routerRestTemplate;
......
...@@ -4,7 +4,7 @@ server.port=1100 ...@@ -4,7 +4,7 @@ server.port=1100
# Eureka config # Eureka config
eureka.instance.metadataMap.version=1.0 eureka.instance.metadataMap.version=1.0
# Consul config # Consul config(多个值用“,”分隔,例如version=1.0,value=abc)
spring.cloud.consul.discovery.tags=version=1.0 spring.cloud.consul.discovery.tags=version=1.0
# Zookeeper config # 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