2 changed files with 58 additions and 16 deletions
@ -0,0 +1,32 @@ |
|||||
|
package com.zdxt.gateway.webserver.config; |
||||
|
|
||||
|
import org.springframework.cloud.client.ServiceInstance; |
||||
|
import org.springframework.cloud.loadbalancer.core.RandomLoadBalancer; |
||||
|
import org.springframework.cloud.loadbalancer.core.ReactorLoadBalancer; |
||||
|
import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier; |
||||
|
import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; |
||||
|
import org.springframework.context.annotation.Bean; |
||||
|
import org.springframework.context.annotation.Configuration; |
||||
|
import org.springframework.core.env.Environment; |
||||
|
|
||||
|
/** |
||||
|
* 负载均衡配置 - 随机策略 |
||||
|
* <p> |
||||
|
* 替代默认的 RoundRobin 轮询策略,在存活实例间随机分配请求。 |
||||
|
* |
||||
|
* @author zdxt |
||||
|
*/ |
||||
|
@Configuration |
||||
|
public class LoadBalancerConfig { |
||||
|
|
||||
|
@Bean |
||||
|
public ReactorLoadBalancer<ServiceInstance> randomLoadBalancer( |
||||
|
Environment environment, |
||||
|
LoadBalancerClientFactory loadBalancerClientFactory) { |
||||
|
String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME); |
||||
|
return new RandomLoadBalancer( |
||||
|
loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), |
||||
|
name |
||||
|
); |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue