azure-service-fabric – Service Fabric应用程序失败行为

我只是在内部测试Service Fabric.我测试了很多故障情况,但其中一个我无法验证.节点运行良好时SF的行为如何,但应用程序崩溃了?例如,我有无状态的web api,并且在单个请求之后它失败并关闭(几乎不可能,但它只是假设). SF应该知道它并且在下一个请求到同一节点时,它应该重定向任何其他节点中托管的相同应用程序类型的请求,直到应用程序不再启动?我对吗?在statefull上它应该做同样的事情,但不是重定向到其他节点它应该使用副本?

我尝试使用Restart-ServiceFabricDeployedCodePackage模拟这个例子,但它可能重启太快而且我无法验证我的假设 – 我得到超时.

最佳答案 假设Service Fabric将请求重定向到服务通常是不正确的,除非您使用内置的反向代理(您将知道您是否正在使用它,因为您需要以某种方式构建请求URL).

假设您没有使用内置的反向代理,那么您的服务将在IP:端口端点上相互连接并直接通信. Service Fabric不在请求路径中. Service Fabric仅提供服务发现.

SF检测到进程崩溃.您还可以从服务代码报告错误.在这些情况下,SF将重新启动报告故障的崩溃或副本的进程.它们可以在不同的节点上重新启动.有状态服务副本几乎总是故障转移到另一个可以将活动辅助节点提升为主节点的节点.如果服务是无状态的,客户端负责解析新的服务端点或切换到不同的实例.

点赞