Service Fabric Actor State:在持久模式下从何处读取状态?

问题描述 投票:0回答:1

在持久模式下,服务结构参与者状态保留在磁盘上并复制到其他节点,这在文档中很清楚。我的问题是在参与者整个生命周期中,连续查询参与者状态,是从磁盘读取每个调用还是在第一次调用磁盘后从内存中拉出每个调用?

state azure-service-fabric actor service-fabric-actor azure-service-fabric-actor
1个回答
1
投票

SF团队的Vaclav提供了答案here

将数据存储在服务中的组件称为状态 提供者。状态提供程序只能是内存中的,也可以是内存+本地的 磁盘。通过actor服务获得的默认状态提供程序是 内存+本地磁盘,但它仅将热数据保留在内存中,因此您的 存储要求不受内存限制。与可靠的对比 集合状态提供程序,当前同时存储所有数据 内存中和本地磁盘上,尽管在将来的版本中 可以选择仅将热数据保留在内存中,并将其余数据卸载到 本地磁盘。

因此,活动Actor的数据位于内存中,非活动Actor的状态位于磁盘上。因此,根据两次呼叫之间的时间,可能会是。 (由于Actor的生命周期是由SF管理的。)彼此直接跟随的两个调用将从内存中获取数据。

© www.soinside.com 2019 - 2024. All rights reserved.