用于Windows Azure负载平衡器的自定义探针

时间:2014-10-20 15:26:19

标签: c# wcf azure azure-virtual-machine azure-vm-role

我们正在尝试为Windows Azure中的LoadBalanced集创建自定义探针。 我们创建了一个Windows Communication Foundation服务探针,它正在侦听端口1001(在Firewall - 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.我们怎样才能实现这个目标?

1 个答案:

答案 0 :(得分:0)

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

从逻辑上思考,您将看到后果是负载均衡器无法公平地认为它应该看到HTTP 200成功验证端点是否已启动 - 因为它甚至不知道它是否会获得HTTP响应一点都没有!

所以相反它会回归到做TCP风格的#39 test,即将SYN发送到您的端口,并检查它是否收到ACK。