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

  • 相关阅读:
    HDU 1505 City Game
    HDU 1506 Largest Rectangle in a Histogram
    HDU 1838 Chessboard
    HDU 2512 一卡通大冒险
    HDU 1081 To The Max
    HDU 2845 Beans
    HDU 1422 重温世界杯
    HDU 1231 最大连续子序列
    第6章 接口和实现
    java面向抽象编程样例
  • 原文地址:https://www.cnblogs.com/a-yuan/p/9535108.html
Copyright © 2011-2022 走看看