电商商城定制开发springcloud_2021.0.3学习笔记(二):LoadBalancer自定义负载均衡策略配置

        电商商城定制开发本文介绍如何在springcloud电商商城定制开发中通过自定义配置,实现修改LoadBalancer的默认配置(默认策略为轮询)。

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

本例使用的springcloud版本为:2021.0.3,springboot版本为:2.6.8

1、默认负载均衡策略

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

  • RandomLoadBalancer - 随机分配策略
  • (默认) RoundRobinLoadBalancer - 轮询分配策略

2、自定义负载均衡策略

2.1 创建配置类

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

  1. import org.springframework.cloud.client.ServiceInstance;
  2. import org.springframework.cloud.loadbalancer.core.RandomLoadBalancer;
  3. import org.springframework.cloud.loadbalancer.core.ReactorLoadBalancer;
  4. import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
  5. import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
  6. import org.springframework.context.annotation.Bean;
  7. import org.springframework.core.env.Environment;
  8. /**
  9. * @Description: 负载均衡配置
  10. * @Author: knight
  11. * @Date: Created in 2022/7/19 10:30
  12. */
  13. public class LoadBalancerConfig {
  14. @Bean
  15. public ReactorLoadBalancer<ServiceInstance> randomLoadBalancer(Environment environment, LoadBalancerClientFactory loadBalancerClientFactory){
  16. String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
  17. return new RandomLoadBalancer(loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name);
  18. }
  19. }

2.2 修改主启动类        

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

  1. @EnableEurekaClient
  2. @SpringBootApplication
  3. @LoadBalancerClient(name = "PAYMENT-SERVER", configuration = LoadBalancerConfig.class)
  4. public class MainApplication {
  5. public static void main(String[] args) {
  6. SpringApplication.run(MainApplication .class, args);
  7. }
  8. }

本示例中用到的源码,可以访问获取。

2.3 测试

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


网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发