热门web容器Tomcat、Jetty、 GlassFish、WildFly对比
在文章《 Drools规则引擎Business Central Workbench版本变更》中我们了解到Drools规则引擎的workbench最新版本只支持WildFly应用服务器。那么,这篇文章就带大家了解一下,目前市面上主流的java web应用服务器。
tomcat
使用java编程的人基本上都使用过tomcat来部署应用,因为它已经占到了所有Java应用服务器部署的60%。而Tomcat是Apache Software Foundation开发的与Java Web应用程序一起使用的最流行的应用程序服务器。
实际上,Tomcat没有实现Java EE应用程序服务器所需的所有功能。Tomcat的准确来说是“web服务器”或“servlet容器”。使用时只需将它们作为应用程序中的其他第三方依赖项包含在内。
Tomcat已经非常成熟,文档齐全,也是使用最广泛的Java应用程序服务器。
Jetty
Jetty是另一个应用程序服务器(由Eclipse Foundation开发),像Tomcat一样它缺乏对许多Java EE功能的支持,也同样可以通过添加其他第三方依赖项来使用大多数功能。简单来讲Jetty就是一个开源的HTTP服务器和Servlet引擎,它可以为JSP和Servlet提供运行时环境。
虽然Jetty的市场份额远不及Tomcat的市场份额,但它仍然广泛应用于行业。它的两个主要卖点是紧凑和占地面积小。两者都使Jetty非常适合受限环境和嵌入其他产品。
Jetty的特点如下:
- 异步的Servlet,支持更高的并发量
- 模块化的设计,更灵活,更容易定制,也意味着更高的资源利用率
- 在面对大量长连接的业务场景下,Jetty 默认采用的NIO模型是更好的选择
- 将jetty嵌入到应用中,使一个普通应用可以快速支持http服务
Jetty与Tomcat的对比:
- Jetty比较容易贴合第三方框架,比如你可以直接用Spring配置一个Jetty服务器。
- 直接可以将Jetty作为提供HTTP服务的组件,嵌入到应用中。
- Jetty是面向Handler的架构,而Tomcat是面向容器的架构。
- Jetty默认采用NIO技术,而Tomcat默认是BIO。
- Jetty高度模块化,可以很灵活的管理拓展组件,而 Tomcat 对其他组件的管理则相对困难。
GlassFish
GlassFish是由Oracle开发的功能齐全且经过认证的Java EE应用服务器。GlassFish比Tomcat或Jetty更重量级,并且可以说,操作起来有点困难。
GlassFish不仅仅是一个通用的Java EE应用服务器,它是Java EE标准的参考实现。这意味着它用于展示Java EE功能,它得到了定义Java EE标准的贡献。因此,GlassFish将始终首先支持最新的Java EE功能。
缺点是缺少商业支持。
WildFly
WildFly,以前称为JBoss Application Server,由红帽(Red Hat)开发,是另一个功能齐全且经过认证的应用服务器,是一个开源的基于JavaEE的轻量级应用服务器。
Wildfly遵循LGPL2.1许可,可以在任何商业应用中免费使用。WildFly是一个灵活的、轻量的、强大管理能力的应用程序服务器。Wildfly是一个管理EJB的容器和服务器,但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。
WildFly相对于GlassFish的最大优势是Red Hat提供了从WildFly到其商业支持的应用服务器JBoss企业应用程序平台的简单迁移路径。您可以立即使用WildFly,如果需要可以快速迁移到JBoss EAP,并获得商业支持。
WildFly的特点如下:
- 无与伦比的速度:快速启动,无限的网络性能和可扩展性。
- 非常的轻量级:瘦内存管理,WildFly采用积极的方式进行内存管理,使用了基本运行时服务以最小化堆的分配。
- 可定插拔:WildFly的架构基于可插拔子系统,该功能全部由配置文件来控制,配置文件中有不同的子系统块模块。要移除wildfly子系统模块,您只需删除配置文件中的配置。
- 强大的管理功能:wildfly的配置文件是集中,统一以及以用户为中心的,而不是任意的发送,在服务器端疯狂的修改。
改如何选择应用服务器
这要因项目而异。
如果不需要大量的Java EE支持,那么通常大家选择的tomcat是最好的选择,基本上属于行业标准,文档和资料非常齐全。
如果考虑的使用空间的大小,或者说受使用空间的限制,则可考虑jetty,它更加灵巧。
如果需要大量Java EE的支持,同时所需要的功能又不能作为第三方插件来使用,则可考虑WildFly。
回归Drools workbench
其实使用过基于tomcat版本的workbench war的朋友可能都了解到,基于tomcat来部署workbench需要绕很多弯儿,需要自己添加很多依赖插件。这可能也是官方停用tomcat版本支持的原因之一吧,更重要的是没有相关开源者来共享该版本的内容。
相关技术视频
QQ技术交流2群:715840230
CSDN学院:《Drools7规则引擎进阶教程》
CSDN学院:《Drools7规则引擎入门教程》
CSDN学院:《Drools7系列优惠套餐》
《Drools规则引擎基础+Workbench实战视频教程套餐》
参考文章:
https://blog.csdn.net/qq_36522306/article/details/80699391
https://blog.csdn.net/qq_24501105/article/details/84455056
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接