我有一个有状态服务结构应用程序。在应用程序参数文件中,我将 PartitionCount 设置为 20
当我将服务部署到集群时,我得到 20 个分区,其中一些分区状态显示为“正在重新配置”,最后它们将发出警告状态,显示不健康的 evnet
Unhealthy event: SourceId='System.FM', Property='State', HealthState='Warning', ConsiderWarningAsError=false. Partition reconfiguration is taking longer than expected.
但是该分区内的副本运行状况显示为“正常”
分区处于“重新配置”状态时实际发生了什么? 为什么会出现这个错误?
最佳答案
有状态服务的重新配置是在 Service Fabric 在群集中调整副本时进行的。每当系统需要更改副本放置时都会发生这种情况,这可以是故障转移以确保机器停机或升级期间副本的可用性,或者用于资源平衡以确保整个集群的工作负载平衡 - 后者立即发生当您部署新服务时,系统必须找到放置副本的位置,然后平衡所有内容。
如果重新配置花费的时间比预期的时间长,则副本很可能没有响应更改角色或关闭操作(例如,您的服务代码没有响应 RunAsync 中的取消 token ),或者副本失败开始(例如,您的通信监听器代码在 OpenAsync 上引发异常)。
关于azure - Service Fabric 群集中的分区重新配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38875371/