当前位置: 首页 > news >正文

Ribbon负载均衡

Ribbon与Eureka的关系

Eureka的服务拉取与负载均衡都是由Ribbon来实现的。

当服务发送http://userservice/user/xxxhtt://userservice/user/xxx请求时,是无法到达userservice服务的,会通过Ribbon会把这个请求拦截下来,通过Eureka-server转换为真实的ip与端口。

如果服务名对应多个服务,Eureka-server会把所有的ip与端口返回给Ribbon,Ribbon来做负载均衡。

@LoadBalanced注解表示以后的请求由Ribbon拦截和处理。

 

负载均衡策略

Ribbon的负载均衡策略规则是一个叫做IRule的接口来定义的,每一个子接口都是一种规则。

下面是IRule接口的继承关系图:

 

调整负载均衡的方案

Ribbon的默认负载均衡策略是轮询(Round Robin)调度。

方法一,定义一个新的IRule:

这种方法,以后不管调用哪个微服务都是指定这个方案的。

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

 方法二,在yml中配置:

只有userservice这个服务时,才会使用RandomRule的方案。

userservice:ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

注意:方法一的优先级比方法二高! 

解饿加载

Ribbon模式是采用懒加载,既第一次访问时才会去创建LoadBalanceClient,请求时间会很长。

而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过下面配置开启饥饿加载。

这里的服务名称是自己要调用的服务名称,不是自己的服务名称。

ribbon:eager-load:enabled: true           #开启饥饿加载clients: userservice    #指定对userservice这个服务饥饿加载

http://www.lryc.cn/news/131819.html

相关文章:

  • LeetCode--HOT100题(33)
  • 【docker练习】
  • 韦东山-电子量产工具项目:业务系统
  • React(6)
  • RabbitMq-2安装与配置
  • 论文笔记:Continuous Trajectory Generation Based on Two-Stage GAN
  • redis实战-缓存数据解决缓存与数据库数据一致性
  • 【排序】选择排序
  • 深入浅出Pytorch函数——torch.nn.init.trunc_normal_
  • 探索高级UI、源码解析与性能优化,了解开源框架及Flutter,助力Java和Kotlin筑基,揭秘NDK的魅力!
  • 国外服务器怎么有效降低延迟
  • AI百度文心一言大语言模型接入使用(中国版ChatGPT)
  • vue 安装并配置vuex
  • 有一种新型病毒在 3Ds Max 环境中传播,如何避免?
  • 基于Java/springboot铁路物流数据平台的设计与实现
  • 比较杂的html元素
  • Docker基本管理
  • .NET Core6.0使用NPOI导入导出Excel
  • 用API接口获取数据的好处有哪些,电商小白看过来!
  • 使用struct解析通达信本地Lday日线数据
  • 浅谈早期基于模板匹配的OCR的原理
  • 第6章 分布式文件存储
  • Spring(四):Spring Boot 的创建和使用
  • SpringCloud Gateway:status: 503 error: Service Unavailable
  • 【产品规划】功能需求说明书概述
  • shell连接ubuntu
  • 华为将收取蜂窝物联网专利费,或将影响LPWAN市场发展
  • 【3Ds Max】图形合并命令的简单使用
  • Flink的常用算子以及实例
  • 网络安全---负载均衡案例