IT评测·应用市场-qidao123.com技术社区

标题: Spring Cloud LoadBalancer负载均衡+算法切换 [打印本页]

作者: 铁佛    时间: 2025-4-10 01:49
标题: Spring Cloud LoadBalancer负载均衡+算法切换
先容


Spring Cloud LoadBalancer 是 Spring Cloud 提供的客户端负载均衡办理方案,提供更现代化的 API 和更好的 Spring 生态体系集成。它支持微服务架构中服务调用的负载均衡,适用于分布式体系中的流量分发和故障转移。
焦点功能


客户端负载均衡

多种负载均衡策略

服务发现集成

相应式支持

高可用与容错

配置机动性

负载均衡


启动两个支付服务

分别启动两个支付服务,端口8001和8002。

订单模块引入依赖

  1. <!-- SpringCloud loadbalancer -->
  2. <dependency>
  3.         <groupId>org.springframework.cloud</groupId>
  4.         <artifactId>spring-cloud-starter-loadbalancer</artifactId>
  5. </dependency>
复制代码
@LoadBalanced 注解

给 RestTemplate 标注 @LoadBalanced 注解,在客户端实现负载均衡功能。
  1. @Configuration
  2. public class RestTemplateConfig {
  3.     @Bean
  4.     @LoadBalanced
  5.     public RestTemplate restTemplate(){
  6.         return new RestTemplate();
  7.     }
  8. }
复制代码
启动订单服务

启动订单服务,端口9001。
  1. @GetMapping("/order/pay/getInfoByConsul")
  2. public String getInfoByConsul() {
  3.     return restTemplate.getForObject(payment_url + "/pay/getInfoByConsul", String.class);
  4. }
复制代码

测试结果

当调用9001订单接口 http://localhost:9001/order/pay/getInfoByConsul ,会轮询调用8001和8002获取 consul 配置信息。
负载均衡算法切换


负载均衡算法默认有两种:

算法切换
从默认的轮询,切换为随机算法。
  1. @Configuration
  2. // value中的服务名大小写必须和consul服务名一样
  3. @LoadBalancerClient(value = "cloud-payment-service", configuration = RestTemplateConfig.class)
  4. public class RestTemplateConfig {
  5.    
  6.     @Bean
  7.     @LoadBalanced  // 赋予RestTemplate负载均衡的能力
  8.     public RestTemplate restTemplate(){
  9.         return new RestTemplate();
  10.     }
  11.     @Bean
  12.     ReactorLoadBalancer<ServiceInstance> randomLoadBalancer(Environment environment,
  13.                                                             LoadBalancerClientFactory loadBalancerClientFactory) {
  14.         String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
  15.         return new RandomLoadBalancer(loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name);
  16.     }
  17. }
复制代码
总结


以上主要先容了 Spring Cloud LoadBalancer 负载均衡、算法切换的相关知识,想了解更多 Spring Cloud LoadBalancer 知识的小伙伴请参考 Spring Cloud LoadBalancer 官网 举行学习,学习更多 Spring Cloud 实战实用本领的小伙伴,请关注后期发布的文章,认真看完一定能让你有所劳绩。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4