目标:假装,我在基于Azure Service Fabric的Web应用程序上有一个非常受欢迎的页面(假设每5分钟有100万人)。我想在数据层和前端API层之间建立某种缓存层。
解决方案:为此,我选择一个Reliable Actor只执行一个只读操作的方法:GetFrequentlyAskedPage()
。此Actor具有易失性类型,并且将使用垃圾收集器替换5分钟超时。
问题:
答案 0 :(得分:5)
我不建议将actor用作缓存。 Actor实例强制单线程基于回合的访问,这意味着actor实例一次只能处理一个请求。这显然不会像缓存那样表现良好。有关详细信息,请参阅此处:https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-actors-introduction/
相反,我建议使用带有可靠字典的有状态可靠服务来缓存数据,或者更好的是,使用有状态可靠服务作为数据层,在这种情况下你不要根本不需要这个缓存。