在生产中正常重新启动 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 中的 Stateless Worker 服务在同一进程中重新启动
使用 *** 的本地 Service Fabric 无法正常工作
启动 Service Fabric 群集时出错 (v 1.5.175)