InfoQ參加了于10月份舉行的2017 JAXLondon大會,來自IBM的Emily Jiang呈現了有關Eclipse MicroProfile的演講。Emily在演講中先是簡單介紹了Eclipse MicroProfile的歷史,然后詳細介紹了MicroProfile的容錯能力,最后介紹了未來的計劃,包括MicroProfile將涵蓋的內容以及與Java開發者之間的合作。
MicroProfile被設計用于配置微服務,1.0版本于2016年9月份發布,1.1版本于2017年8月份發布,1.1是以Eclipse基金會名義發布的第一個版本。
MicroProfile 1.0基于Java EE 7,使用了CDI+JSON-P+JAX-RS技術棧,而1.1版本使用了新的配置技術棧,以便提升可移植性。
Emily深入介紹了最近發布的MicroProfile 1.2,新版本包含了很多新特性,比如應用層面的度量指標、通過部署到單核Kubernetes環境進行健康檢測。1.2版本的主要新特性是提升容錯能力,微服務之間可以通過JWT在一個安全的環境里發生交互。
接下來,Emily介紹了新的容錯API,先是介紹了一些注解,如@Retry、@Timeout和@Bulkhead。@Bulkhead通過隔離線程(默認是10個)避免局部失效影響到整個系統。應用程序可以組合使用@Bulkhead和@Asynchronous,使用單獨的線程來執行任務。
MicroProfile 1.2引入了@CircuitBreaker,用于支持容錯和失效檢測。該注解告訴運行時,一旦出現回路斷路(也就是回路被打開),就會立即發生失效。一個關閉的回路將按照預期設計的方式調用服務。
新API還提供了@Fallback注解,用于指定回退處理器,在目標服務不可用時回退到調用默認的服務。該特性需要在應用程序層面實現,因為底層系統并不提供回退機制。
除了介紹MicroProfile的容錯機制,Emily還提到了Istio平臺。她說,如果使用了Istio,那么完全可以禁用MicroProfile中除回退機制之外的容錯功能,使用Istio提供的容錯機制來替代。
Emily還簡單介紹了MicroProfile的發展路線圖,在2.0版本之前,1.3版本有可能支持Open Tracing和Open API。2.0版本有可能支持EE 8的其他技術。
Emily做了一個簡短的OpenLiberty演示,展示了MicroProfile 1.2版本的特性。更多的相關細節可以在Eclipse MicroProfile網站上看到。
查看英文原文:Accelerating the adoption of Java microservices with Eclipse MicroProfile