您现在的位置是:首页 > 文章详情

🔥自研 Servlet 容器百万次压测轻松超越 Undertow/Tomcat

日期:2024-12-30点击:106

1、smart-servlet 简介

smart-servlet 是一个基于 Jakarta Servlet 6.1 的轻量级 Servlet 容器,适用于 Java 17+ 环境。

产品特色

  • 国产血统:全球首款全栈核心技术自研的国产 Servlet 容器。

  • 性能优越:搭载最新版通信微内核(smart-socket)和 Web 服务平台(FEAT)。

  • 安全可靠:严格遵循协议规范;支持加密传输方式。

  • 极致轻量:发行包仅 1MB。

  • 简洁易用:支持 War 包、springboot、maven-plugin 等多种运行模式,使用体验 100%兼容 Tomcat

目标用户

  • 有着「信创需求」的企业用户。

  • 对服务并发能力要求高的企业用户。

  • 想要研究 servlet 技术的个人开发者。

性能测试报告

2、 版本更新

自此版本起,samrt-servlet 将底层支撑模块由 samrt-http 迁移至全新的平台:FEAT。未来将由 FEAT 为 smart-servlet 提供安全可靠、性能卓越、资源节省的 Web 服务。

随着越来越多的用户关注并试用 smart-servlet,暴露了部分共性问题在本次发布中得以优化。其中占比较多是某些用户在 javax.servlet 项目中引用 smart-servlet 导致服务无法正常使用,而 smart-servlet 目前适配的是 jakarta.servlet 规范。

为便于用户自主定位问题,smart-servlet 在启动时对部署的 Servlet 容器进行探测。若发现引用了 javax.servlet 依赖会给出如下提示:

springboot 工程的提示信息为:

更新内容:

  • 🚀移除 smart-http 依赖,切换为 Feat。

  • 🚀新增 javax.servlet 规范检测提示功能

  • 🚀适配 springboot 自定义端口号和 SSL 配置

  • 🛠️优化 HttpServletRequest#getCharacterEncoding 实现规范。

  • 🛠️优化 HttpServletRequest#getContentType 实现规范。

  • 🛠️优化 HttpServletRequest#getWriter 实现规范。

  • 🛠️优化 HttpServletRequest#setLocale 实现规范。

  • 🛠️ ServletOutputStream 默认缓冲区调整为8k。

  • 🐛修复未指定响应编码情况下的中文乱码问题。

3、快速上手

我们提供了三种方式启用 smart-servlet,您可根据实际情况选择其中适用的一种。

方式一:maven 插件

这是一种类似:tomcat-maven-plugin的使用方式,通常应用于 Java Web 工程的本地开发环境。集成该插件只需在 pom.xml 中加入以下代码,便可以在 IDE 中启动 servlet 服务。

 <build>     <plugins>         <plugin>             <groupId>tech.smartboot.servlet</groupId>             <artifactId>smart-servlet-maven-plugin</artifactId>             <version>{最新版本}</version>             <configuration>                 <port>8080</port>                 <path>/portal</path>             </configuration>         </plugin>     </plugins> </build> 

插件的版本建议采用最新版本,另外主要的配置项包括:

  • port:servlet服务启动的监听端口

  • path:Servlet容器上下文路径,即 ContextPath,通常以/表示。当然也支持自定义,但必须以/开头 完成配置后在控制台输入:mvn package smart-servlet:run即可。

方式二:smart-servlet-spring-boot-starter

用过 springboot 的 spring-boot-starter-tomcat 或者 spring-boot-starter-undertow 的朋友应该对此不陌生。

smart-servlet-spring-boot-starter 本质上就是 smart-servlet 对 spring-boot-starter-web 的另一种适配。

只需按照以下方式调整 springboot 工程中 pom.xml 文件的配置,便可将 springboot 的默认 Servlet 容器替换成 smart-servlet。

 <dependencys>     <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-web</artifactId>         <exclusions>             <!-- Exclude the Tomcat dependency -->             <exclusion>                 <groupId>org.springframework.boot</groupId>                 <artifactId>spring-boot-starter-tomcat</artifactId>             </exclusion>         </exclusions>     </dependency>     <!-- Use smart-servlet instead -->     <dependency>         <groupId>tech.smartboot.servlet</groupId>         <artifactId>smart-servlet-spring-boot-starter</artifactId>         <version>{最新版本}</version><!--最新版本 -->     </dependency> </dependencys> 

方式三:发行包

发行包适用于 War 包的部署方式,也是生产环境中常用的一种形式。

下载地址:https://smartboot.tech/smart-servlet/guides/release_note/

原文链接:https://www.oschina.net/news/327144/smart-servlet-updated
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章