在Spring应用程序中使用Zuul预定义自己的负载平衡策略

时间:2018-05-02 19:10:58

标签: load-balancing spring-cloud netflix-zuul netflix-eureka spring-cloud-netflix

我试图尝试使用Spring flix,主要是来自Netflix的Eureka和Zuul。过了一段时间,我设法创建了Eureka Server以及两个独立的客户端,其中一些rest API在该服务器上注册,另一个我用作服务器负载均衡器来代理对这两个实例的请求。

问题

我想定义自己的负载均衡策略,因为我读到Zuul默认使用Round Robin。在Zuul中是否有任何特定的命名约定,因为我没有在文档和指南中找到它的运气。

1 个答案:

答案 0 :(得分:0)

Zuul的循环负载平衡仅在发现客户端的刷新范围内宣传,该刷新默认情况下每隔几秒钟发生一次。

当Zuul刷新其发现客户端时,服务器实例的列表会被com.netflix.discovery.shared.Applications中的代码随机打乱,并且无法进行配置。这种改组破坏了com.netflix.loadbalancer.RoundRobinRule中的有状态逻辑,该状态逻辑在服务器列表中保持“最后位置”,因此可以执行其循环逻辑。

在实施自己的选择服务器的规则时,请记住这一点。您可能需要按实例ID或类似的方式进行排序,以撤消发现客户端所做的随机播放。

要实现自己的规则,您只需要提供一个实现com.netflix.loadbalancer.IRule的bean。我们所做的是扩展了抽象类com.netflix.loadbalancer.AbstractLoadBalancerRulechoose()方法是您工作的地方。

相关问题