我们在负载均衡器后面有一个Azure Service Fabric实例。群集中的服务通过反向代理调用外部服务或群集中的其他服务。反向代理运行良好,并将请求发送到可用节点。一切都很好。
如果我们升级服务或通过Powershell优雅地重新启动进程或节点,那么一切都很好。
但是,如果我只是在比例集中重新启动VM,那么一切都会破裂。
我认为正在发生的事情是Load Balancer正确感知机器已关闭并停止对该节点的请求。但是,反向代理不理解节点不可用,尽管在SF Explorer中清楚地显示了它,并且它仍然向死服务器发送一些请求。
这怎么办?有没有其他人有这种经验?对我们的问题和解决方案有任何建议吗?
R.
你可以在这里查看RP的源代码:
https://github.com/Microsoft/service-fabric-reverse-proxy
此问题表明ASF-RP不支持健康探测,因此可以路由到不健康的服务。
https://github.com/Azure/service-fabric-issues/issues/607
有很多原因导致我的公司切换到Traefik - 部署为Guest Executable。这支持健康探测器和许多其他功能 - 例如标题交换路由等.ASF OOTB代理非常适合让您快速启动和运行,当您遇到更高级的方案时它就会失败。