🔥自研 Servlet 容器百万次压测轻松超越 Undertow/Tomcat
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/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Skyeye 云 v3.15.2 发布,VUE 版本 Skyeye 云
Skyeye 云智能制造,采用 Springboot + winUI 的低代码平台、移动端采用 UNI-APP。包含 30 多个应用模块、50 多种电子流程,CRM、PM、ERP、MES、ADM、EHR、笔记、知识库、项目、门店、商城、财务、多班次考勤、薪资、招聘、云售后、论坛、公告、问卷、报表设计、工作流、日程、云盘等全面管理,实现智能制造行业一体化管理。实现管理流程 “客户关系 -> 线上 / 线下报价 -> 销售报价 -> 销售合同 -> 生产计划 -> 商品设计 -> 采购 -> 加工制造 -> 入库 -> 发货 -> 售后服务” 的高效运作,同时实现企业员工的管理以及内部运作的流程操作,完善了员工从 “入职 -> 培训 -> 转正 -> 办公 -> 离职” 等多项功能。 常见问题 开发文档 Skyeye 云【源代码】针对 {星球用户} 开源。拿到源码后可进行学习、毕设、企业等使用。 Skyeye 云智能制造 v3.15.2 发布,发布内容如下: Skyeye 云已加入 Dromara 社区 ...
- 下一篇
MyBatis-Flex v1.10.4 发布,一个优雅的 MyBatis 增强框架
MyBatis-Flex: 一个优雅的 MyBatis 增强框架 特征 1、很轻量 MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。 2、只增强 MyBatis-Flex 支持 CRUD、分页查询、多表查询、批量操作,但不丢失 MyBatis 原有的任何功能。 3、高性能 MyBatis-Flex 采用独特的技术架构、相比许多同类框架,MyBatis-Flex 的在增删改查等方面的性能均超越其 5~10 倍或以上。 4、更灵动 MyBatis-Flex 支持多主键、多表查询、逻辑删除、乐观锁、数据脱敏、数据加密、多数据源、分库分表、字段权限、 字段加密、多租户、事务管理、SQL 审计... 等等等等。 这一切,免费且灵动。 MyBatis-Flex v1.10.1~1.10.4 更新细节如下: 新增:添加了duckdb 数据库支持,感谢 @PTmore 优化:进一步优化 mybatis-flex-solon-plugin 插件,感谢 @noear_admin 优化:优化 mybatis-flex-solon-plugin 插件,感谢 @noear_...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Thymeleaf,官方推荐html解决方案