From a8ea00657b3d92bdc0c2ce19fc79bbcf8b4a3b91 Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Thu, 10 Dec 2020 15:53:41 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloudutil/ribbon/RibbonConfiguration.java | 6 ++++ .../cloudutil/ribbon/WpsBalanceRule.java | 28 +++++++++++++++++++ game/src/main/resources/application.yml | 4 +-- .../java/com/ccsens/tall/TallApplication.java | 3 ++ 4 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 cloudutil/src/main/java/com/ccsens/cloudutil/ribbon/WpsBalanceRule.java diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/ribbon/RibbonConfiguration.java b/cloudutil/src/main/java/com/ccsens/cloudutil/ribbon/RibbonConfiguration.java index 441982df..55cf1d2c 100644 --- a/cloudutil/src/main/java/com/ccsens/cloudutil/ribbon/RibbonConfiguration.java +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/ribbon/RibbonConfiguration.java @@ -3,6 +3,8 @@ package com.ccsens.cloudutil.ribbon; import com.netflix.loadbalancer.IRule; import com.netflix.loadbalancer.RoundRobinRule; import com.netflix.loadbalancer.WeightedResponseTimeRule; +import org.springframework.cloud.netflix.ribbon.RibbonClient; +import org.springframework.cloud.netflix.ribbon.RibbonClients; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -12,6 +14,10 @@ import org.springframework.context.annotation.Configuration; * @create: 2019/11/26 12:04 */ @Configuration +//@RibbonClients(value = { +// @RibbonClient(name = "tall",configuration = WpsBalanceRule.class) +//},defaultConfiguration = RibbonConfiguration.class) +@RibbonClient(name = "tall",configuration= WpsBalanceRule.class) public class RibbonConfiguration { /**根据响应时间加权,响应时间越长,权重越小,被选中的可能性越低*/ // @Bean diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/ribbon/WpsBalanceRule.java b/cloudutil/src/main/java/com/ccsens/cloudutil/ribbon/WpsBalanceRule.java new file mode 100644 index 00000000..ce27f0ef --- /dev/null +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/ribbon/WpsBalanceRule.java @@ -0,0 +1,28 @@ +package com.ccsens.cloudutil.ribbon; + +import com.netflix.client.config.IClientConfig; +import com.netflix.loadbalancer.AbstractLoadBalancerRule; +import com.netflix.loadbalancer.ILoadBalancer; +import com.netflix.loadbalancer.Server; +import org.springframework.context.annotation.Primary; + +@Primary +public class WpsBalanceRule extends AbstractLoadBalancerRule { + + @Override + public void initWithNiwsConfig(IClientConfig clientConfig) { + + } + + @Override + public Server choose(Object key) { + return choose(getLoadBalancer(), key); + } + + private Server choose(ILoadBalancer loadBalancer, Object key) { + System.out.println(key); + return null; + } + + +} diff --git a/game/src/main/resources/application.yml b/game/src/main/resources/application.yml index 76317132..5c2cd5c4 100644 --- a/game/src/main/resources/application.yml +++ b/game/src/main/resources/application.yml @@ -1,4 +1,4 @@ spring: profiles: - active: prodsd - include: common, util-prod \ No newline at end of file + active: dev + include: common, util-dev \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/TallApplication.java b/tall/src/main/java/com/ccsens/tall/TallApplication.java index 4115321d..398c6320 100644 --- a/tall/src/main/java/com/ccsens/tall/TallApplication.java +++ b/tall/src/main/java/com/ccsens/tall/TallApplication.java @@ -1,5 +1,6 @@ package com.ccsens.tall; +import com.ccsens.cloudutil.ribbon.WpsBalanceRule; import com.ccsens.util.WebConstant; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.CommandLineRunner; @@ -7,6 +8,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; +import org.springframework.cloud.netflix.ribbon.RibbonClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.scheduling.annotation.EnableAsync; @@ -24,6 +26,7 @@ import java.io.File; @EnableCircuitBreaker @EnableFeignClients(basePackages = "com.ccsens.cloudutil.feign") @SpringBootApplication(scanBasePackages = "com.ccsens") + public class TallApplication implements CommandLineRunner { public static void main(String[] args) { File dir = new File(WebConstant.IMG_PATH_PREFIX_SHARE_QR);