一:Ribbon核心组件IRule
1、根据特定的算法中从服务列表中选取一个要访问的服务
2、SpringCloud结合Ribbon默认的自带有七种算法
3、可用在RitHup上查询源码
https://github.com/Netflix/ribbon
1、RoundRobinRule
1、轮询,依次执行每个执行一次(默认)
2、RandomRule
1、随机
2、在客户端(80)的配置类上(ConfigBean.java)加上新的Bean覆盖默认的轮询
2、在进行测试查询
先启动3个Eureka集群服务
在启动3个Dept(8001/8002/8003)微服务
在次启动消费端(80)并执行访问
http://localhost/consumer/dept/list
每次执行的就是随机的了而不是轮询算法
3、AvailabilityFilteringRule
1、会先过滤掉多次访问故障而处于断路器跳闸状态的服务
2、和过滤并发的连接数量超过阀值得服务,然后对剩余的服务列表安装轮询策略进行访问
4、WeightedResponseTimeRule
1、根据平均响应时间计算所有的服务的权重,响应时间越快服务权重越大,容易被选中的概率就越高。