12345678910111213141516171819202122232425262728293031323334 |
- package com.sf.eurekaclientdemo1.config;
- import com.sf.eurekaclientdemo1.mylb.ItxsRandomLoadBalancerClient;
- import org.springframework.beans.factory.ObjectProvider;
- 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.ReactorServiceInstanceLoadBalancer;
- 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;
- @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);
- }
- //自定义的负载均衡器
- // @Bean
- // public ReactorServiceInstanceLoadBalancer custonRandomLoadBalancer(
- // ObjectProvider<ServiceInstanceListSupplier> serviceInstanceListSupplierProvider){
- // return new ItxsRandomLoadBalancerClient(serviceInstanceListSupplierProvider);
- // }
- }
|