SpringCloud自定义负载均衡策略--LoadBalancer

本文介绍了在SpringCloud中自定义负载均衡策略的方法,包括使用IRule接口和LoadBalancer实现。通过调整配置和编写自定义策略,实现了轮询、随机等不同访问方式,并给出了代码示例和注意事项,适用于不同版本的SpringCloud。
摘要由CSDN通过智能技术生成

使用spring-cloud-starter-netflix-eureka-client依赖实现

负载均衡策略


最近在学习SpringCloud负载均衡的时候遇到了一点麻烦,网上的视频、博客基本都是使用spring-cloud-starter-netflix-ribbon这个依赖实现的(但springcloud在2020.0.0之后,移除掉了netflix-ribbon 使用eureka-client中的loadbalancer,使用自定义负载均衡不使用IRule接口,所以就遇到了很多问题),但这里也会复盘一下传统的实现!之后再讲新方法的实现,当然,也可以直接跳到二、使用LoadBalancer实现直接阅读新方法的使用


注意这里需要电脑上已经跑起了注册中心、服务提供者,能有多个最好:

image-20220514162438532

像这种主机上跑多个服务的就要在修改电脑的host文件了,也很简单,就是做一个简单地映射:

image-20220514163917560

启动注册中心与需求提供者,浏览器访问:http://eureka7001.com:7001/

image-20220514162733591

可以看到三个需求提供者已经注册进去了,实例名称都是一样的,关联的其他集群也都配置正常!

此时启动80端口,访问http://localhost/consumer/list,可以看到查出了结果:

image-20220514163117327

这里就可以自定义负载均衡的策略了,让不同情况、不同时间下访问服务端使用不同的需求提供者,多访问几次后时这种效果,默认的是轮询访问:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NZE7JArY-1659198163260)(https://s2.loli.net/2022/05/14/uzmJtWcIjL4yOPx.png)]

下面就来介绍如何使用及自定义负载均衡策略

以下都只介绍80接口的客户端的那一个模块中的自定义负载均衡模块的实现

一、使用IRule接口实现

1.导入Maven依赖

<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-ribbon</artifactId>
     <version>1.4.6.RELEASE</version>
</dependency>
<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-eureka</artifactId>
     <version>1.4.6.RELEASE</version>
</dependency>

2.yml配置

server:
  port: 80

# Eureka配置
eureka:
  client:
    register-with-eureka: false #不向eureka中注册自己,默认为true,false表示不注册(由提供者去注册)
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
    fetch-registry: true    #表示是否从Eureka Server获取注册的服务信息,默认为true,false表示不获取

3.使用springcloud配置的负载均衡算法

默认的配置一共有7种,如果我们不指定,那默认的就是轮询算法,就是需求提供者轮个上

image-20220514165553623

比如我们可以直接在任意的配置类中引入以下代码使随机访问需求提供者生效均衡策略生效:

@Bean
public IRule myRule(){
    return new RandomRule();
}

此时在多次访问http://localhost/consumer/list时就能看到每次访问到的数据都是随机出现的,说明这种策略已经生效了

当我们要自定义呢

4.自定义负载均衡算法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值