ZoneAvoidanceRule选择在实际请求被触发之前调用两次的方法,从而导致循环问题

时间:2015-05-28 12:28:01

标签: spring-cloud netflix

我在构建于Spring Cloud Netflix之上的应用程序中通过@LoadBalanced RestTemplate间接使用Ribbon。

我正在测试针对两个目标服务器的循环负载平衡(应该是Spring定义的默认ZoneAvoidanceRule的一部分)。但是这不起作用。

调试应用程序时我注意到,loadBalancer根据规则和可用的服务器列表向choose目标服务器询问两次。

第一次选择目标服务器的请求是由RibbonClientHttpRequestFactory.createRequest(URI, HttpMethod)方法完成的。第二次是在execute本身上调用loadBalancer方法的效果,后者将再次选择目标目标。结果,(只有两个可用的服务器)我一直只打一个。

我是否有错误配置或这是一个错误?

1 个答案:

答案 0 :(得分:1)

版本1.0.2.RELEASE修复了此问题。