SpringCloudRibbon
Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具。
负载均衡策略
随机选择:RandomRule实现了从服务清单中随机选择一个服务实例的功能;
线性轮询:RoundRobinRule实现了按照线性轮询的方式依次选择每个服务实例的功能;默认策略;
重试机制:RetryRule实现了一个具备重试机制的实例选择功能,基于线性轮询方式进行反复尝试,如果成功获取则返回,失败则不断获取,直到达到一个时间阈值;
根据权重:WeightedResponseTimeRule对RoundRobinRule进行拓展,增加了根据实例的运行情况来计算权重,并根据权重来挑选实例,以达到更优的分配效果;
ClientConfigEnabledRoundRobinRule:和RoundRobinRule一样,只是作为父类,后面的高级策略均是基于这个父类;
BsetAvailableRule:继承ClientConfigEnabledRoundRobinRule,选择并发请求数最小的一个,所以该策略选出的是最空闲的实例,这个算法依赖统计对象
loadBalancerStats
,当为空时执行父类算法;PredicateBasedRule:抽象策略,继承ClientConfigEnabledRoundRobinRule,通过子类实现的Predicate过滤一部分实例,然后再以轮询方式选出一个;
AvailabilityFilteringRule:继承PredicateBasedRule,过滤掉故障机器和并发请求数大于阈值的机器;
ZoneAvoidanceRule:继承PredicateBasedRule,包含主过滤条件和次要过滤条件。
特性
客户端负载均衡
最佳区域选择,默认区域亲和策略
重试机制,尝试不同的实例
Last updated