2010-07-22 58 views
2

我目前正在開發將在Microsoft Azure上運行的WCF REST Web服務。爲了限制每個IP地址的請求數量以防止濫用,我目前使用ASP.NET緩存存儲IP和超時。WCF服務:ASP.NET緩存或SQL

此方法效果很好,但自從與天青muliple VM實例不共享一個緩存,請求可以在不同的虛擬機之間進行分割,如果一個虛擬機被複位清零。

我不認爲這是一個主要問題,但由於我已經將用戶信息存儲在SQL Azure數據庫中並使用WCF服務對用戶進行身份驗證,我最好使用數據庫而不是ASP.NET緩存嗎?

任何愛人都會很有幫助。

回答

2

如何使用混合方法?除了將其放入緩存中之外,您還可以將其存儲到SQL數據庫中。然後,當它們碰到不同的實例時,它將隨着存儲在數據庫中的時間被放入緩存中。儘量減少往返數據庫的次數,並將信息提供給所有服務器。

+0

感謝您的想法。 – Bram 2010-07-22 02:31:23

1

您必須決定閾值何時可接受。
來自緩存的數據會更快,但存在風險並不代表實際當前數據。在從數據庫中獲取數據的地方是新鮮的,但是需要時間才能訪問數據庫並返回。

+0

感謝您的幫助。 – Bram 2010-07-22 02:31:43