package jnpf.config;
|
|
import jnpf.handler.ILoadBalancerHandler;
|
import jnpf.handler.MyLoadBalancer;
|
import org.springframework.cloud.client.ServiceInstance;
|
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.core.env.Environment;
|
|
import java.util.List;
|
/**
|
* 自定义负载均衡配置
|
*
|
* @author JNPF开发平台组
|
* @version V3.5.0
|
* @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com)
|
* @date 2024-01-10
|
*/
|
public class MyLoadBalancerConfig {
|
|
@Bean
|
public ReactorLoadBalancer<ServiceInstance> reactorServiceInstanceLoadBalancer(Environment environment,
|
LoadBalancerClientFactory loadBalancerClientFactory,
|
List<ILoadBalancerHandler> loadBalancers) {
|
String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
|
return new MyLoadBalancer(
|
loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name, loadBalancers);
|
}
|
|
}
|