From 840b35331b201f69f709a2f36d703f7e196c54b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=97=E5=B0=91?= <314226532@qq.com> Date: Thu, 10 Jan 2019 13:14:53 +0800 Subject: [PATCH] Code optimization for ans starter --- .../alibaba/cloud/example/SmsApplication.java | 63 +++++-------------- .../cloud/example/env/SmsApplication.java | 30 --------- .../migrate/MigrateRefreshEventListener.java | 18 +++--- .../migrate/ServerListInvocationHandler.java | 24 ++++--- .../alicloud/ans/ribbon/AnsServerList.java | 4 +- 5 files changed, 45 insertions(+), 94 deletions(-) delete mode 100644 spring-cloud-alibaba-examples/sms-example/src/main/java/org/springframework/cloud/alibaba/cloud/example/env/SmsApplication.java diff --git a/spring-cloud-alibaba-examples/sms-example/src/main/java/org/springframework/cloud/alibaba/cloud/example/SmsApplication.java b/spring-cloud-alibaba-examples/sms-example/src/main/java/org/springframework/cloud/alibaba/cloud/example/SmsApplication.java index 4a31106e..01294492 100644 --- a/spring-cloud-alibaba-examples/sms-example/src/main/java/org/springframework/cloud/alibaba/cloud/example/SmsApplication.java +++ b/spring-cloud-alibaba-examples/sms-example/src/main/java/org/springframework/cloud/alibaba/cloud/example/SmsApplication.java @@ -1,48 +1,15 @@ -//package org.springframework.cloud.alibaba.cloud.example; -// -//import org.springframework.alicloud.env.extension.ImportExtraConfig; -//import org.springframework.boot.SpringApplication; -//import org.springframework.boot.SpringApplicationRunListener; -//import org.springframework.boot.autoconfigure.SpringBootApplication; -//import org.springframework.context.ConfigurableApplicationContext; -//import org.springframework.core.env.ConfigurableEnvironment; -// -//@SpringBootApplication -//@ImportExtraConfig(name = "/Users/toava/sms.properties") -//public class SmsApplication { -// -// public static void main(String[] args) { -// -// SpringApplication.run(SmsApplication.class, args); -// } -// -// public class EvnExtra implements SpringApplicationRunListener { -// @Override -// public void starting() { -// -// } -// -// @Override -// public void environmentPrepared(ConfigurableEnvironment environment) { -// -// } -// -// @Override -// public void contextPrepared(ConfigurableApplicationContext context) { -// -// } -// -// @Override -// public void contextLoaded(ConfigurableApplicationContext context) { -// -// } -// -// @Override -// public void finished(ConfigurableApplicationContext context, -// Throwable exception) { -// String ak = context.getEnvironment() -// .getProperty("spring.cloud.alicloud.access-key"); -// System.err.println(ak); -// } -// } -//} \ No newline at end of file +package org.springframework.cloud.alibaba.cloud.example; + +import org.springframework.alicloud.env.extension.ImportExtraConfig; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +@ImportExtraConfig(name = "/Users/toava/sms.properties") +public class SmsApplication { + + public static void main(String[] args) { + + SpringApplication.run(SmsApplication.class, args); + } +} \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/sms-example/src/main/java/org/springframework/cloud/alibaba/cloud/example/env/SmsApplication.java b/spring-cloud-alibaba-examples/sms-example/src/main/java/org/springframework/cloud/alibaba/cloud/example/env/SmsApplication.java deleted file mode 100644 index 33ceeb3b..00000000 --- a/spring-cloud-alibaba-examples/sms-example/src/main/java/org/springframework/cloud/alibaba/cloud/example/env/SmsApplication.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.springframework.cloud.alibaba.cloud.example.env; - -import org.springframework.alicloud.env.extension.ImportExtraConfig; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -@SpringBootApplication -@ImportExtraConfig(name = "/Users/toava/sms.properties") -public class SmsApplication { - - public static void main(String[] args) { - - SpringApplication.run(SmsApplication.class, args); - } - - @RestController - public class EnvExtraController{ - - @Value("${spring.cloud.alicloud.access-key:deshao}") - private String ak; - - @GetMapping("/get-ak.do") - public String getAk(){ - return ak; - } - } -} \ No newline at end of file diff --git a/spring-cloud-alicloud-ans/src/main/java/org/springframework/cloud/alicloud/ans/migrate/MigrateRefreshEventListener.java b/spring-cloud-alicloud-ans/src/main/java/org/springframework/cloud/alicloud/ans/migrate/MigrateRefreshEventListener.java index 3ac48922..6012c714 100644 --- a/spring-cloud-alicloud-ans/src/main/java/org/springframework/cloud/alicloud/ans/migrate/MigrateRefreshEventListener.java +++ b/spring-cloud-alicloud-ans/src/main/java/org/springframework/cloud/alicloud/ans/migrate/MigrateRefreshEventListener.java @@ -1,6 +1,12 @@ package org.springframework.cloud.alicloud.ans.migrate; -import com.netflix.loadbalancer.ILoadBalancer; +import java.util.Iterator; +import java.util.Set; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +import javax.annotation.PostConstruct; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.cloud.context.named.NamedContextFactory; @@ -9,11 +15,7 @@ import org.springframework.context.ApplicationListener; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; -import javax.annotation.PostConstruct; -import java.util.Iterator; -import java.util.Set; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; +import com.netflix.loadbalancer.ILoadBalancer; /** * @author pbting @@ -22,6 +24,8 @@ import java.util.concurrent.TimeUnit; public class MigrateRefreshEventListener implements ApplicationListener { private final static Log log = LogFactory.getLog(MigrateRefreshEventListener.class); + private final static int CHECK_INTERVAL = 1; + private final static String MIGRATE_SWITCH = "sca.migrate.ans.switch"; private volatile String lastScaMigrateAnsSwitchValue = "true"; @@ -51,7 +55,7 @@ public class MigrateRefreshEventListener implements ApplicationListener ansServerList = SERVER_LIST_CONCURRENT_MAP.get(serviceId) + .getInitialListOfServers(); + + if (!ansServerList.isEmpty()) { + return ansServerList.get(0); + } + return server; } diff --git a/spring-cloud-alicloud-ans/src/main/java/org/springframework/cloud/alicloud/ans/ribbon/AnsServerList.java b/spring-cloud-alicloud-ans/src/main/java/org/springframework/cloud/alicloud/ans/ribbon/AnsServerList.java index 99617ef0..c44d6241 100644 --- a/spring-cloud-alicloud-ans/src/main/java/org/springframework/cloud/alicloud/ans/ribbon/AnsServerList.java +++ b/spring-cloud-alicloud-ans/src/main/java/org/springframework/cloud/alicloud/ans/ribbon/AnsServerList.java @@ -30,6 +30,8 @@ import java.util.List; */ public class AnsServerList extends AbstractServerList { + private final static int CONNECT_TIME_OUT = 3; + private String dom; public AnsServerList(String dom) { @@ -62,7 +64,7 @@ public class AnsServerList extends AbstractServerList { for (Host host : hosts) { if (host.isValid()) { AnsServer ansServer = hostToServer(host); - if (ansServer.isAlive(3)) { + if (ansServer.isAlive(CONNECT_TIME_OUT)) { result.add(ansServer); } }