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

今年6月12日。Jetty项目公布了旗舰性开源嵌入式应用server的9.3版,同一时候这一天也是该项目的20周年纪念日。此次公布的主要特性包含添加了对HTTP/2服务端(与client)支持、系统最低要求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

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

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

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

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

其实。我一開始仅仅是将其作为我所开发的一个问题追踪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、HTTP2、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 HTTP2、Quic等。我们已经開始着手对当中一些特性进行试验了,只是还须要真实的用户需求,接下来才干将这些大概的想法形成计划。

Webtide提供了对Jetty的支持。

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

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

Jetty 9.3庆祝20周年生日快乐,并添加HTTP/2支持的更多相关文章

  1. .NET 20周年软件趋势随想

    从2000年微软启动.NET战略时,我还是一位大学生,当年著名的黑客Miguel de Icaza , Miguel 为了寻找GNOME项目开发框架经过充分的调研启动了一个志存高远的项目:Mono,一 ...

  2. TFS 10周年生日快乐 – TFS与布莱恩大叔的故事

    今天看了一下Brian Harry大叔的博客,才发现2016年3月17日,是Team Foundation Server的10岁生日. Today marks the 10th anniversary ...

  3. Visual Studio 20周年软件趋势随想

    从2002年开始,.net让开发人员能快速构建和部署应用程序,便捷的开发windows和web服务器应用,同时著名的hacker Miguel de Icaza ,Miguel 为了GNOME项目启动 ...

  4. .NET 诞生已20周年,您的 .NET 技能是否还停留在2010 年?

    20年来,我们见证了超过上千万.NET 开发员,当前有600万.NET 开发者正在使用.NET技术构建各类解决方案.今天,IT市场对.NET 开发人员的需求达到了前所未有的程度,特别是在中国,各大公司 ...

  5. .NET十五周年生日快乐 (3月7日发布Visual Studio 2017正式版?)

    今天 是.NET 对世界首次亮相15 周年.2002 年 2 月 13 日,第一版本的.NET 发布作为 Visual Studio.NET 的一部分.它仿佛就在昨天为微软建设成"下一代 W ...

  6. Visual Studio 20周年,我和VS不得不说的故事(内含福利)

    Visual Studio 2017正式版已如期发布(点击这里查看发布全记录)!自去年 11 月正式宣布 Visual Studio 项目之后,微软终于正式推出了“宇宙最强集成开发环境(IDE)”的最 ...

  7. Visual Studio 20周年,我和VS不得不说的故事

    Visual Studio 2017正式版已如期发布(点击这里查看发布全记录)!自去年 11 月正式宣布 Visual Studio 项目之后,微软终于正式推出了“宇宙最强集成开发环境(IDE)”的最 ...

  8. XML 标准诞生 20 周年:这个世界,它无处不在

    可扩展标记语言(XML)于 1998 年 2 月 10 日成为 W3C 的推荐标准.昨天,2018 年 2 月 10 日恰好是 W3C 推出的 XML 标准发布 20 周年纪念日.可点此查看原始的新闻 ...

  9. 开源编解码项目FFmpeg迎来20周年生日 凭一己之力养活全球无数播放器!

    近日,开源编解码库项目FFmpeg迎来20周年生日. 2000.12.20-2020.12.20 可能很多人对于FFmpeg不是特别了解,那么以下几个名字是否大家或多或少都用过呢? 暴风影音.PotP ...

随机推荐

  1. MSSQL - SQL Server2008附加数据库失败 错误号:5120

    附加数据库时,显示错误,错误信息为 一种解决方法为,设置mdf文件所在文件夹的权限(有些资料说只设置mdf文件的权限就好,但我试了不管用),在文件夹上右击——属性——安全,如图所示: 选择组或用户名中 ...

  2. 【app】遍历目录所有文件

    遍历目录所有文件   原创,转载时请注明,谢谢.邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:htt ...

  3. hdu1869 六度分离(Floyd)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1869 转载请注明出处:http://blog.csdn.net/u012860063?viewmode ...

  4. http2.0笔记

    二进制分帧层 定义了如何封装 HTTP 消息并在客户端与服务器之间传输 http2.0的消息传输特点: 流 已建立的连接上的双向字节流 消息 与逻辑消息对应的完整的一系列数据帧 帧 http2.0通信 ...

  5. String[255]在高版本Delphi里还是被解释成Byte,总体长度256,使用StrPCopy可以给Array String拷贝字符串(内含许多实验测试)

    学了好多不了解的知识: procedure TForm1.Button1Click(Sender: TObject); var s1 : String; s2 : String[]; begin s1 ...

  6. 【WPF】监听WPF的WebBrowser控件弹出新窗口的事件

    原文:[WPF]监听WPF的WebBrowser控件弹出新窗口的事件 WPF中自带一个WebBrowser控件,当我们使用它打开一个网页,例如百度,然后点击它其中的链接时,如果这个链接是会弹出一个新窗 ...

  7. ActiveX控件的安全初始化和脚本操作 和 数字签名SIGN

    摘要:数字签名SIGN保证控件在下载时候的安全性.如果你的代码已经经过数字签名,即使用户IE的安全设置很高也能下载,安装并登记.但是在页面上初始化,或者用脚本运行这个控件,为了保证安全性,还需要进行M ...

  8. 【Demo 0004】Java基础-类封装性

    本章学习要点:       1.  Java封装特性;       2.  掌握类的定义:       3.  掌握类的调用方法; 一.封装特性        Java 纯面向对象语言,面向对象语言遵 ...

  9. 主从mysql 同步设置

    GRANT REPLICATION SLAVE ON *.* TO 'root'@'%' IDENTIFIED BY 'zhoubt';grant all privileges on *.* to  ...

  10. HealthKit开发教程Swift版:起步

    原文:HealthKit Tutorial with Swift: Getting Started 作者:Ernesto García 译者:Mr_cyz ) HealthKit是iOS 8中的新的A ...