c# - Service Fabric - 在 StateManager 中存储一个 List<T> 以获得可靠的参与者

标签 c# azure-service-fabric service-fabric-stateful service-fabric-actor

我的一个用例需要存储来自单个事件生成器的“开始”和“停止”事件之间的所有事件。我们将使用可靠的参与者来处理此数据并在收到“停止”事件后进行汇总。存储开始和停止之间所有事件的直接方法是在类型列表中。

// Init
var evts = new List<DataEvent>();
this.StateManager.TryAddStateAsync("events", evts);

// Fetch, add and save
var evts = this.StateManager.TryGetStateAsync<List<DataEvent>>("events");
evts.Add(newEvent);
this.StateManager.TrySaveStateAsync("events", evts);

根据我的理解,每次获取现有列表、添加新项目并存储新的更新列表时,StateManager 都会对整个数组进行序列化/反序列化。我的理解正确吗?

什么是该解决方案的良好替代方案?

最佳答案

是的,你的理解是正确的。最好的方法是按原样对待状态管理器 - 键值存储,并通过可以组合的键对不同的流进行分区。

关于c# - Service Fabric - 在 StateManager 中存储一个 List<T> 以获得可靠的参与者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42474553/

相关文章:

c# - 欧文阶段标记

c# - 你如何遍历多维数组?

azure - 如何选择正确的Service Fabric可靠性层?

c# - 在 Response.Redirect 之前显示 ScriptManager.RegisterStartupScript

c# - Xamarin 窗体可绑定(bind)网格

azure - 如何在 Azure Service Fabric 中查看跟踪日志记录

c# - Service Fabric 无法加载程序集 c#

azure - 动态服务创建以分配负载

c# - 如何结合 Service Fabric Remoting 进行分区

azure-service-fabric - Service Fabric 可靠集合性能