Eclipse MicroProfile:您需要了解的5件事
針對微服務架構優化企業Java
Eclipse MicroProfile計劃是在JavaOne 2016上發起的,JavaOne是服務器供應商和Java用戶組的創意,目的是解決企業Java微服務領域的缺點。 Java EE的發布速度減慢到無法應對Swift發展的微服務趨勢的挑戰的程度。 MicroProfile通過將個人,供應商和社區組織進行開放式協作來解決此問題,從而為EE生態系統提供微服務。
什么是Eclipse MicroProfile?
MicroProfile指定了Java EE API和技術的集合,它們共同構成了核心基準微服務,旨在提供跨多個運行時的應用程序可移植性。
MicroProfile 1.0規范包括30多個Java Enterprise規范的子集,它們是:用于RESTful端點的JAX-RS 2.0,用于擴展和依賴項注入的CDI 1.1,以及用于處理JSON消息的JSON-P 1.0。 為什么只是這三個? 這是因為這表示構建微服務所需的API最少。
預計2.0版將更加廣泛,并計劃包含積壓的部分功能,這些功能包括:配置,通過JSON Web令牌 (JWT)進行的安全性,運行狀況檢查, JSON綁定 ,監視,OpenTracing和容錯功能。 另外,它將使所有API與Jav??a EE 8保持一致。
許多受人尊敬的服務器供應商都提供運行時。 支持MicroProfile架構的是:IBM的WebSphere Liberty , Tomitribe的TomEE, Payara ,RedHat的WildFly Swarm和KumuluzEE 。
社區支持來自倫敦的Java社區和SOUJava以及許多個人誰給他們的時間和精力。
Eclipse MicroProfile的動機
Java EE的成熟已導致發行節奏減慢,這對于微服務社區來說太慢了。 但是,這并沒有阻止Java Enterprise技術用于開發微服務,實際上,Java EE中的微服務已經做了很多努力。
每個供應商都在就正確的微服務方式實施自己的見解,這個空間變得越來越分散。 顯然,如果不尋求凝聚力,那么供應商分散是不可避免的結果。 因此,在更好地進行微服務的指導下,廠商和用戶組之間進行了協作。
隨著Java EE的完整配置文件變得如此龐大,最后有30多個API,在構建被稱為“ micro”的東西時,尤其是當您不打算使用這些API中的絕大多數。 必須找到一種更苗條,更好的解決方案。
目標
在這些動力中,有四個壓倒一切的目標,所有參與開源項目的人都力求追求。 這些目標可以概述如下:
避免在供應商和實現者之間分散,以解決對微服務空間采用統一方法的需求。 通過微服務的通用策略,這導致服務器供應商之間的微服務互操作性。
通過懶惰的共識快速構建,以允許快速開發和迭代。 這導致了高頻發布節奏,滿足了社區快速周轉的需求。
通過Eclipse組織的框架在Java EE空間中創建更多開源技術。 當這些技術轉移到JSR格式時,這允許組織充當規范領導者。
最終目標是為Java社區流程 (JCP)提供規范請求 (JSR),該規范請求由開發人員和企業可以依賴并實際需要的明智方法和實現來支持。
MicroProfile嘗試從Java EE技術的角度理解微服務,而不是與Oracle競爭,而是在邊緣進行創新并向JSR反饋。
1.沙盒開放貢獻方法
Eclipse MicroProfile具有一種獨特的開放貢獻方法,該方法允許通過MicroProfile沙箱存儲庫立即啟動。 您只需派生沙盒存儲庫 ,創建一個不同的子目錄,編寫您的想法,并提交所需的任意數量的拉取請求,以探究提案背后的概念。
即使尚未活躍在社區中,任何人都可以通過這種方式做出貢獻。 這種方法提供了零進入門檻,并允許任何有志于做出貢獻的人捕捉想法。
不斷發展您的想法是毫不費力的。 在社區論壇上啟動一個新線程以宣布您的想法,并等待幾天(72小時)以收集反饋。 考慮并響應反饋,進行適當更新,并在不適用反饋時提供理由。 一旦您的想法被接受,就可以通過懶惰的共識,將您的貢獻遷移到其自己的存儲庫,在該存儲庫中開始進行規范,API和測試套件的工作。
如果您不想一個人工作,可以在Google網上論壇中公開表達您的想法,以尋求社區的支持。 這是所有討論發生的地方。 您可以找到其他有相同興趣并愿意在您的想法上與您合作的人。
2.挑戰人們對Java EE的重要性的看法
傳統上對Java企業版的看法是,它笨重,笨重且部署緩慢,這在它的早期生命中都是如此,但是由于Eclipse MicroProfile的努力,這種看法正在成功地受到挑戰。
在MicroProfile Eclipse開發人員資源頁面上,可以找到體系結構會議應用程序鍵代碼示例,您可以使用該示例代碼來自行測試MicroProfile Java EE應用程序的輕量級特性。 如果您沒有時間,請觀看此精彩的演講 。
關鍵代碼示例包括四個微服務和一個前端應用程序。 在演示中,每個微服務都是使用MicroProfile體系結構開發的,并部署在四個參與的供應商的服務器之一上。
一個maven插件將應用程序編譯為WAR,并將其與服務器運行時一起打包為JAR。 它使用java -jar命令通過命令行啟動。 查看下表,您會發現JAR大小很小,啟動時間也很短。 這些數字使任何其他Java EE框架都可以賺錢。
| 供應商 | 微服務 | JAR大小/ Mb | 啟動時間/秒 |
| WebSphere自由 | 會議投票 | 35 | 7 |
| 蒼蠅群 | 屆會 | 65歲 | 6 |
| 帕亞拉 | 會議時間表 | 33 | 5 |
| 湯姆 | 揚聲器 | 35 | 3 |
每個供應商的實現都利用服務器體系結構的優勢來優化部署。 例如; IBM的WebSphere Liberty使用“功能”來選擇所需的Java EE技術并打包應用程序所需的內容。 WildFly Swarm使用“分數”來“調整大小”服務,以確保部署中僅包括所需的API。
所有供應商的共同特點是優化了打包部署的方式。 僅包含足夠的代碼即可使其工作,從而可生成最小大小的超級JAR。
3.高節奏釋放哲學
不同版本之間的Java EE發行周期通常需要數年,對于標準驅動的生態系統來說,這是完全正確的。 標準組織不是為了創新而是為了標準化而存在。 一旦將其充實并證明可以工作,他們就會收集經過驗證的想法。
嘗試在標準組織內部進行創新會挫敗陷阱,事實證明這是災難性的。 CMP(容器管理的持久性)是委員會猜測人們想要的東西并弄錯了它時發生的事情的一個示例。
微服務的世界瞬息萬變,對于社區來說,多年的發布周期太長了。 MicroProfile的目標是通過縮短周期并使其更具迭代性來對此進行改進。 這個想法是嘗試建議,看看什么有效,什么無效,然后以“快速迭代,快速失敗”的過程進行。 壞主意很快就會被淘汰,只留下好主意。 隨著技術的成熟,可以將它們提交給JCP,以供將來的JSR考慮。
縮短發布周期的目的是經常交付某些東西,即使這只是一個主意。 比提出很多想法要晚兩年,這被認為是更可取的。
MicroProfile當前計劃的發行版在Eclipse MicroProfile網站上公開宣布。
4.在所有階段都完全透明
事實證明,導致社區真正想要的解決方案的指導思想是完全透明。 這是Eclipse MicroProfile采取的方法。 所有討論都是在Google網上論壇進行的,所有討論都在這里開始并蓬勃發展,任何人都可以發表評論或提出新想法。
每兩周進行一次Google Hangouts,這是整個過程不可或缺的一部分,歡迎所有人參加會議。 他們會在社區論壇上提前宣布, 會議記錄會以Google文檔的形式發布,以供所有人查看。
在Eclipse Project網站上認可了貢獻者,在該站點上,誰是最大的個人和組織貢獻者以及哪個公司成員最活躍,這一點是透明的。
5. CDI中心編程模型
上下文和依賴注入規范是Java EE生態系統中功能最強大,功能最豐富的規范之一,并且經常被其他API所利用。
它最強大的兩個功能是攔截器和觀察器。 攔截器執行與業務邏輯正交的跨領域任務,例如審計,日志記錄和安全性。 開發人員需要的各種微服務屬性的基本功能。
內置事件通知模型實現了觀察者模式,以提供功能強大且輕量級的事件通知系統,可以在整個系統范圍內利用該事件通知系統。
在這些功能之上,您可以獲得服務器和客戶端的預期分離(依賴注入的本質)以及整個CDI規范,包括定義bean的生命周期,類型安全注入,范圍,生產者方法,限定符和完整服務提供者的能力。允許第三方集成的接口(SPI)。
顯而易見,為什么選擇此API作為基準Java EE微服務的核心依賴項。
如何參與?
參與其中再簡單不過了。 跳至Google網上論壇 ,選擇一個可以調整您的興趣的話題,然后開始閱讀和評論。 喜歡說話嗎? 然后參加每兩周一次的Google Hangouts并表達自己。 如果您有尚未討論的功能想法,那么為什么不啟動線程并獲得一些反饋。 如果您想深入一探,則可以派生microprofile-sandbox存儲庫并進行編碼。 您無法介入其中。
您要點擊的鏈接
- Eclipse MicroProfile演示
- Eclipse MicroProfile文章
- Eclipse MicroProfile 1.1版本
進一步閱讀
我已經發表了更多有關Java EE的文章。 ? 以下是您可能感興趣的主題的簡短列表:
- Java EE:過去,現在和未來
- 上下文和依賴注入 (CDI)
- 企業Java Bean (EJB)
- JSP,JSP和表達語言
- RESTful Web服務
- Java Persistence API簡介 (JPA)
- 什么是JAX-RS批注?
- @Context注釋用于什么?
- JAX-RS @Consumes和@Produces批注
- Bean驗證失敗管理
學到更多
如果您想了解有關Java EE的更多信息,請嘗試我的Lynda.com視頻培訓課程。 它們涵蓋了多種Java EE技術:
- 使用JAX-RS 2.0的RESTful服務
- 使用Java EE進行WebSocket編程
- 使用Java EE和JSON處理
- 學習Java企業版
翻譯自: https://www.javacodegeeks.com/2017/09/eclipse-microprofile-5-things-need-know.html
總結
以上是生活随笔為你收集整理的Eclipse MicroProfile:您需要了解的5件事的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 化妆品备案需要多少钱一个(化妆品备案需要
- 下一篇: 垃圾收集算法,垃圾收集器_弱,弱,最弱,