本文來源於我在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