Ribbon负载均衡

Ribbon负载均衡是一种在分布式系统中用于分发网络请求的技术。它是Netflix开源的负载均衡器,通常与微服务架构一起使用。

微服务架构 中,系统由多个服务实例组成,每个实例运行在不同的主机或容器中。当客户端发送请求时,需要将请求分发到合适的服务实例上进行处理,在保持高可用性和性能的同时避免过载

Ribbon负载均衡通过在客户端端实现负载均衡,将请求分发到可用的服务实例上。它通过以下步骤来选择一个服务实例:

  1. 通过服务注册与发现机制,Ribbon获取可用的服务实例列表。

  2. 根据一定的负载均衡算法,如轮询、随机、加权轮询等,从实例列表中选择一个实例。

  3. 将请求发送到所选的服务实例。

使用Ribbon负载均衡的好处包括:

  • 分发负载:Ribbon能够根据负载均衡算法均匀地将请求分发到不同的服务实例上,避免某个实例过载而影响整个系统的性能。

  • 高可用性:当某个服务实例不可用时,Ribbon能够自动切换到可用的实例,提高系统的可靠性和容错性。

  • 动态更新:当新的服务实例加入或现有的实例退出时,Ribbon能够动态地更新可用的实例列表,确保请求能够正确地分发。

Ribbon负载均衡通常与其他组件一起使用,如服务注册与发现(例如Eureka、Consul)、服务网关(例如Zuul、Spring Cloud Gateway)和断路器(例如Hystrix),以构建弹性和可靠的分布式系统。

Ribbon负载均衡规则

1、规则接口是IRule

2、默认实现是ZoneAvoidanceRule,根据zone选择服务列表,然后轮询

以上两种策略各有优缺点

代码方式:配置灵活,但修改时需要重新打包发布

配置方式:直观,方便,无需重新打包发布但是无法做全局配置

相关推荐
云飞云共享云桌面2 小时前
非标装备厂降本方案|8‑10 人三维研发共用一台主机,兼容SolidWorks等多款 3D 绘图软件
运维·服务器·3d·自动化·负载均衡·制造
空谷有来人1 天前
springcloud中配置ci/cd集成docker的配置文件
spring cloud·ci/cd·docker
Pluchon2 天前
Java个人综合项目——萌部落社区V2.0
java·python·spring·spring cloud·postman·idea
月落归舟2 天前
深入浅出:短信验证码登录场景下的 Nginx 负载均衡与 Session 共享
运维·nginx·负载均衡
豆瓣鸡2 天前
Spring Cloud Gateway 核心原理:从请求转发到微服务流量治理
网关·spring cloud·微服务
过往的时光2 天前
Spring Boot、Spring Cloud 与 Spring Cloud Alibaba 版本对照终极指南
java·spring boot·spring cloud
乐观的Terry3 天前
11、发布系统-用户认证与权限体系
java·spring boot·spring·spring cloud·mybatis
小张同学a.3 天前
LAMP架构4——MySQL高可用
linux·运维·服务器·数据库·mysql·架构·负载均衡
敲代码的嘎仔3 天前
从零搭建微服务:Spring Cloud Alibaba 全家桶踩坑实录(Nacos + OpenFeign + Gateway + Sentinel)
java·spring boot·spring·spring cloud·微服务·gateway·sentinel
Jul1en_4 天前
【Java 脚手架】封装通用工具类-1
java·spring boot·分布式·spring·spring cloud