速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

Jetty 9.3 庆祝 20 周年生日快乐,并增加 HTTP/2 支持

  • 2015-06-27
  • 本文字数:2004 字

    阅读完需:约 7 分钟

今年 6 月 12 日,Jetty 项目发布了旗舰性开源嵌入式应用服务器的 9.3 版,同时这一天也是该项目的 20 周年纪念日。此次发布的主要特性包括增加了对 HTTP/2 服务端(与客户端)支持、系统最低要求 Java 8,以及更多的 NIO 集成与完全重构的调度器。此外,该版本还移除了 SPDY 网络支持、并修复了自 Jetty 9.2.x 以来的 400 多个 Bug。

Jetty 的主开发者 Greg Wilkins 撰写了一篇博文,谈到了 Jetty 对 HTTP/2 的支持。在文章中,他介绍了如何在 Jetty 启动命令中轻松启用 HTTP/2 支持。

复制代码
$ java -jar $JETTY_HOME/start.jar --add-to-startd=http2,http2c

上述命令并不会创建或是开启新的连接器 / 端口,只是向端口 8080 与 8443 的既有连接器上增加了 HTTP/2 协议。大多数现代浏览器的最新版本都提供了对 HTTP/2 的支持。请访问 http://caniuse.com/#feat=http2 了解各个浏览器对 HTTP/2 的支持情况。

InfoQ 有幸采访到了 Greg Wilkins,请他谈谈 Jetty 这 20 年的发展历程。

InfoQ:恭喜你,Greg,我敢打赌你从来没有想到 Jetty 竟然能发展到今天,20 年的历程。

事实上,我一开始只是将其作为我所开发的一个问题追踪 Web 应用中的一个模块而已,从来没有想过有人会对它产生兴趣。但结果却是很多人都开始使用 Jetty,同时该 HTTP 服务器也成为了我主要的工作方向(要不我肯定还在开发那个问题追踪应用,也许后来成为 Atlassian 也不一定呢【译者注:Atlassian 是知名的协作工具 Confluence 与 JIRA 的开发公司】)。 在过去的 10 到 15 年间,我期望 Web 服务器能够成为像日常用品一样的东西,无论人们选择哪个服务器都不会有什么不同。但事实却并非如此:JVM 发生了变化、标准发生了变化、优化服务器的方式发生了变化、开发 Web 应用的方式也发生了变化。因此,为了适应这些变化,Jetty 也总是需要不断变化,而各个容器的变化则是不同的。

InfoQ:紧跟所有最新的标准与需求如 WebSockets 和 HTTP/2 是件非常有挑战的事情。能否向大家介绍一下你探索并实现这些需求的过程么?

成为 JCP 与 IETF 专家组成员让我们能够始终走在标准发展的最前沿,我们认为有时我们在引领标准,有时也在跟随标准。不过,我认为最棒的创新还是来自于真实用户的真实需求,作为广泛多样的开源社区的一部分是寻找到这些需求的关键所在:异步 Servlets 就源自 ActiveMQ 的一个特性需求;WebSockets 之所以能引起我们的注意,原因在于 Dojo 中的 cometd;我们现在正在调研反应式 Stream APIs,因为很多用户对此都非常感兴趣。

InfoQ:微服务部署量的持续增加对 Jetty 的使用产生了何种影响?

Jetty 当然也适用于微服务,不过我希望微服务能促进 Jetty 的发展(在真正的开源项目中这是很难的)。不过到目前为止,微服务并未驱动 Jetty 发生任何重要的改变,我希望这是因为我们的设计目标是针对简单的嵌入式用途,而微服务在这个领域中并没有什么新东西。

InfoQ:在应用服务器市场有很多竞争者,特别是开源领域的 Tomcat。那么 Jetty 是怎样做到如此成功的呢?

我们并未感受到应用服务器市场的竞争,因为我们并不想与完整的 EE,甚至是提供 Web Profile 的对手竞争。当然了,Jetty 可以用于 EE 部署,不过我们深信面向组件的开发,不理解为何你的 HTTP 协议提供者应该负责持久化业务 Beans、管理事务或是生成内容。有很多其他组件可以完成这些事情,我们只专注在自己擅长的领域上:为 HTTP、HTTP2、WebSocket、FCGI 等提供可伸缩的协议实现,让用户为应用的其他部分选择合适的组件。我们还可以确保的是,我们对其他项目也有很好的把控,因此将 CDI、JSF、JMS、ETC 等集成到 Jetty 中是非常直接且高效的。 如果说有什么区别的话,我们觉得专注在可伸缩的异步微服务的轻量级 HTTP 服务器是我们真正面对的竞争对手。这个领域有一些创新空间,我们希望能够支持他们所期望的语义,同时依然提供 Servlet API。因此,我们一方面提供了类似的、可伸缩的、灵活的异步 HTTP,同时在需要时又提供了对 Servlet API 的完全访问。

这种灵活的做法在市场上很有吸引力,看看使用 Jetty 的那些大公司吧,Google、Yahoo、Facebook、Salesforce、LinkedIn 等,他们彼此之间的用法都不同,但没有一家公司像以前那种使用 EE 的。

InfoQ:计划何时发布兼容于 Servlet 4.0 的版本呢?

Jetty 10 将会支持 Servlet 4.0。不过,我们还不确定 4.0 中到底会有哪些东西,这个过程将会持续很长时间。因此,现在还没有具体的时间规划,到底加入什么特性目前也是不明朗的。

InfoQ:不久的将来,Jetty 将会增加哪些特性?

尚不确定。我们有一些想法:反应式流、增强的 CDI 集成、Websocket over HTTP2、Quic 等。我们已经开始着手对其中一些特性进行试验了,不过还需要真实的用户需求,接下来才能将这些大概的想法形成计划。

Webtide 提供了对 Jetty 的支持。事实上, Professional Services 站点就是个 HTTP/2 的测试床。

查看英文原文: Jetty 9.3 Celebrates 20th Anniversary, adds HTTP/2 Support

2015-06-27 10:262540
用户头像

发布了 88 篇内容, 共 263.0 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

什么是供应链(Supply chain)?

优秀

#供应链 供应链管理

顺丰基于 Flink CDC + Hudi 推进实时业务落地

Apache Flink

大数据 flink 实时计算

6位字节跳动资深技术人,给校招生的10个成长建议

字节跳动技术范儿

字节跳动 校园招聘

喜报| 无限极入选信通院 2023 XOps“领新杯”业技融合攻坚先锋案例

CODING DevOps

成功举行|装备强国 数智驱动,走进泰开集团暨2023装备制造企业数智化创新论坛

用友BIP

制造

快对讲| 融合视频会议

anyRTC开发者

音视频 快对讲 融合会议 视频监控 电话入会

浅说TCP状态机制

天翼云开发者社区

TCP 数据传输

工具产业推广级!腾讯云 CODING 度量平台获得业内权威机构高度认可

CODING DevOps

Unity 发布《2023 移动游戏增长与变现报告》,聚焦游戏行业高效增长策略

Geek_2d6073

Spring 容器介绍

EquatorCoco

spring spring ioc

兴业银行携手用友,为企业打造新一代财资管理服务

用友BIP

银行 司库

represented by IPQ9554+IPQ6010 chip-difference between Wi-Fi 6 and Wi-Fi 7

wifi6-yiyi

wifi6 WiFi7

高性能存储 SIG 月度动态:DSMS 完成 Anolis 23 预览版发布,欢迎体验和反馈

OpenAnolis小助手

高性能存储 龙蜥社区 sig Anolis 23 DSMS

“数智化供应链“赋能有色企业原料供应链管理优化

用友BIP

冶金

【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(数据恢复补充篇)

洛神灬殇

MySQL 数据库 Binlog 数据库备份和恢复

数智时代下的低代码开发平台:Docker容器解锁创新潜能

EquatorCoco

Docker 低代码 数智时代

Linux中ARP学习和老化机制

天翼云开发者社区

Linux ARP

【7.14-7.21】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

单线程 Redis 如此快的 4 个原因

越长大越悲伤

redis redis为什么如此快

OpenMLDB 发布线上到线下数据自动同步工具

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

代码实训教学支持「分组作业」,学生协作分工一起学|ModelWhale 版本更新

ModelWhale

人工智能 云计算 数据分析 在线编程 云课堂

覆盖全球4亿+用户的大型企业如何构建财务共享中心?

用友BIP

财务共享

分布式系统中的数据复制

互联网工科生

分布式 数据 系统

数字先锋|少跑多办!天翼云助力安徽政务跑出便民利企“加速度”

天翼云开发者社区

云计算 云平台

PaddleSlim +​OpenVINO助力开发者实现Al模型量化与部署

飞桨PaddlePaddle

人工智能 百度 paddle 百度飞桨

华为云ModelArts:开启智能化时代的机器学习平台 | 社区征文

法医

华为云ModelArts 年中技术盘点

软件测试 / 测试开发丨 Linux 三剑客与管道使用

测试人

Python 程序员 软件测试 装饰器

敏捷产品经理企业培训内容要点

顿顿顿

Scrum 敏捷 Scrum Master 敏捷开发管理工具

用友BIP助力企业升级数智化底座,实现数智转型

用友BIP

国产替代

叮!你有一份夏日福利待签收

KaiwuDB

时序数据库 大促 KaiwuDB

Jetty 9.3庆祝20周年生日快乐,并增加HTTP/2支持_Java_Matt Raible_InfoQ精选文章