Browse Source

负载均衡

recovery
zy_Java 5 years ago
parent
commit
a8ea00657b
  1. 6
      cloudutil/src/main/java/com/ccsens/cloudutil/ribbon/RibbonConfiguration.java
  2. 28
      cloudutil/src/main/java/com/ccsens/cloudutil/ribbon/WpsBalanceRule.java
  3. 4
      game/src/main/resources/application.yml
  4. 3
      tall/src/main/java/com/ccsens/tall/TallApplication.java

6
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

28
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;
}
}

4
game/src/main/resources/application.yml

@ -1,4 +1,4 @@
spring:
profiles:
active: prodsd
include: common, util-prod
active: dev
include: common, util-dev

3
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);

Loading…
Cancel
Save