2011-05-30 42 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作为开始。