smart-servlet v0.1.0 首发,筹备了 3 年的开源 Servlet 服务器

栏目: 软件资讯 · 发布时间: 3年前

内容简介:smart-servlet 是一款实现了 Servlet 3.1 规范,支持多应用隔离部署的的 Web 服务器。尽管开源时长仅 1 个月,还有着诸多不成熟,但希望未来能成为如同 Tomcat、Undertow 般优秀的项目。为了这个目标,smart-ser...

smart-servlet 是一款实现了 Servlet 3.1 规范,支持多应用隔离部署的的 Web 服务器。尽管开源时长仅 1 个月,还有着诸多不成熟,但希望未来能成为如同 Tomcat、Undertow 般优秀的项目。为了这个目标,smart-servlet 准备了三年:

  • 3年前,开源 AIO 通信框架 smart-socket。为从事通信开发的朋友提供了除 netty、mina 之外的另一个选择,同时也为 smart-servlet 开发迈出了第一步。
  • 2年前,开源 http 服务器 smart-http。不仅支持了 http 1.0/1.1、websocket 协议,还在 TFB 评测中表现优异。
  • 1个月前,开源 smart-servlet。在 smart-http 的基础上实现 servlet 3.1 规范。

项目特色

  • 零学习成本,素未谋面,却已相知。保留用户原有的 Tomcat、Undertow 使用习惯。
  • 朴实无华,用最初级的设计手法打造专业级服务器。
  • 实现 Servlet 核心规范:Request、Response、Session、Cookie、Dispatcher、ServletContext。
  • 插件化设计,自由 DIY 服务器。
  • 延续一贯的极简、易用、高性能设计风格。
  • 开箱即用,运行程序包、maven本地开发/调试插件、springboot starter 一应俱全,满足你的开发、部署等各项需求。

架构设计

smart-servlet 在 smart-http 的基础之上,通过继承 HttpHandle 实现了 Servlet 规范。这意味着任何 smart-http 服务都可以通过单独引入 smart-servlet 核心包的方式,将普通的 http 应用改造成 servlet 应用,而且这个成本是极低的。

smart-servlet v0.1.0 首发,筹备了 3 年的开源 Servlet 服务器

示例演示

为了验证 smart-servlet 对 servlet 3.1 实现的规范性,我们的演示示例直接移植了 Tomcat 安装包中自带的工程:docs、examples。其中examples 工程依赖需要依赖 tomcat 自身的一些 jar 包,故我们将 ${TOMCAT_HOME}/lib 目录下的 jar 包拷贝到了 examples/WEB-INF/lib 目录下。

smart-servlet v0.1.0 首发,筹备了 3 年的开源 Servlet 服务器

接下来对工程进行编译并运行 org.smartboot.servlet.starter.Bootstrap ,若控制台打印如下信息说明启动成功。打开浏览器访问:http://127.0.0.1:8080/examples 便可体验 smart-servlet 。

smart-servlet v0.1.0 首发,筹备了 3 年的开源 Servlet 服务器

非正式评测

对于这款 servlet 容器,用户可能更关心它相较于 tomcat 的优势,为此我们做了一次简单的评测。特别说明:这次评测并不正规,一方面 smart-servlet 既当裁判又当选手本就不公平;另一方面现阶段 smart-servlet 还不够成熟,不具备比较的条件。所以这里提供的非正式评测结果权当 smart-servlet 的一种宣传方式。

我们采用的测试方式为:

用 ab 压测 examples 工程中的示例请求:http://127.0.0.1:8080/examples/servlets/servlet/HelloWorldExample,最终的表现结果如下:

  • smart-servlet 性能表现结果比 tomcat 高出 50%~100 以上 。
  • tomcat 压测期间 CPU 使用率高于 40%,smart-servlet 压测时低于 40% 。
  • tomcat 线程数随并发数递增,上限 200;smart-servlet 线程数固定,不受并发数影响 。
  • 内存开销两者基本持平。

详细过程见:https://smartboot.gitee.io/book/smart-servlet/performance/test-data.html

最后

后面我们会保持稳定的开发节奏,持续打磨 servlet 规范的实现细节,争取早日让 smart-servlet 运行到生产环境中。同时非常欢迎社区中的朋友反馈改进建议,或者参与到这个项目的开发中来,一起见证它的成长。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Linux命令行与shell脚本编程大全 第3版

Linux命令行与shell脚本编程大全 第3版

[美]布鲁姆,布雷斯纳汉 / 门佳、武海峰 / 人民邮电出版社 / 2016-8-1 / CNY 109.00

这是一本关于Linux命令行与shell脚本编程的全方位教程,主要包括四大部分:Linux命令行,shell脚本编程基础,高级shell脚本编程,如何创建实用的shell脚本。本书针对Linux系统的最新特性进行了全面更新,不仅涵盖了详尽的动手教程和现实世界中的实用信息,还提供了与所学内容相关的参考信息和背景资料。通过本书的学习,你将轻松写出自己的shell脚本。一起来看看 《Linux命令行与shell脚本编程大全 第3版》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具