Spring Netflix LoadBalancing 规则比较
Posted
技术标签:
【中文标题】Spring Netflix LoadBalancing 规则比较【英文标题】:Spring Netflix LoadBalancing rules comparison 【发布时间】:2017-10-26 08:36:04 【问题描述】:我有一个关于使用 Spring-Cloud Netflix 进行客户端负载平衡的问题。
启用负载平衡后,Ribbon 会选择一个服务器被调用。选择规则取决于选择的 IRule 实现。
以下实现有什么区别:
AvailabilityFilteringRule
BestAvailableRule
ClientConfigEnabledRoundRobinRule
RoundRobinRule
WeightedResponseTimeRule
ZoneAvoidanceRule
非常感谢
【问题讨论】:
你看过这里github.com/Netflix/ribbon/wiki/…吗?有一些说明。 @spencergibb 一些描述,其他不完整,其他缺失。这个问题非常有效和相关。 【参考方案1】:visit source 了解更多信息和不同的规则。
RoundRobinRule 此规则只是通过循环选择服务器。它通常用作默认规则或更高级规则的后备。
BestAvailableRule 跳过带有“跳闸”断路器的服务器并选择 并发请求最低的服务器。
可用性过滤规则 此规则将跳过被视为“电路跳闸”或具有高并发连接数的服务器。
加权响应时间规则 对于此规则,每个服务器根据其平均响应时间被赋予一个权重。响应时间越长,它得到的权重就越小。该规则随机选择一个服务器,其可能性取决于服务器的权重。
使用属性选择一个
service-id:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.AvailabilityFilteringRule
【讨论】:
以上是关于Spring Netflix LoadBalancing 规则比较的主要内容,如果未能解决你的问题,请参考以下文章
Netflix之后,如何用Spring Cloud 新组件构建微服务架构?
如何使用 spring-cloud-netflix 和 feign 编写集成测试
Spring Netflix LoadBalancing 规则比较