Spring Cloud 进阶--Ribbon 基本理论概述

版权声明:本文为博主原创文章,如果觉得写的不错需要转载,在转载时请注明博文出处! https://blog.csdn.net/Hello_World_QWP/article/details/86476944

                                              《 Ribbon 基本理论概述 》

前言

本篇文章主要对 Netfix ribbon 进行了基本的介绍,包括什么是 Ribbon ?Ribbon 的作用?Ribbon 的特性?以及Ribbon 的常用 API 的说明(当然具体的源码,需要自己去看咯)。

Ribbon 基本理论概述

1、关于 Ribbon 

Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端负载均衡的工具。Ribbon 是 Netflix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将 Netflix 的中间层服务连接在一起。Ribbon 客户端组件提供一系列完善的配置项如连接超时重试等。简单的说,就是在配置文件中列出 Load Balancer(简称LB)后面所有的机器,Ribbon 会自动的基于某种策略(如轮询连接、随机连接等)去连接这些服务器。也很容易使用 Ribbon 实现自定义的负载均衡算法来满足项目中常见的业务环境需求。

Load Balancer(简称LB)分为进程内LB和集中式LB:

进程内LB:将 Load Balancer 逻辑集成到系统的消费模块中,消费服务器从服务注册中心获取服务提供者地址列表,然后自己再从这些地址列表中选择出一个合适地址进行请求处理。在前面说到的 Ribbon 就属于进程内 LB,它只是一个类库,集成到了消费进程中,消费者通过它来获取到服务提供者的访问地址。

集中式LB:在服务的消费者和服务提供者之间的 LB 独立出来(可以是硬件,如F5, 也可以是软件,如 Nginx、HAProxy、Keepalived),由该独立出来的 LB 把访问请求通过某种策略转发至服务的提供者处理。

 

2、Ribbon 的作用

LB,即负载均衡(Load Balance),在微服务分布式集群中经常用的一种应用。负载均衡简单的说就是将用户的请求平均分配到多个服务上,从而达到系统的 HA(也就是我们常说的高可用!!!)。常见的负载均衡有软件 Nginx,LVS,硬件 F5 等,话又说回来,一般没有实力的公司都用不起 F5。相应的在中间件,例如:Dubbo 和 Spring Cloud 中均给我们提供了负载均衡机制,其负载均衡算法都是可以自定义的。

 

3、Ribbon 特性:

  • 负载均很
  • 容错性
  • 异步和响应模型中支持多协议,包括:HTTP、TCP、UDP
  • 缓存和批处理机制

 

4、Ribbon 引入依赖

需要在 Maven 配置文件中,添加如下依赖:

<dependency>
    <groupId>com.netflix.ribbon</groupId>
    <artifactId>ribbon</artifactId>
    <version>2.2.2</version>
</dependency>

5、Ribbon 常用 API 说明

  1. ribbon-example:Ribbon 常用的实例
  2. ribbon:该 API 实现了在其他 ribbon 模块和 Hystrix 上集成负载均衡、容错、缓存以及批处理
  3. ribbon-eureka:该 API 使用 Eureka Client 为云提供动态的服务器列表
  4. ribbon-httpclient:建立在 Apache HttpClient 之上的基于 REST 的客户端集成了负载均衡机制(已被弃用并被 Ribbon 模块所替代)
  5. ribbon-core:Ribbon 客户端配置 API 和其他共享 API
  6. ribbon-loadbalancer:Load balancer API 负载均衡 API  可以单独使用,也可以和其它模块使用
  7. ribbon-transport:Transport client 支持 HTTP、TCP、UDP 的协议使用 RxNetty 与负载均很的能力

3、Ribbon 源码
《 Netfix ribbon 》


 好了,关于 Spring Cloud 进阶--Ribbon 基本理论概述 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。 
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。


作       者: 华    仔
联系作者: [email protected]
来        源: CSDN (Chinese Software Developer Network)
原        文: https://blog.csdn.net/Hello_World_QWP/article/details/86476944
版权声明: 本文为博主原创文章,请在转载时务必注明博文出处!

猜你喜欢

转载自blog.csdn.net/Hello_World_QWP/article/details/86476944
今日推荐