修改Ribbon默认负载规则rule
发布日期:2021-06-30 21:31:37 浏览次数:2 分类:技术文章

本文共 1475 字,大约阅读时间需要 4 分钟。

场景

在spring cloud gateway中,新增了负载均衡策略(修改同理),大多情况是使用“service.ribbon.NFLoadBalancerRuleClassName=IRule.class”进行配置,这种方式只针对单个服务,因为我们服务比较对,单个服务配置太过繁琐,所以想通过修改Ribbon的默认配置达到目的。

方案

通过查找文档:

发现@RibbonClients标签,是对Ribbon的默认配置修改。

实现如下:

  • 新建默认配置,设置ribbonRule方法设置默认负载规则,还可以使用ribbonPing、ribbonServerList、serverListFilter方法配置其他默认参数,这里就不说了,请自己探索。
    import com.lizz.gateway.loadbalancer.VersionRoundRobinRule;import com.netflix.client.config.IClientConfig;import com.netflix.loadbalancer.IRule;import org.springframework.beans.factory.annotation.Configurable;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * @description: 调整ribbon默认配置 * 原始默认org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration * @author: lizz */@Configuration(proxyBeanMethods = false)public class RibbonConfiguration {    @Bean    public IRule ribbonRule() {        //自定义负载规则        return new VersionRoundRobinRule();    }}

     

  • 使用@RibbonClients启用Ribbon默认配置
    import com.liubike.gateway.config.RibbonConfiguration;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.ribbon.RibbonClients;/** * 程序启动类 * * @author: lizz */@SpringBootApplication@RibbonClients(defaultConfiguration = RibbonConfiguration.class)public class GatewayApplication {    public static void main(String[] args) {        SpringApplication.run(GatewayApplication.class, args);    }}
     

转载地址:https://lizz6.blog.csdn.net/article/details/110199142 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:gateway、webflux、reactor-netty请求日志输出
下一篇:不同环境压测并发负载结果不一致问题

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月20日 00时58分49秒