2

我们正在尝试为 Windows Azure 中的 LoadBalanced 集创建自定义探针。我们创建了一个 Windows Communication Foundation 服务探测,它正在侦听端口 1001(在防火墙中为该端口添加了入站规则 - TCP,允许所有人连接)。

如果满足某些条件,该服务将返回 200(OK),否则将返回 404(NotFound)。

端点已配置:

Protocol - TCP
Public Port - 50655
Private Port - 50655

我们在 LoadBalanced Set 属性中配置:

Probe Protocol - HTTP
Probe Path - probe
Probe Port - 1001
Probe interval - 15
Number of Probes - 2    

问题是即使探测服务为 VM 返回 404,负载均衡器仍然选择此 VM 来处理请求。

如果我们将端点配置为具有私有和公共端口 1001(与探测端口相同),它将按预期工作。但是我们需要让端点监听端口 50655。我们怎样才能做到这一点?

4

1 回答 1

0

我注意到您将端点配置为 TCP 类型而不是 HTTP。我认为这就是问题所在!

从逻辑上思考,你会看到结果是负载均衡器不能公平地假设它应该看到 HTTP 200 成功来验证端点是否启动 - 因为它甚至不知道它是否会得到 HTTP 响应!

因此,它将回退到执行 TCP 样式的“你起来了吗”测试,即发送一个 SYN 到你的端口,并检查它是否得到一个 ACK​​。

于 2015-08-05T06:26:44.637 回答