Reliable Actor 可以毫无问题地处理多少读取操作?

How many read operations can be handled by Reliable Actor with no problems?

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

解决方案: 为此,我选择了一个 Reliable Actor 只执行一种方法进行只读操作:GetFrequentlyAskedPage()。此 Actor 具有 volatile 类型和 5 分钟超时,将被垃圾收集器替换。

问题:

  1. Actor 在放下之前可以处理多少读取操作?
  2. 在这种情况下我应该为那个 Actor 使用 "read from secondary replicas" 选项吗?
  3. 或者我的推理完全错误,应该改变实现方式。

我不推荐使用 actor 作为缓存。 Actor 实例强制单线程轮流访问,这意味着一个 actor 实例一次只能服务一个请求。这显然不会作为缓存表现良好。有关详细信息,请参阅此处:https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-actors-introduction/

相反,我建议使用有状态的 Reliable Service 和 Reliable Dictionary 来缓存数据,或者更好的是,使用有状态的 Reliable Service 作为你的数据层,在这种情况下你根本不需要这个缓存。