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

本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2015/06/Building-Distributed-Systemshtml

今年6月12日。Jetty项目公布了旗舰性开源嵌入式应用server的9.3版,同一时候这一天也是该项目的20周年记念日。这次公布的主要特性包含添加了对HTTP/2服务端(与client)支持、系统最低要求Java 8。以及不少其它的NIO集成与全然重构的调度器。java

此外。该版本号还移除了SPDY网络支持、并修复了自Jetty 9.2.x以来的400多个Bug。web

Jetty的主开发人员Greg Wilkins撰写了一篇博文,谈到了Jetty对HTTP/2的支持浏览器

在文章中。他介绍了如何在Jetty启动命令中轻松启用HTTP/2支持。网络

$ java -jar $JETTY_HOME/start.jar --add-to-startd=http2,http2c

上述命令并不会建立或是开启新的链接器/port。仅仅是向port8080与8443的既有链接器上添加了HTTP/2协议。大多数现代浏览器的最新版本号都提供了对HTTP/2的支持。eclipse

请訪问http://caniuse.com/#feat=http2了解各个浏览器对HTTP/2的支持状况。异步

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

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

其实。我一開始仅仅是将其做为我所开发的一个问题追踪Web应用中的一个模块而已,历来没有想过有人会对它产生兴趣。但结果倒是很是多人都開始使用Jetty。同一时候该HTTPserver也成为了我基本的工做方向(要不我确定还在开发那个问题追踪应用。或许后来成为Atlassian也不必定呢【译者注:Atlassian是知名的协做工具Confluence与JIRA的开发公司】)。

在过去的10到15年间,我指望Webserver能够成为像日常用品同样的东西,无论人们选择哪一个server都不会有什么不一样。但事实却并非如此:JVM发生了变化、标准发生了变化、优化server的方式发生了变化、开发Web应用的方式也发生了变化。

所以。为了适应这些变化,Jetty也老是需要不断变化。而各个容器的变化则是不一样的。微服务

InfoQ:紧跟所有最新的标准与需求如WebSockets和HTTP/2是件很是有挑战的事情。

是否能向你们介绍一下你探索并实现这些需求的过程么?

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

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

Jetty固然也适用于微服务,只是我但愿微服务能促进Jetty的发展(在真正的开源项目中这是很是难的)。

只是到眼下为止。微服务并未驱动Jetty发生不论什么重要的改变,我但愿这是因为咱们的设计目标是针对简单的嵌入式用途。而微服务在这个领域中并无什么新东西。

InfoQ:在应用server市场有很是多竞争者,特别是开源领域的Tomcat。

那么Jetty是如何作到如此成功的呢?

咱们并未感觉到应用server市场的竞争,因为咱们并不想与完整的EE。甚至是提供Web Profile的对手竞争。固然了。Jetty能够用于EE部署,只是咱们深信面向组件的开发,不理解为什么你的HTTP协议提供者应该负责持久化业务Beans、管理事务或是生成内容。有很是多其它组件能够完毕这些事情,咱们仅仅专一在本身擅长的领域上:为HTTP、HTTP二、WebSocket、FCGI等提供可伸缩的协议实现,让用户为应用的其它部分选择合适的组件。咱们还能够确保的是,咱们对其它项目也有很是好的把控。所以将CDI、JSF、JMS、ETC等集成到Jetty中是很是直接且高效的。



假设说有什么差异的话,咱们以为专一在可伸缩的异步微服务的轻量级HTTPserver是咱们真正面对的竞争对手。这个领域有一些创新空间,咱们但愿能够支持他们所指望的语义,同一时候依旧提供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 HTTP二、Quic等。咱们已经開始着手对当中一些特性进行试验了,只是还需要真实的用户需求,接下来才干将这些大概的想法造成计划。

Webtide提供了对Jetty的支持。

其实,Professional Services网站就是个HTTP/2的測试床。

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

相关文章
相关标签/搜索