Spring Cloud - 面试知识点(负载均衡)
负载均衡 Ribbon ,发起远程调用 feign 就会使用 Ribbon。
1. Ribbon 负载均衡的工作流程
2. Ribbon的负载均衡策略
① RoundRobinRule: 简单轮询服务列表选择服务器
② WeightedResponseTimeRule : 按照权重选择服务器,响应时间越长,权重越小
③ RandomRule : 随机选择一个服务器
④ ZoneAvoidanceRule:区域敏感原则(默认策略),以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,这里的Zone可理解为一个机房、机架等,而后再对Zone内的多个服务器进行轮询
⑤ BestAvailableRule :忽略那些短路的服务器,并选择并发数较低的服务器
⑥ RetryRule:重试机制的选择逻辑
⑦ AvailabilityFilteringRule:可用性敏感策略,先过滤非健康的,再选择连接数较小的实例
3. 自定义负载均衡策略的实现
可以自己创建一个class实现IRule接口,然后再通过配置类或配置文件配置即可。通过定义IRule实现可以修改负载均衡规则,有如下两种方式: