栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springcloud学习笔记:LoadBalancer自定义负载均衡策略配置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springcloud学习笔记:LoadBalancer自定义负载均衡策略配置

        本文介绍如何在springcloud中通过自定义配置,实现修改LoadBalancer的默认负载均衡策略配置(默认策略为轮询)。

        从springcloud2020版本开始默认移除了对Ribbon的依赖,官方默认推荐使用Spring Cloud Loadbalancer正式替换Ribbon,并成为了Spring Cloud负载均衡器的唯一实现。所以以后主要学习Loadbalancer的相关配置和使用。

1、默认负载均衡策略

        Loadbalancer默认实现了如下两种负载均衡策略:

  • RandomLoadBalancer - 随机分配策略
  • (默认) RoundRobinLoadBalancer - 轮询分配策略
2、自定义负载均衡策略 2.1 创建配置类

        如果想要修改默认的负载均衡策略,比如采用随机分配策略。则可以如下创建配置类,不需要添加@Configuration注解。

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 LoadBalancerConfig {
    @Bean
    public ReactorLoadBalancer randomLoadBalancer(Environment environment, LoadBalancerClientFactory loadBalancerClientFactory){
        String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
        return new RandomLoadBalancer(loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name);
    }
}
2.2 修改主启动类        

        在主启动类上添加注解@LoadBalancerClient,指定哪个服务(本示例为PAYMENT-SERVER)使用新的负载均衡策略:

@EnableEurekaClient
@SpringBootApplication
@LoadBalancerClient(name = "PAYMENT-SERVER", configuration = LoadBalancerConfig.class)
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication .class, args);
    }
}
 2.3 测试

        启动客户端服务,然后访问服务名称为PAYMENT-SERVER的服务接口,验证随机访问策略是否生效。


新时代农民工 (QQ:277718357) 点击关注下方↓微信公众号:程序进阶之路,了解更多技术知识。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020725.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号