Service Fabric 应用程序故障行为
Service Fabric application failure behaviour
我只是在本地测试 Service Fabric。我测试了许多失败场景,但其中一个我无法验证。当节点运行良好但应用程序崩溃时 SF 的行为如何?例如,我有无状态网络 api 并且在单个请求后它失败并关闭(几乎不可能,但这只是假设)。 SF 应该知道它并且在对同一节点的下一个请求中它应该重定向对托管在任何其他节点中的相同应用程序类型的请求,直到应用程序不再启动?我对吗?在 statefull 上它应该做同样的事情,而不是重定向到其他节点它应该使用 replica?
我尝试使用 Restart-ServiceFabricDeployedCodePackage 模拟此示例,但它可能重启得太快,我无法验证我的假设 -我超时了。
Service Fabric 会将请求重定向到服务的假设通常是不正确的,除非您使用内置的反向代理(您会知道是否正在使用它,因为您需要将请求 URL 构造为某种方式)。
假设您没有使用内置反向代理,那么您的服务会在 IP:port 端点上直接相互连接和通信。 Service Fabric 不在请求路径中。 Service Fabric 仅提供服务发现。
SF 检测到进程崩溃。您还可以通过服务代码报告故障。在这些情况下,SF 将重新启动崩溃的进程或报告故障的副本。它们可能会在不同的节点上重新启动。有状态服务副本几乎总是会故障转移到另一个节点,在该节点上可以将活动的辅助节点提升为主节点。如果服务是无状态的,则客户端负责解析新的服务端点或切换到不同的实例。
我只是在本地测试 Service Fabric。我测试了许多失败场景,但其中一个我无法验证。当节点运行良好但应用程序崩溃时 SF 的行为如何?例如,我有无状态网络 api 并且在单个请求后它失败并关闭(几乎不可能,但这只是假设)。 SF 应该知道它并且在对同一节点的下一个请求中它应该重定向对托管在任何其他节点中的相同应用程序类型的请求,直到应用程序不再启动?我对吗?在 statefull 上它应该做同样的事情,而不是重定向到其他节点它应该使用 replica?
我尝试使用 Restart-ServiceFabricDeployedCodePackage 模拟此示例,但它可能重启得太快,我无法验证我的假设 -我超时了。
Service Fabric 会将请求重定向到服务的假设通常是不正确的,除非您使用内置的反向代理(您会知道是否正在使用它,因为您需要将请求 URL 构造为某种方式)。
假设您没有使用内置反向代理,那么您的服务会在 IP:port 端点上直接相互连接和通信。 Service Fabric 不在请求路径中。 Service Fabric 仅提供服务发现。
SF 检测到进程崩溃。您还可以通过服务代码报告故障。在这些情况下,SF 将重新启动崩溃的进程或报告故障的副本。它们可能会在不同的节点上重新启动。有状态服务副本几乎总是会故障转移到另一个节点,在该节点上可以将活动的辅助节点提升为主节点。如果服务是无状态的,则客户端负责解析新的服务端点或切换到不同的实例。