写一个CustomerLoadBalancerConfiguration类并将以下代码粘入
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.core.env.Environment;
public class CustomerLoadBalancerConfiguration {
@Bean
ReactorLoadBalancer<ServiceInstance> randomLoadBalancer(Environment environment,
LoadBalancerClientFactory loadBalancerClientFactory) {
String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
return new RandomLoadBalancer(loadBalancerClientFactory
.getLazyProvider(name, ServiceInstanceListSupplier.class),
name);
}
}
并在主启动类上加入以下注解
@LoadBalancerClient(name = "CLOUD-PAYMENT-SERVICE",configuration = CustomerLoadBalancerConfiguration.class)
之后去掉pom文件中的ribbon就可以了
参考:没有IRule接口咋办啊 加Ribbon依赖会报错的 eureka3.0以上版本包括了Ribbon 但没有Ribbon依赖就没有IRule接口啊_大数据-优快云问答
本文介绍了如何在SpringCloud应用中使用`CustomerLoadBalancerConfiguration`类,通过`ReactorLoadBalancer`实现服务实例负载均衡,避免了在Eureka3.0及以上版本中添加Ribbon依赖导致的IRule接口问题。只需移除pom文件中的Ribbon依赖并正确配置即可。
1854

被折叠的 条评论
为什么被折叠?



