2016-07-25 40 views
3

目標:假裝,我在Azure服務結構的Web應用程序中有一個非常受歡迎的頁面(假設每5分鐘有100萬人)。我想在數據層和前端API層之間建立某種緩存層。Reliable Actor可以處理多少個讀取操作而沒有問題?

解決方案:爲此,我選擇一個可靠的演員表演只有一個只讀操作方法:GetFrequentlyAskedPage()。這個Actor有一個易失性類型和5分鐘的超時時間以替換爲垃圾收集器。

問題:

  1. 多少讀操作可以由演員才放下來處理?
  2. 我應該在這種情況下使用「從輔助副本中讀取」選項嗎?
  3. 或者我的推理完全錯誤,應該改變實施方式。

回答

5

我不會推薦使用actors作爲緩存。 Actor實例強制執行單線程基於回合的訪問,這意味着一個actor實例一次只能處理一個請求。這顯然不能很好地作爲緩存。在這裏看到更多的信息:https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-actors-introduction/

相反,我會建議使用有狀態的可靠的服務提供了可靠的字典來緩存數據,或者更好的是,使用狀態的可靠服務作爲數據層,在這種情況下,你不」根本不需要這個緩存。

+0

如果我爲此使用可靠服務,是否看起來像我爲Reliable Actor描述的模型一樣?我的意思是,我在Reliable Dictionary中有「流行」的項目,在5分鐘內有100萬人從字典中獲得這個元素。簡單的例子:人們在看的非常流行的照片。 – matterai

+1

是的,區別在於Reliable Dictionary是爲此目的而設計的,並且支持單行上的多個併發讀取。 Actor實例不。 –

相關問題