为负载很重的服务器选择Java Restful框架

时间:2011-05-30 09:06:24

标签: java rest load

我正在试图找出哪个Java Restful框架是最适合的重载身份管理器服务器。 有人为Restful框架运行负载测试并且愿意分享结论吗?

非常感谢!

1 个答案:

答案 0 :(得分:2)

好问题!您可能会发现框架选择不是性能/可伸缩性的主要决定因素。我们使用Restlet,基于前同事的强烈建议,该同事用它来开发Overstock.com(一个非常大的电子商务网站)。它具有良好的性能,适用于Overstock.com。但是我们没有进行任何头对头的比较。

REST的一个重要推动因素是其可扩展性,分布式系统的质量,您可以通过按比例增加系统大小和成本来适应使用量的增加。缓存是实现可伸缩性的关键技术。因此,如果您允许缓存您的表示,那么大部分负载实际上不是由身份管理系统承担,而是由下游的Web缓存承担。这与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作为开始。