我们在负载均衡器后面有一个Azure Service Fabric实例。群集中的服务通过反向代理调出到群集中的外部服务或其他服务。反向代理工作良好,并将请求发送到可用节点。一切都很好。
如果我们升级服务或通过Powershell正常重启进程或节点,那么一切也都很好。
但是,如果我只是重新启动了规模设置中的VM,那么一切都将变得一团糟。
我认为正在发生的事情是,负载均衡器正确地感知到机器已关闭并停止了对该节点的请求。但是,尽管在SF Explorer中清楚地显示了反向代理,但反向代理并不能理解该节点不可用,并且仍向死服务器发送一些请求。
这应该如何工作?有没有其他人有这种经验?关于我们的问题和解决方案有什么建议吗?
R。
答案 0 :(得分:1)
您可以在这里查看RP的源代码:
https://github.com/Microsoft/service-fabric-reverse-proxy
此问题表明ASF-RP不支持健康状况探测,因此可能会路由到不健康的服务。
https://github.com/Azure/service-fabric-issues/issues/607
为什么我的公司选择Traefik(部署为Guest Executable)有很多原因。它具有对运行状况探测器的支持以及许多其他功能-例如标头交换路由等。ASFOOTB代理非常适合快速启动和运行,当您遇到更高级的情况时,它就会崩溃。