1、IRule简介
IRule:根据特定算法从服务列表中选取一个要访问的服务。
IRule接口在ribbon-loadbalancer包中:
public interface IRule{
/*
* choose one alive server from lb.allServers or
* lb.upServers according to key
*
* @return choosen Server object. NULL is returned if none
* server is available
*/
public Server choose(Object key);
public void setLoadBalancer(ILoadBalancer lb);
public ILoadBalancer getLoadBalancer();
}
其中:
choose(Object key):根据某种算法从lb的负载列表中获得key、从而选择一个有效的服务。
2、IRule实现类