IBM發佈Open Liberty 18.0.0.4,支持MicroProfile 2.1和反應性擴展框架

IBM在2018年第四季度發佈的Open Liberty 18.0.0.4提供了對MicroProfile 2.1、反應性擴展框架和連接池指標的全面支持。根據發佈說明:

Open Liberty現在對JAX-RS 2.1進行了反應性擴展,這樣你就可以使用來自Apache CXFJersey的提供程序。在ops方面,Liberty運行時提供了一些連接池指標,現在,你可以從MicroProfile Metrics特性提供的/metrics端點訪問這些指標。

Open Liberty於2017年9月首次推出,是IBM WebSphere Liberty應用服務器的開源實現,用於構建微服務和原生雲應用程序。Open Liberty對MicroProfile的持續支持確保了最新版本包含在季度發行版中。簡單看一下Open Liberty的發行歷史就能明白這一點:

  • 2017年9月:17.0.0.3 —— MicroProfile 1.2
  • 2017年12月:17.0.0.4 —— JSF實現
  • 2018年3月: 18.0.0.3 —— MicroProfile 1.3
  • 2018年6月: 18.0.0.2 —— Java EE 8
  • 2018年9月: 18.0.0.3 —— MicroProfile 1.4MicroProfile 2.0
  • 2018年12月: 18.0.0.4 —— MicroProfile 2.1

MicroProfile 2.1

Open tracking 1.2MicroProfile 2.1中唯一更新的API,於2018年10月19日發佈。新特性及改進特性包括:允許更有針對性的跟蹤結果;更容易將跟蹤請求與應用程序的URL關聯起來;跳過JAX-RS請求跟蹤;使用另一種Open Tracing Span名稱格式;添加了新的MicroProfile Config 1.3 API鍵,支持新的Open Tracing函數。

JAX-RS請求可以通過指定一個與UriInfo.getPath()相匹配的正則表達式排除在跟蹤之外,該正則表達式定義在一個新增的配置鍵mp.opentracing.server.skip-pattern中。正則表達式必須符合java.util.regex.Pattern。IBM Open Tracing知識中心詳細說明了爲什麼排除JAX-RS請求跟蹤:

可以通過指定跳過模式排除服務器端跟蹤。你可能希望排除一些跟蹤信息,以便跟蹤特定的東西。在這種情況下,你可以選擇排除服務器端跟蹤,以減少所創建的Span數量。

新增的Open Tracing Span名稱替代格式如下:

<http method>:/<endpoint>/<endpoint method>

如Open Liberty Open Tracing指南所示,下面是該格式的一個示例:

GET:/inventory/list

要了解更多細節,請查看Open Tracing規範

JAX-RS的反應性擴展

使用Open Liberty 18.0.0.4,可以通過Apache CXF和Jersey等提供程序對JAX-RS(JSR-370)進行反應性擴展。在Open Liberty博客中,IBM Web服務架構師Andy McCright最近討論了Open Liberty中的REST新特性

JAX-RS 2.1引入了反應性客戶端,但是規範只要求供應商使用Java 8的CompletionStage API實現它。其他反應性框架框架可以與反應性框架客戶端集成,但在規範中這是可選的。藉助Liberty 18.0.0.4,我們現在可以使用這些擴展。我們已經使用來自Apache CXF和Jersey的提供程序對RxJava 1和2進行了測試,我們計劃進行更多測試。

IBM WebSphere MicroProfile和Jakarta EE(EE4J)架構師Kevin Sutter向InfoQ介紹了這個最新版本,以及2019年關於Open Liberty的計劃。

InfoQ:在即將發佈的Open Liberty版本中,爲MicroProfile的當前版本提供全面支持是否遇到了挑戰?

Kevin Sutter:Open Liberty曾經在Eclipse MicroProfile項目發佈後的三個月內提供了完全支持的、可用於生產的MicroProfile規範實現。從項目的第一天起,我們就把這作爲一個目標,並且我們很高興能夠遵守這個時間表。這有挑戰性嗎?當然。但是,這是一項大型的團隊工作,這樣更可行。我們參與每一項MicroProfile規範。有些是我們負責的,有些我們只是參與。但是,我們確實參與每一項規範。這給了我們一個優勢,因爲我們已經熟悉了各種規範的要求。在大多數情況下,在更廣泛的MicroProfile團隊正在繼續定義它的時候,我們正在實現規範。在某些情況下,我們通過每月的Liberty Beta交付早期版本的實現。這些Beta版的反饋也可以反饋到規範的開發中。所有這些前期工作都有助於我們及時實現MicroProfile的目標。

MicroProfile規範發佈的其中一個要求是有一個開源的“兼容實現”。這個兼容的實現不一定是最終的版本或產品。但是,它必須證明規範是可實現的,並且TCK在上面成功執行。此外,它必須可用、可構建,並且可以通過一些公共的開源存儲庫進行測試(如GitHub)。對於我們負責的大多數MicroProfile規範,我們在Open Liberty中開發兼容實現。一個例外是我們負責的MicroProfile Rest客戶端項目,其兼容實現是Apache CXF。但是,由於Apache CXF是Open Liberty JAX-RS實現的基礎,因此,我們仍然間接地在Open Liberty中進行開發。無論如何,這些兼容實現並不是最終的版本。我們還有額外的工作要做,以確保這些實現是生產就緒的,並且得到完全支持。但是,爲把它們加入Open Liberty的下一個發行版中,我們有了一個很好的開端。

InfoQ:關於Open Liberty,2019年有什麼計劃?

Sutter:我們在2019年所做的一個主要改進是採用四周一次的發佈週期(而不是過去幾年的季度發佈)。壓縮後的發佈週期對我們的MicroProfile開發工作提出了一些新的挑戰。如你所知,MicroProfile每年都會發布幾個版本。去年,MicroProfile發佈了三個平臺版本(包括對Java EE 8的支持)。今年的計劃是在2月、6月和10月再發布三個平臺版本。過去,我們的目標是在下一個季度的Open Liberty中支持這些MicroProfile版本。但是,在四周一次的發佈週期中,“下一個Open Liberty版本”可能無法實現。因此,我們的新目標是在MicroProfile提供其平臺版本之後進行兩個爲期兩週的開發迭代。這實際上把我們之前在一個季度(12周)內提供實現的目標壓縮到了大約8周。我們看看能不能跟上。但是,按照我們的敏捷流程,我們只會在功能準備就緒時發佈它——完全測試、生產就緒和完全支持。

InfoQ:您目前負責什麼,也就是說,您每天都做些什麼?

Sutter:我的主要職責是爲混合雲組織的MicroProfile、Jakarta EE和Java EE總體開發提供指導。這就是我在“IBM的工作”。在外部,我非常積極地與MicroProfile社區合作,共同領導Eclipse項目。我參與了一些組件規範,但我的主要關注點是確保平臺交付的順利進行。我還參加了Jakarta EE指導和規範委員會。將Java EE工件和流程移到Eclipse環境中是一項具有挑戰性的工作——保留好東西,刪除不好的東西。作爲PMC和平臺項目的一員,我還參與了EE4J工作的日常活動。這方面的最新活動是完成Eclipse Glassfish的Java EE 8兼容性測試。下一步工作涉及Jakarta EE 8的發佈及其未來規劃。

相關資源

查看英文原文:IBM Releases Open Liberty 18.0.0.4 with Support for MicroProfile 2.1 and Reactive Extensions

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章