java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringCloud OpenFeign的负载均衡算法

SpringCloud修改OpenFeign的负载均衡算法的实现步骤

作者:lcx_defender

本文主要介绍了SpringCloud修改OpenFeign的负载均衡算法的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Spring-Cloud-Loadbalancer模块中有一个自动配置类,其中定义了默认的负载均衡器:

这个Bean上添加了@ConditionalOnMissingBean注解,也就是说如果我们自定义了这个类型的bean,则负载均衡的策略就会被改变。没有自定义时,默认采用轮询算法进行负载均衡。

在微服务中添加一个配置类

示例代码如下:

import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.cloud.nacos.loadbalancer.NacosLoadBalancer;
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;
public class OpenFeignConfig {
    @Bean
    public ReactorLoadBalancer<ServiceInstance> reactorServiceInstanceLoadBalancer(
            Environment environment, NacosDiscoveryProperties properties,
            LoadBalancerClientFactory loadBalancerClientFactory) {
        String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
        return new NacosLoadBalancer(
                loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name, properties);
    }
}

配置生效

这个配置类不要加 @Configuration 注解,若配置类加 @Configuration 并被扫描,会强制全局生效,所有 Feign 客户端只能用这一种策略,无法为不同服务定制
@LoadBalancerClients 指定配置,既能设为全局默认(对所有远程服务生效),也能针对特定服务单独配置不同策略
好处是灵活,比如调用服务 A 用 Nacos 负载均衡,调用服务 B 用随机策略,通过这种方式能精准控制,避免策略冲突,适应不同服务的调用需求。

我们要在启动类上通过注解来声明这个配置。
有两种做法:

@LoadBalancerClients(defaultConfiguration = OpenFeignConfig.class)
@LoadBalancerClients({
        @LoadBalancerClient(value = "item-service", configuration = OpenFeignConfig.class)
})

当前该负载均衡算法只会在当前微服务调用item-service时生效

到此这篇关于SpringCloud修改OpenFeign的负载均衡算法的实现步骤的文章就介绍到这了,更多相关SpringCloud OpenFeign的负载均衡算法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文