我正在研究iOS應用程序將使用WCF服務的項目。網絡服務器在任何特定時間點的點擊次數大約爲900-1000次。每個請求可能需要1-2秒才能完成。預計每24/7每秒都會有相同數量的請求。WCF - 解決方案體系結構
這是我的計劃:
- 寫WCF RESTful服務(實例上下文模式將percall)。
- 請求/響應將在Json中。
- 有一些信息需要在服務器中保存 - 這些信息實際上是從另一個遠程系統接收的 - 它在所有請求之間共享。由於使用數據庫可能不是一個好主意(響應時間非常重要 - 客戶可以等待最長時間爲2秒),將它保存在服務器內存中會更好嗎(比如靜態字典 - 假設這個字典是一個收集150000個對象 - 每個對象由5-7個字符串類型及其鍵組成)。我知道,這是不穩定的!
- 每個請求會產生一個新的線程(通過使用Threading.Timers)來做一些清理 - 這個線程也會做一些數據庫讀寫。
現在,如果稍後推出負載均衡器,那麼內存中存儲的對象不能在通過另一個節點路由的請求之間共享 - 任何想法?
我希望你的大師能夠通過在整個架構上拋出你的意見/建議,WCF節流,對象狀態持久等來幫助我。請提供一些關於所需硬件的指針。我們計劃使用Windows 2008 Enterprise Edition服務器,IIS和SQL Server 2008 Std版本數據庫。
添加更多t#3: 正如我所說的,我們從遠程系統獲得一些信息給服務。在託管WCF的Web服務器上,將安裝遠程系統的客戶端,並且WCF引用其中一個客戶端DLL以哈希表的形式獲取信息(該方法返回哈希表 - 約150000個對象將在這裏收集)。您是否建議將此信息寫入數據庫,並且到達該服務的iOS請求(每秒)會直接從數據庫中檢索此信息?如果它是靜態的,它會比直接從這個散列表中消耗更好嗎?
如果你引入負載平衡器,我會堅持一個無共享架構。 – 2012-02-09 16:34:30
我也會使用像Velocity這樣的緩存平臺,而不是自己滾動。 – 2012-02-09 16:35:04
請參閱http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts/ – 2012-02-09 17:26:26