请教下各位jetty在什么场景下适合使用?

近期看到一个基于node的前后端分离方案,别人是这样做的:nodejs做前端渲染,然后通过REST接口调用后端java的业务逻辑(都是独立部署的服务器)。它这里java的业务逻辑是部署在jetty上。我想请教下各位,这种方案有什么好处吗?

我自己的理解是node和java之间采用的是长链接,而jetty在这方面相对tomcat有优势。不知道各位怎么看,大家都在什么场合会用jetty?

阅读 5.9k
4 个回答

开发的时候用,因为启动很快
有点跑题了?

jetty,tomcat都称之为应用服务器。但是jetty提供了两种方式启动。
一种是嵌入式,也就是通过自己编写代码启动一个jetty。
另一种部署式,也就是tomcat一样,将一个war包部署到jetty中。
因为有了嵌入式部署,所以灵活性更好,你的代码部署就不需要依赖运维在各个环境中部署一个tomcat。
简单的说了,多了一种方式,给了开发者更多的选择。
当然jetty出来比tomcat晚,所以在性能上,架构实现上比tomcat相对好一点。

至于你问题中提到的方案不过是用了一些新技术(nodejs)完全剥离了前后端,可能开发效率上更高。

不知道你说的长连接是WebSocket还是Comet还是HTTP Keep-Alive。无论是Jetty还是Tomcat对这三者都是支持的。性能方面:
WebSocket、HTTP Keep-Alive都是业界标准,两者不会存在太大的性能差异;
Comet的话Jetty和Tomcat的API是不一样的,因为没有业界的统一标准,但是性能上个人觉得也不会有太大差异,因为二者都支持NIO。

至于二者的选择,可能更多还是个人习惯问题(比如我个人就是喜欢Jetty),或者公司的规范什么的。

感觉上面几位的回答都不太满意,这里说一下吧。

第一点,在对包大小有要求的时候。jetty的裁剪性做得更好,比如不想要某个模块,直接不要就可以了,但是很多服务器的可裁剪的最小内核就很大。

第二点,在想修改服务器源码的时候。jetty因为可以嵌入式的运行,所以你可以更好的控制服务器的执行流程。不过对个人的技术水平还是有一些要求的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题