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

ZoneAvoidanceRule choose method invoked twice before actual request is fired causing issues to round robin

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

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

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

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

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

1.0 版。2.RELEASE 已修复此问题。