smart-servlet v0.1.2 发布,开源人假期不打烊

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

内容简介:smart-servlet 是一款实现了Servlet 3.1规范,支持多应用隔离部署的的 Web 容器。除此之外,smart-servlet 还是一款插件化容器,基于内置的沙箱环境确保 smart-servlet 拥有最精简的运行能力,用户还可以通过自定...

smart-servlet 是一款实现了Servlet 3.1规范,支持多应用隔离部署的的 Web 容器。除此之外,smart-servlet 还是一款插件化容器,基于内置的沙箱环境确保 smart-servlet 拥有最精简的运行能力,用户还可以通过自定义插件扩展容器的服务能力。

smart-servlet v0.1.2 发布,开源人假期不打烊

开发这个项目的过程中会听到一些疑惑的声音:为什么要去开发 servlet 容器?现在还有人用 servlet 吗?

的确,都2021年了,10年前还是香饽饽的技术如今看上去有些过时了。但我认为这只是表象,至少目前几乎绝大多数的 Java 服务都还运行在 Tomcat、Undertow 等服务器上,依托的还是Servlet技术。只是这些服务器的性能瓶颈比较明显,以致于很多场景下被其他语言的解决方案所替代。

而 smart-servlet 要做的就是突破这一瓶颈,成为一款低延迟又具备高并发能力的服务器。

更新内容

本次发布的版本在功能方面相较之前没有太多变化,更多的在于对这个项目发展方向作了一些思考,同时代码设计进行相应的调整。

1. 关于插件的思考

smart-servlet v0.1.2 发布,开源人假期不打烊

曾经在做业务线开发时,经常出现其他团队提供的 api 包所依赖的三方包与自身系统冲突的情况。即使让对方在pom.xml中加一个简单的<scope>provided</scope>都是一种奢望,更无法期待有某位架构师能站出来统一公司的三方包管理。不得不埋头逐个排除,这种“不痛不痒”的小问题会持续困扰着一线开发。

最近花了一周时间去思考 Plugins 模块该如何设计。当未来更多的人参与进来提供丰富的插件包,smart-servlet 如何进行统筹管理,确保这些插件相互之间不干扰,毕竟包冲突是所有大型系统难解的痛。

为了避免这类问题发生在 smart-servlet 中,后续我们会用类加载器完全隔离插件之间的依赖。先后调研了 sofaark 和 springboot loader 的 fat jar 隔离机制,最终决定选择后者。

2. 关于架构的调整

这个版本的架构图较之前版本有了一些调整,原先的 ContainerRuntime 变成了ApplicationRuntime,ServletHTTPServlet 调整成了 ContainerRuntime。这不是简单的重命名,更多的是考虑定义的合理性,架构关系的设计和命名是否是相契合的。

除此之外,我理想中的 smart-servlet 应该是更具包容性。用户可以自由选择哪些请求走 Servlet 容器,哪些请求直接由 smart-http 作处理(如下代码)。彻底告别用 nginx 作反向代理的架构设计,这样的开发体验不香吗。

new HttpHandle() {
    @Override
    public void doHandle(HttpRequest request, HttpResponse response) {
        if(isStaticRequest(request)){
            //加载本地资源文件
            ...
            }else{
            //处理Servlet请求
            containerRuntime.doHandle(request, response);
        }
    }
}

3. 其他更新内容

1、新增支持加载 HttpSessionListener 监听器。

2、将路由匹配算法定义为 工具PathMatcherUtil;修复默认 ServletContext 空路径场景下的路由匹配 bug。

3、调整过滤器的执行逻辑。

4、优化输出流缓冲区设计,性能快到不敢相信。

5、优化资源文件加载策略,路径查找失败时尝试从classpath中获取。

6、优化类加载器的使用,Servlet 容器最不好伺候的大爷。

最后

最后祝大家新年快乐吧,并希望这个项目在 2021 年有个好的发展。开源不易,且行且珍惜!


以上所述就是小编给大家介绍的《smart-servlet v0.1.2 发布,开源人假期不打烊》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

可视化未来

可视化未来

[美] 埃雷兹·艾登、[法] 让-巴蒂斯特·米歇尔 / 王彤彤、沈华伟、程学旗 / 浙江人民出版社 / 2015-9 / 54.90元

科学的传播速度有多快?今时今日我们很少谈论上帝了吗?人们什么时候开始用“having sex” 而不用“making love”? 史上的人是在哪岁成名的?语法的变化速度到底有多快?哪些作家被纳粹审查得最彻底? “donut” 什么时候开始取代“doughnut”? 我 们能否预测人类未来?比尔·克林顿和花椰菜哪个更出名? 《可视化未来》一书的两位作者通过与“谷歌图书”的合作,得以有机会研究......一起来看看 《可视化未来》 这本书的介绍吧!

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

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具