zoukankan      html  css  js  c++  java
  • 04 Ribbon介绍

      负载均衡是分布式框架的重点,负载均衡机制决定着整个服务器集群的性能和稳定。我们知道,Eureka的服务实例可以进行集群集群部署,每个实例都均衡处理服务请求,那么这些请求是如何被分摊到各个服务实例中的呢?Netflix的负载均衡项目Ribbon帮我们解决了这个问题。

    1.Ribbon简介

      Ribbon是Netflix下的负载均衡项目,它在集群中为各个客户端的通信提供了支持,它主要实现中间层应用程序的负载均衡。Ribbon提供一下特性:

      > 负载均衡器,可支持插拔式的负载均衡原则。

      > 对多种协议提供支持,例如HTTP、TCP、UDP。

      > 集成了负载均衡功能的客户端。

      同为Netflix项目的Ribbon可以与Eureka整合使用,Ribbon同样也被集成到Spring Cloud中,作为spring-cloud-netflix项目中的子模块。Spring Cloud将Ribbon的API进行了封装,使用者可以使用封装后的API来实现负载均衡,也可以使用Ribbon原生的API。

    2.Ribbon子模块

      Ribbon主要有以下的三大子模块:

      > ribbon-core: 该模块为Ribbon项目的核心。主要包括负载均衡器的接口定义、客户端接口定义、内置的负载均衡思想等API。

      > ribbon-eureka: 为Eureka客户端提供的负载均衡实现类。

      > ribbon-httpclient: 对Apache的HttpClient进行封装,该模块提供了含有负载均衡功能的REST客户端。

    3.负载均衡器组件

      Ribbon的负载均衡主要与集群中的各个服务器进行通信,负载均衡器需要提供以下基础功能:

      > 维护服务器的IP、DNS名称等信息。

      > 根据特定的逻辑在服务器列表中循环。

      为了实现负载均衡的基础功能,Ribbon的负载均衡器有以下三大子模块。

      > Rule: 一个逻辑组件,这些逻辑将会决定从服务器列表中返回那个服务器实例。

      > Ping: 该组件主要使用定时器来确保服务器网络可以连接。

      > ServerList:服务器列表,可以通过静态的配置确定负载的服务器,也可以动态指定服务器列表。如果指定服务器列表,则会有后台的线程来刷新该列表。

  • 相关阅读:
    golang mongo-driver filter 构建--bson和golang基础类型
    ieda 修改选了files open in assoasiated applications
    golang 轻量实用的http.Request 参数解析库 paramParse
    scrapyd spiderkeeper docker部署
    python Scrapy google trends
    shell 删除代码中的注释
    php中文转阿拉伯数字
    php调用oracle带有out参数的存储过程
    Mongodb 副本与分片 学习笔记
    Mongodb 特殊索引和集合 学习笔记
  • 原文地址:https://www.cnblogs.com/a-yuan/p/9535108.html
Copyright © 2011-2022 走看看