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

mat*_*rai 3 azure actor azure-service-fabric

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

解决方案:为此,我选择一个Reliable Actor只执行一个只读操作的方法:GetFrequentlyAskedPage().这个Actor有一个volatile类型,5分钟超时被Garbage Collector取代.

问题:

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

Vac*_*cek 5

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

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