2011-05-30 21 views

回答

2

偉大的問題!您可能會發現,框架選擇不是性能/可伸縮性的主要決定因素。我們使用Restlet,這是基於一位前同事非常強烈的建議,他曾用它來開發Overstock.com(一個非常大的電子商務網站)。它具有良好的性能,並且對於Overstock.com工作良好。但我們並沒有做任何頭腦比較。

REST的一個重要驅動因素是它的可擴展性,這是分佈式系統的一種質量,您可以隨着系統大小和成本的成比例增加而適應增加的使用。緩存是實現可伸縮性的關鍵技術。因此,如果您允許您的表示被緩存,則大部分負載實際上不由身份管理系統承擔,而是由下游網絡緩存承擔。這與REST框架無關。

您的後端數據庫技術可能是系統性能和擴展性的另一個主要因素。調優數據庫系統並優化查詢可能會在這裏得到回報。還要考慮添加數據庫緩存層是否有意義(例如,OpenSymphony)。

我們發現序列化成本對我們來說非常重要。如果我們使用Kryo或Smile二進制序列化,總體請求率最好。如果您需要文本序列化,我們發現Jackson JSON序列化程序比XStream XML序列化程序快得多,使總體請求速率翻了一番。這可能是一個需要考慮的領域。

所以,如果你還沒有這樣做,從擴展的角度來檢查你的系統。請參閱http://www.highscalability.com,Richardson和Ruby的Restful Web Services(O'Reilly),Cal Henderson的Building Scalable Web Sites和Theo Schlossnagle的Scalable Internet Architectures作爲開始。