我正在研究一种需要高可伸缩性的RESTfull应用程序。我正在考虑基于Netty的RESTfull应用框架。我浏览了一些可用的选项,并试图获得他们可以提供的非阻塞实现。这里是我的发现:基于Netty的非阻塞REST框架
- rest.li - >仍然在基于Netty的NIO实现的实验阶段。所以,不准备生产。
- RESTEasy - >支持Netty 4.x的标准JBoss项目。但是,RESTEasy不是基于Netty的完整堆栈实现,而是Netty和RESTEasy之间的缓冲区交换。它没有考虑到Netty的优势。因此,基于Netty的框架的可扩展性并不像预期的那么高。
- Netty的-HTTP组件 - >另一种选择是Apache的骆驼集成度,同时使用了Netty-HTTP组件作为路由请求从豆暴露在服务的端点。我认为它与RESTEasy相同,只有Netty-http组件使用基于Netty的NIO功能,而系统的其余部分将使用旧的IO。我认为我不会在很大程度上提供帮助。
- RESTExpress - >它声称是基于Netty的RESTFull应用框架。但是,它既没有一个体面的社区,也没有可信赖的(因为它是非常新的),对于需要高度安全性的企业应用程序。
在得到上述发现之前,我想使用一些准备好的框架并使工作更快完成。
我知道这是一个基于观点的问题。但是,我仍然非常需要帮助,为我的应用程序选择正确的框架。如果万一,没有基于Netty的REST框架:在我的应用程序中使用基于Netty的低级NIO代码是否明智?任何帮助赞赏。提前致谢。
你可能会感到惊讶,BIO很多时候表现比NIO特别更好地为短请求的情况下(即没有保持活跃或网页套接字)。大多数REST客户端甚至REST通常都是短的请求。 –
使用NIO REST框架不会使您的应用程序具有神奇的可扩展性。让你的应用程序无状态并正确使用缓存标题是一个好的开始。 – eiden
@eiden我已经和Akka-Actors一起玩了远程功能,使它成为一个高度可扩展的分布式应用程序。我只是想摆脱Servlet-API的阻塞性质。我已经开始和Spray + Akka Actors一起玩。 –