springboot 嵌入式的web容器的的选择

springboot 嵌入式的web容器的的选择

springboot 默认内置tomcat

可以替换 undertow、jetty、netty

tomcat

tomcat 默认200最大线程

完整实现了JEE容器和serlet规范

tomcat6以后支持Jdk1.4的NIO

用于完整支持了javaee 因此比较笨重和重量级

很多高并发会替换成undertow

undertow

这个是红帽2012 开源出来的一个异步嵌入式容器

因为Red Hat 公司收购了 JBoss,undertow是属于JBoss社区

同样实现了Servlet 3.0 规范和云原生的支持更加完善

通常和webflux一起配合使用

支持异步IO

Jetty

这个是最早的web容器 1996发布第一个 http容器版本

2000 Jetty 3.0 支持Servlet 可以运行jsp和 Servlet

2004 Jetty 5.0 重大的架构改进和性能优化 成为社区明星之一

2010 Jetty 7.0 对 Servlet 3.0 规范的支持,并增强了对异步请求处理的能力

目前属于Eclipse 基金会 也是一个开源的java组织

netty

netty 是 JBoss Remoting开发之一开发出来的

2009 开源第一个版本

2011 Netty 3.0发布引入了一些重大的改进和新特性,如ChannelPipeline、ChannelHandler等概念

Netty 3.0是重要版本,奠定了其在网络编程领域的地位

2013 Netty 4.0发布,这是一个里程碑式的版本 ,完全重写的API和内部架构、成为Netty发展历程中的一个重要转折点

Netty 4.0 采用异步非阻塞IO模型、零拷贝技术、内存池技术、事件驱动和多路复用技术、性能调优和优化等手段,以及与硬件的紧密结合

以上四个方案不难看出

Jboss 作为EJB企业的应用的实力 netty、undertow

apache 和 eclipse 基金会的上面明显缺少对于高并发和大规模连接的网络应用场景的能力

以上方案中 undertow 、Jetty 、tomcat 开箱即用

但是 Netty 由于没有实现servlet 规范 因此和springmvc 不兼容

需要 配合 Spring Webflux 替换掉springmvc

如果仍然需使用 springmvc 则需要手动实现 HTTP 请求和响应,并将它们转发给 Spring MVC 控制器和服务。通过额外的代码来处理请求映射、参数解析、异常处理等。

本文来自博客园,作者:vx_guanchaoguo0,转载请注明原文链接:https://www.cnblogs.com/guanchaoguo/p/18150333

相关创作

金华火腿简介 金华火腿好吃吗→MAIGOO百科
365bet手机网址

金华火腿简介 金华火腿好吃吗→MAIGOO百科

📅 07-08 👁️ 2602
[中国男篮]国际篮联公布世预赛第二阶段赛程
365bet手机网址

[中国男篮]国际篮联公布世预赛第二阶段赛程

📅 07-10 👁️ 973