我們有一個非常簡單的AppFabric設置,其中有兩個客戶端 - 讓我們稱它們爲服務器A和服務器B.服務器A也是主導緩存主機,並且服務器A和B都啓用了本地緩存。我們希望能夠更新來自服務器B的項目,並在30秒內將該更改傳播到服務器A的本地緩存(例如)。AppFabric同步本地緩存
據我所知,似乎有越來越傳遞給客戶端的變化的兩種不同的方式:
- 在客戶端緩存設置超時驅逐項目每X秒。在該項目下一個請求會從主機緩存拿到項目,因爲在本地緩存中沒有該項目
- 啓用通知和有效訂閱從緩存主機
獲得更新。如果我的要求是要在30秒內獲得所有客戶端的更新,那麼在本地高速緩存上設置超過30秒的超時時間似乎是使用上述選項#1時唯一的選擇。由於緩存的大小,這將無法有效驅逐所有的緩存(其中99.99%可能在最近30秒內沒有改變)。
我認爲我們需要實現的是上面的選項#2,但我不確定我是否理解這是如何工作的。我已經閱讀了所有的msdn文檔(http://msdn.microsoft.com/en-us/library/ee808091.aspx)並查看了一些示例,但是我仍然不清楚是否真的有必要編寫自定義代碼,或者僅當您想要進行額外處理時才這樣做。
所以我的問題是:是否有必要添加代碼到現有的應用程序,如果想通過通知傳播到所有本地緩存更新,或者是回調功能只是一個額外的處理方式或代碼,如果通知被推倒?我可以只啓用通知並在客戶端設置適當的輪詢間隔,而且事情會正常工作嗎?
它似乎是默認行爲(啓用通知時)應該是在每個輪詢間隔自動下拉新鮮項目。