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