Reliable Actor可以处理多少次读操作而没有问题?

时间:2016-07-25 10:15:13

标签: azure actor azure-service-fabric

目标:假装,我在基于Azure Service Fabric的Web应用程序上有一个非常受欢迎的页面(假设每5分钟有100万人)。我想在数据层和前端API层之间建立某种缓存层。

解决方案:为此,我选择一个Reliable Actor只执行一个只读操作的方法:GetFrequentlyAskedPage()。此Actor具有易失性类型,并且将使用垃圾收集器替换5分钟超时。

问题:

  1. 在放下之前,Actor可以处理多少次读操作?
  2. 我应该在这种情况下使用“从辅助副本读取”选项吗?
  3. 或许我在推理中完全错了,应该改变实施方式。

1 个答案:

答案 0 :(得分:5)

我不建议将actor用作缓存。 Actor实例强制单线程基于回合的访问,这意味着actor实例一次只能处理一个请求。这显然不会像缓存那样表现良好。有关详细信息,请参阅此处:https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-actors-introduction/

相反,我建议使用带有可靠字典的有状态可靠服务来缓存数据,或者更好的是,使用有状态可靠服务作为数据层,在这种情况下你不要根本不需要这个缓存。