在生产中正常重新启动 Service Fabric 应用程序以反映对数据包的更新

Posted

技术标签:

【中文标题】在生产中正常重新启动 Service Fabric 应用程序以反映对数据包的更新【英文标题】:Gracefully restarting Service Fabric Application while in Production to reflect an update to the Data Package 【发布时间】:2021-04-03 11:32:24 【问题描述】:

我有一个专为 Azure Service Fabric 设计的 C#/.NET 应用程序。应用程序使用 Data Package 和 Config Package 文件,这些文件在初始化期间在 Stateless Service Fabric 应用程序的构造函数中读取。这些文件一起提供了使应用程序能够在应用程序的 RunAsync 方法中创建多个无限长时间运行的任务的信息。

现在说,在应用程序已经投入生产很长时间(例如几小时/几天或更长时间)之后,数据包文件有一个更新。我希望应用程序从头开始读取数据包和配置包,并从无状态应用程序的构造函数中执行的初始化步骤重新启动。

看了一圈发现“RestartDeployedCodePackageAsync”方法,需要调用如下:

await client.FaultManager.RestartDeployedCodePackageAsync(applicationName, selector, CompletionMode.Verify);

这个页面有详细描述:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-testability-workload-tests

我应该使用这种方法来实现我想要做的事情吗?这是最好的方法吗?

【问题讨论】:

【参考方案1】:

为此,您应该执行服务升级部署,只更改配置。 使用与常规包相同的结构,但没有代码,只有新的数据和配置文件。

更多信息here 和 here。

【讨论】:

以上是关于在生产中正常重新启动 Service Fabric 应用程序以反映对数据包的更新的主要内容,如果未能解决你的问题,请参考以下文章

如何重新启动 Service Fabric 应用程序

Service Fabric 中的 Stateless Worker 服务在同一进程中重新启动

使用 *** 的本地 Service Fabric 无法正常工作

启动 Service Fabric 群集时出错 (v 1.5.175)

Service Fabric 本地群集在群集启动时创建 8 GB 文件

管理来宾可执行文件依赖项 - 本地 Service Fabric