Spring cloud系列十七 Ribbon六大组件的详细说明和实现类,配置属性的详细说明

本文详细介绍了Spring Cloud Ribbon组件,包括ServerList、ServerListFilter、ServerListUpdater、IPing、IRule、ILoadBalancer的职责及默认实现。Ribbon作为客户端负载均衡器,结合Eureka实现服务发现。文章还解析了Ribbon的工作流程和配置属性,帮助理解其在Spring Cloud中的应用。
摘要由CSDN通过智能技术生成

概念

Ribbon在Spring Cloud中的用法详细见这里Spring cloud系列七 为@Feign中集成的Ribbon进行个性化配置,本文重新整理我对Ribbon的新的理解

Ribbon定义
Ribbon:实现客户端的负载均衡

region、zone、Eureka集群关系
region和zone(或者Availability Zone)均是AWS的概念。在非AWS环境下,将region理解为Eureka集群,zone理解成机房。
如图:一个Eureka集群被部署在了zone1机房和zone2机房中。
以下图片来自网路:
这里写图片描述

Ribbon主要组件:
ServerList:定义获取服务器列表
ServerListFilter:对ServerList服务器列表进行二次过滤
ServerListUpdater: 定义服务更新策略
IPing: 检查服务列表是否存活
IRule :根据算法中从服务列表中选取一个要访问的服务
ILoadBalancer:软件负载平衡器入口,整合以上所有的组件实现负载功能

Ribbon组件之间的关系简单整理如下:

    ServerList和ServerListFilter生成客户端可以访问的服务列表
    ServerListUpdater和IPing:根据服务的状态更新服务列表
    IRule:服务的选择策略
    ILoadBalancer:将以上组件组合到这个类中一起工作

组合关闭如下,以下图片来自网络

这里写图片描述


Ribbon主要组件

下方配置类似myclient.ribbon.EnableZoneAffinity=true的配置中myclient值是ribbon的客户端的名称,如果去除myclient,则这个配置作用在所有的ribbon客户端

ServerList:定义获取服务器列表

实现类和重要实现类说明:
这里写图片描述

ConfigurationBasedServerList:从配置文件中获取所有服务列表
配置:

client.ribbon.listOfServers=www.microsoft.com:80,www.yahoo.com:80,www.google.com:80

DiscoveryEnabledNIWSServerList:从注册中心获取服务列表(默认配置)
配置:根据Eureka服务实例名称,从Eureka Client中获取服务列表

myClient.ribbon.NIWSServerListClassName=com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList 
# the server must register itself with Eu
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值