Commit 7fec4882 by Nepxion

重构类结构

parent 1a950681
......@@ -23,7 +23,6 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.cloud.client.serviceregistry.Registration;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -49,9 +48,6 @@ public class RouterEndpoint {
@Autowired
private DiscoveryClient discoveryClient;
@Autowired
private Registration registration;
@RequestMapping(path = "/router/services", method = RequestMethod.GET)
@ApiOperation(value = "获取服务注册中心的服务列表", notes = "", response = List.class, httpMethod = "GET")
public List<String> services() {
......@@ -99,8 +95,8 @@ public class RouterEndpoint {
public RouterEntity getRouterEntity() {
String serviceId = pluginAdapter.getServiceId();
String version = pluginAdapter.getVersion();
String host = pluginAdapter.getHost(registration);
int port = pluginAdapter.getPort(registration);
String host = pluginAdapter.getHost();
int port = pluginAdapter.getPort();
RouterEntity routerEntity = new RouterEntity();
routerEntity.setServiceId(serviceId);
......
......@@ -11,74 +11,14 @@ package com.nepxion.discovery.plugin.framework.adapter;
import java.util.Map;
import javax.annotation.PostConstruct;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.cloud.client.serviceregistry.Registration;
import org.springframework.cloud.consul.discovery.ConsulServer;
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.netflix.loadbalancer.Server;
public class ConsulAdapter extends AbstractPluginAdapter {
private String version;
@PostConstruct
private void initialize() {
String value = pluginContextAware.getEnvironment().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 getHost(Registration registration) {
/*if (registration instanceof ConsulRegistration) {
ConsulRegistration consulRegistration = (ConsulRegistration) registration;
return consulRegistration.getService().getAddress();
}
throw new PluginException("Registration instance isn't the type of ConsulRegistration");*/
return registration.getHost();
}
@Override
public int getPort(Registration registration) {
/*if (registration instanceof ConsulRegistration) {
ConsulRegistration consulRegistration = (ConsulRegistration) registration;
return consulRegistration.getService().getPort();
}
throw new PluginException("Registration instance isn't the type of ConsulRegistration");*/
return registration.getPort();
}
@Override
public Map<String, String> getMetaData(Server server) {
public Map<String, String> getServerMetaData(Server server) {
if (server instanceof ConsulServer) {
ConsulServer consulServer = (ConsulServer) server;
......@@ -87,14 +27,4 @@ public class ConsulAdapter extends AbstractPluginAdapter {
throw new PluginException("Server instance isn't the type of ConsulServer");
}
@Override
public String getServerVersion(Server server) {
return getMetaData(server).get(PluginConstant.VERSION);
}
@Override
public String getLocalVersion() {
return version;
}
}
\ No newline at end of file
......@@ -10,7 +10,5 @@ package com.nepxion.discovery.plugin.framework.constant;
*/
public class ConsulConstant {
public static final String METADATA_VERSION = "spring.cloud.consul.discovery.tags";
public static final String DISCOVERY_PLUGIN = "Consul Plugin";
}
\ No newline at end of file
......@@ -11,47 +11,13 @@ package com.nepxion.discovery.plugin.framework.adapter;
import java.util.Map;
import org.springframework.cloud.client.serviceregistry.Registration;
import com.nepxion.discovery.plugin.framework.constant.EurekaConstant;
import com.nepxion.discovery.plugin.framework.constant.PluginConstant;
import com.nepxion.discovery.plugin.framework.exception.PluginException;
import com.netflix.loadbalancer.Server;
import com.netflix.niws.loadbalancer.DiscoveryEnabledServer;
public class EurekaAdapter extends AbstractPluginAdapter {
@Override
public String getHost(Registration registration) {
/*if (registration instanceof EurekaRegistration) {
EurekaRegistration eurekaRegistration = (EurekaRegistration) registration;
return eurekaRegistration.getInstanceConfig().getIpAddress();
}
throw new PluginException("Registration instance isn't the type of EurekaRegistration");*/
return registration.getHost();
}
@Override
public int getPort(Registration registration) {
/*if (registration instanceof EurekaRegistration) {
EurekaRegistration eurekaRegistration = (EurekaRegistration) registration;
if (eurekaRegistration.getInstanceConfig().getSecurePortEnabled()) {
return eurekaRegistration.getInstanceConfig().getSecurePort();
}
return eurekaRegistration.getInstanceConfig().getNonSecurePort();
}
throw new PluginException("Registration instance isn't the type of EurekaRegistration");*/
return registration.getPort();
}
@Override
public Map<String, String> getMetaData(Server server) {
public Map<String, String> getServerMetaData(Server server) {
if (server instanceof DiscoveryEnabledServer) {
DiscoveryEnabledServer discoveryEnabledServer = (DiscoveryEnabledServer) server;
......@@ -60,14 +26,4 @@ public class EurekaAdapter extends AbstractPluginAdapter {
throw new PluginException("Server instance isn't the type of DiscoveryEnabledServer");
}
@Override
public String getServerVersion(Server server) {
return getMetaData(server).get(PluginConstant.VERSION);
}
@Override
public String getLocalVersion() {
return pluginContextAware.getEnvironment().getProperty(EurekaConstant.METADATA_VERSION);
}
}
\ No newline at end of file
......@@ -10,7 +10,5 @@ package com.nepxion.discovery.plugin.framework.constant;
*/
public class EurekaConstant {
public static final String METADATA_VERSION = "eureka.instance.metadataMap.version";
public static final String DISCOVERY_PLUGIN = "Eureka Plugin";
}
\ No newline at end of file
......@@ -11,43 +11,14 @@ package com.nepxion.discovery.plugin.framework.adapter;
import java.util.Map;
import org.springframework.cloud.client.serviceregistry.Registration;
import org.springframework.cloud.zookeeper.discovery.ZookeeperServer;
import com.nepxion.discovery.plugin.framework.constant.PluginConstant;
import com.nepxion.discovery.plugin.framework.constant.ZookeeperConstant;
import com.nepxion.discovery.plugin.framework.exception.PluginException;
import com.netflix.loadbalancer.Server;
public class ZookeeperAdapter extends AbstractPluginAdapter {
@Override
public String getHost(Registration registration) {
/*if (registration instanceof ZookeeperRegistration) {
ZookeeperRegistration zookeeperRegistration = (ZookeeperRegistration) registration;
return zookeeperRegistration.getServiceInstance().getAddress();
}
throw new PluginException("Registration instance isn't the type of ZookeeperRegistration");*/
return registration.getHost();
}
@Override
public int getPort(Registration registration) {
/*if (registration instanceof ZookeeperRegistration) {
ZookeeperRegistration zookeeperRegistration = (ZookeeperRegistration) registration;
return zookeeperRegistration.getServiceInstance().getPort();
}
throw new PluginException("Registration instance isn't the type of ZookeeperRegistration");*/
return registration.getPort();
}
@Override
public Map<String, String> getMetaData(Server server) {
public Map<String, String> getServerMetaData(Server server) {
if (server instanceof ZookeeperServer) {
ZookeeperServer zookeeperServer = (ZookeeperServer) server;
......@@ -56,14 +27,4 @@ public class ZookeeperAdapter extends AbstractPluginAdapter {
throw new PluginException("Server instance isn't the type of ZookeeperServer");
}
@Override
public String getServerVersion(Server server) {
return getMetaData(server).get(PluginConstant.VERSION);
}
@Override
public String getLocalVersion() {
return pluginContextAware.getEnvironment().getProperty(ZookeeperConstant.METADATA_VERSION);
}
}
\ No newline at end of file
......@@ -10,7 +10,5 @@ package com.nepxion.discovery.plugin.framework.constant;
*/
public class ZookeeperConstant {
public static final String METADATA_VERSION = "spring.cloud.zookeeper.discovery.metadata.version";
public static final String DISCOVERY_PLUGIN = "Zookeeper Plugin";
}
\ No newline at end of file
......@@ -9,17 +9,24 @@ package com.nepxion.discovery.plugin.framework.adapter;
* @version 1.0
*/
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.serviceregistry.Registration;
import com.nepxion.discovery.plugin.framework.cache.PluginCache;
import com.nepxion.discovery.plugin.framework.cache.RuleCache;
import com.nepxion.discovery.plugin.framework.constant.PluginConstant;
import com.nepxion.discovery.plugin.framework.context.PluginContextAware;
import com.nepxion.discovery.plugin.framework.entity.RuleEntity;
import com.netflix.loadbalancer.Server;
public abstract class AbstractPluginAdapter implements PluginAdapter {
@Autowired
private Registration registration;
@Autowired
protected PluginContextAware pluginContextAware;
@Autowired
......@@ -30,7 +37,22 @@ public abstract class AbstractPluginAdapter implements PluginAdapter {
@Override
public String getServiceId() {
return pluginContextAware.getEnvironment().getProperty(PluginConstant.SPRING_APPLICATION_NAME);
return registration.getServiceId();
}
@Override
public String getHost() {
return registration.getHost();
}
@Override
public int getPort() {
return registration.getPort();
}
@Override
public Map<String, String> getMetaData() {
return registration.getMetadata();
}
@Override
......@@ -44,6 +66,11 @@ public abstract class AbstractPluginAdapter implements PluginAdapter {
}
@Override
public String getLocalVersion() {
return getMetaData().get(PluginConstant.VERSION);
}
@Override
public String getDynamicVersion() {
return pluginCache.get(PluginConstant.DYNAMIC_VERSION);
}
......@@ -92,4 +119,9 @@ public abstract class AbstractPluginAdapter implements PluginAdapter {
public void clearDynamicRule() {
ruleCache.clear(PluginConstant.DYNAMIC_RULE);
}
@Override
public String getServerVersion(Server server) {
return getServerMetaData(server).get(PluginConstant.VERSION);
}
}
\ No newline at end of file
......@@ -11,21 +11,17 @@ package com.nepxion.discovery.plugin.framework.adapter;
import java.util.Map;
import org.springframework.cloud.client.serviceregistry.Registration;
import com.nepxion.discovery.plugin.framework.entity.RuleEntity;
import com.netflix.loadbalancer.Server;
public interface PluginAdapter {
String getServiceId();
String getHost(Registration registration);
int getPort(Registration registration);
String getHost();
Map<String, String> getMetaData(Server server);
int getPort();
String getServerVersion(Server server);
Map<String, String> getMetaData();
String getVersion();
......@@ -48,4 +44,8 @@ public interface PluginAdapter {
void setDynamicRule(RuleEntity ruleEntity);
void clearDynamicRule();
Map<String, String> getServerMetaData(Server server);
String getServerVersion(Server server);
}
\ No newline at end of file
......@@ -29,8 +29,8 @@ public class CountFilterRegisterListener extends AbstractRegisterListener {
@Override
public void onRegister(Registration registration) {
String serviceId = registration.getServiceId();
String host = pluginAdapter.getHost(registration);
int port = pluginAdapter.getPort(registration);
String host = registration.getHost();
int port = registration.getPort();
applyCountFilter(serviceId, host, port);
}
......
......@@ -27,8 +27,8 @@ public class HostFilterRegisterListener extends AbstractRegisterListener {
@Override
public void onRegister(Registration registration) {
String serviceId = registration.getServiceId();
String host = pluginAdapter.getHost(registration);
int port = pluginAdapter.getPort(registration);
String host = registration.getHost();
int port = registration.getPort();
applyHostFilter(serviceId, host, port);
}
......
......@@ -10,21 +10,18 @@ package com.nepxion.discovery.plugin.example.feign;
*/
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.ConfigurableEnvironment;
import com.nepxion.discovery.plugin.framework.adapter.PluginAdapter;
import com.nepxion.discovery.plugin.framework.constant.PluginConstant;
public class AbstractFeignImpl {
@Autowired
protected ConfigurableEnvironment environment;
@Autowired
private PluginAdapter pluginAdapter;
public String doInvoke(String value) {
String serviceId = environment.getProperty(PluginConstant.SPRING_APPLICATION_NAME);
String serviceId = pluginAdapter.getServiceId();
String version = pluginAdapter.getVersion();
// String host = pluginAdapter.getHost();
// int port = pluginAdapter.getPort();
return value + " -> " + serviceId + "[" + version + "]";
}
......
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