ribbon可以提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和短路器使用。

1、Ribbon负载均衡的注解

@loadBalanced

2、Ribbon负载均衡策略

  • RandomRule:随机
  • RoundFobinRule:轮询
  • RetryRule:重试
  • WeightedResponseTimeRule:权重
  • ClientConfigEnabledRoundRobinRule:一般不用,通过继承该策略,默认的choose就实现了线性轮询机制,可以基于它来做扩展。
  • BestAvailableRule:通过遍历负载均衡器中维护的所有服务实例,会过滤到故障的,并选择并发请求最小的一个。
  • PredicatedBasedRule:先过滤清单,再轮询。
  • AvailabilityFilteringRule:继承了父类的先过滤清单,在轮询。
  • ZoneAvoidanceRule:该类是PredicateBasedRule的子类,它可以组合过滤条件,以ZoneAvoidancePredicate为主过滤条件,以AvailabilityPredicate为次过滤条件。

3、服务熔断

服务熔断的作用类似于保险丝,当某个服务出现不可用或者响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用。

4、服务降级

服务降级是当服务器压力剧增的情况下,根据当前业务情况以及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。

欢迎批评指正,提出问题,谢谢!