4.ServerList

一、简介

ServerList就是server的列表,我们知道,IRule做负载均衡的关键参数就是server列表,就是从这里获取的。

二、接口

其接口比较简单,定义了两个方法,如下:

public interface ServerList<T extends Server> {
    public List<T> getInitialListOfServers();
    public List<T> getUpdatedListOfServers();   
}
  1. getInitialListOfServers获取初始化列表
  2. getUpdatedListOfServers获取更新的列表

其实现如下:
在这里插入图片描述

三、实现

  1. 大概的实现类流程如下:
    在这里插入图片描述
  2. ConfigurationBasedServerList
    对于这个类,看名字就能猜出大概,基于配置的server类别。
    它主要作用就是从配置文件获取listOfServers参数,组装成server列表,配置项类似如下:
xxxx: #xxxx代表服务名
  ribbon: 
    listOfServers: aa.com,bb.com
  1. DiscoveryEnabledNIWSServerList
    这个类实现了从EurekaClient获取server的信息,一般使用Eureka做注册发现,默认使用此类DiscoveryEnabledNIWSServerList。
    从Eureka获取server地址这个不多说,属于EurekaClient的范畴,获取到的信息组装为DiscoveryEnabledServer,此类继承自Server,多了一些Eureka的信息,比如instanceId,状态信息,UP表示可用。
  2. DomainExtractingServerList仅仅是对DiscoveryEnabledNIWSServerList进行包装,内部其实就是委托DiscoveryEnabledNIWSServerList实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值