Spring Cloud 五大核心组件解析之Ribbon简介

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: Spring Cloud 五大核心组件解析之Ribbon简介

前言:在上文中我们讲到了Eureka的详解,当我们的服务注册到Eureka Server上了,我们还会遇到一个问题,就是当我们有多个服务节点的时候,我们如何实现负载均衡呢?  


1. 负载均衡
其实提到负载均衡,大部分人都会想到在我们的服务前置一个nginx,但是这只是实现了服务器端的负载均衡,那么客户端的负载均衡怎么解决呢?


2.Spring Cloud核心组件:Ribbon
还好Spring Cloud五大核心组件中的Ribbon是专门来解决这个问题的。我们先来简单介绍一下Ribbon。
Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。
Spring Cloud Ribbon虽然是一个工具类框架,它不需要独立部署,但是它几乎存在于每一个Spring Cloud构建的微服务和基础设施中。
微服务间的调用,API网关的请求转发等内容,实际上都是通过Ribbon来实现的。同时Ribbon默认为我们提供了很多负载均衡算法,例如轮询、随机等。当然,我们也可为Ribbon实现自定义的负载均衡算法。
3.Ribbon中的几个重要组件
Ribbon由很多组件组成,其中最重要的就是以下6个
IRule访问微服务列表的规则。


IPing检查微服务是否存活。


ServerList用于获取微服务地址列表。它既可以是静态的(提供一组固定的地址),也可以是动态的(从注册中心中定期查询地址列表)。  ServerListFilter:对ServerList服务器列表进行二次过滤。 ServerListUpdater: 定义服务更新策略 。

ILoadBalancer:软件负载平衡器入口,整合以上所有的组件实现负载功能。
那么这几个组件之间是如何组合发挥自己的作用呢?

ServerList在默认情况下通过静态配置来维护服务器列表,但是通常情况下都会保持非常多的线程池连接,而ServerListFilter可以对其进行过滤,删除某些不必要的server。


根据IPing的心跳判断服务是否存活,再ServerListUpdater去更新服务器状态。


IRule则是判断服务访问的策略,轮询,随机等,以上所有的组件,都将组合到ILoadBalancer这个类中进行工作。


上面就是Ribbon简单的介绍,我们在下一篇文章中会来分享一下Ribbon中重要组件的工作原理与重要的类。


相关文章
|
9天前
|
负载均衡 监控 网络协议
SpringCloud之Ribbon使用
通过以上步骤,就可以在Spring Cloud项目中有效地使用Ribbon来实现服务调用的负载均衡,提高系统的可靠性和性能。在实际应用中,根据具体的业务场景和需求选择合适的负载均衡策略,并进行相应的配置和优化,以确保系统的稳定运行。
34 15
|
9天前
|
负载均衡 算法 Java
除了 Ribbon,Spring Cloud 中还有哪些负载均衡组件?
这些负载均衡组件各有特点,在不同的场景和需求下,可以根据项目的具体情况选择合适的负载均衡组件来实现高效、稳定的服务调用。
23 5
|
14天前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
29 0
|
2月前
|
XML 监控 Java
Spring Cloud全解析:熔断之Hystrix简介
Hystrix 是由 Netflix 开源的延迟和容错库,用于提高分布式系统的弹性。它通过断路器模式、资源隔离、服务降级及限流等机制防止服务雪崩。Hystrix 基于命令模式,通过 `HystrixCommand` 封装对外部依赖的调用逻辑。断路器能在依赖服务故障时快速返回备选响应,避免长时间等待。此外,Hystrix 还提供了监控功能,能够实时监控运行指标和配置变化。依赖管理方面,可通过 `@EnableHystrix` 启用 Hystrix 支持,并配置全局或局部的降级策略。结合 Feign 可实现客户端的服务降级。
159 23
|
2月前
|
负载均衡 Java Nacos
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
微服务介绍、SpringCloud、服务拆分和远程调用、Eureka注册中心、Ribbon负载均衡、Nacos注册中心
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
|
3月前
|
缓存 负载均衡 Java
OpenFeign最核心组件LoadBalancerFeignClient详解(集成Ribbon负载均衡能力)
文章标题为“OpenFeign的Ribbon负载均衡详解”,是继OpenFeign十大可扩展组件讨论之后,深入探讨了Ribbon如何为OpenFeign提供负载均衡能力的详解。
OpenFeign最核心组件LoadBalancerFeignClient详解(集成Ribbon负载均衡能力)
|
3月前
|
负载均衡 算法 Java
SpringCloud之Ribbon使用
通过 Ribbon,可以非常便捷的在微服务架构中实现请求负载均衡,提升系统的高可用性和伸缩性。在实际使用中,需要根据实际场景选择合适的负载均衡策略,并对其进行适当配置,以达到更佳的负载均衡效果。
59 13
|
4月前
|
负载均衡 Java Spring
Spring cloud gateway 如何在路由时进行负载均衡
Spring cloud gateway 如何在路由时进行负载均衡
488 15
|
4月前
|
Java Spring
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
111 3
|
2月前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。

推荐镜像

更多