ribbon可以提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和短路器使用。
1、Ribbon负载均衡的注解
@loadBalanced
2、Ribbon负载均衡策略
- RandomRule:随机
- RoundFobinRule:轮询
- RetryRule:重试
- WeightedResponseTimeRule:权重
- ClientConfigEnabledRoundRobinRule:一般不用,通过继承该策略,默认的choose就实现了线性轮询机制,可以基于它来做扩展。
- BestAvailableRule:通过遍历负载均衡器中维护的所有服务实例,会过滤到故障的,并选择并发请求最小的一个。
- PredicatedBasedRule:先过滤清单,再轮询。
- AvailabilityFilteringRule:继承了父类的先过滤清单,在轮询。
- ZoneAvoidanceRule:该类是PredicateBasedRule的子类,它可以组合过滤条件,以ZoneAvoidancePredicate为主过滤条件,以AvailabilityPredicate为次过滤条件。
3、服务熔断
服务熔断的作用类似于保险丝,当某个服务出现不可用或者响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用。
4、服务降级
服务降级是当服务器压力剧增的情况下,根据当前业务情况以及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。