You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
1.2 KiB
23 lines
1.2 KiB
package cc.bnblogs.consumer.config; |
|
|
|
import com.alibaba.cloud.nacos.NacosDiscoveryProperties; |
|
import com.alibaba.cloud.nacos.loadbalancer.NacosLoadBalancer; |
|
import org.springframework.beans.factory.annotation.Autowired; |
|
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 javax.annotation.Resource; |
|
|
|
public class WeightLoadBalancerRuleConfig { |
|
@Resource |
|
private NacosDiscoveryProperties nacosDiscoveryProperties; |
|
@Bean |
|
public ReactorLoadBalancer<ServiceInstance> randomLoadBalancer(Environment environment, |
|
LoadBalancerClientFactory loadBalancerClientFactory) { |
|
String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME); |
|
return new NacosLoadBalancer(loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name,nacosDiscoveryProperties); |
|
} |
|
} |