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