Ribbon内置了多种负载均衡策略,内部负责复杂均衡的顶级接口为:com.netflix.loadbalancer.IRule ,实现方式如下 :
com.netflix.loadbalancer.RandomRule :随机选择一个server
com.netflix.loadbalancer.RetryRule :对选定的负载均衡策略机上重试机制。
com.netflix.loadbalancer.RoundRobinRule :以轮询的方式进行负载均衡
com.netflix.loadbalancer.WeightedResponseTimeRule :根据响应时间分配一个weight,响应时间越长,weight越小,被选中的可能性越低。
com.netflix.loadbalancer.AvailabilityFilteringRule :可用过滤策略,过滤掉故障和请求数超过阈值的服务实例,再从剩下的实例中轮询调用(默认)
在服务消费者的application.yml配置文件中修改负载均衡策略,格式:
{服务提供者名称}.ribbon.NFLoadBalancerRuleClassName