Eurynome Cloud 2.7.0 預覽版釋出,庖丁解牛,技經肯綮

2022-02-14 11:00:14

Eurynome Cloud 是一款企業級微服務架構和服務能力開發平臺。基於Spring Boot 2.6.3、Spring Cloud 2021.0.0、Spring Cloud Alibaba 2021.1、Nacos 2.0.4 等最新版本開發,遵循SpringBoot程式設計思想,高度模組化和可設定化。具備服務發現、設定、熔斷、限流、降級、監控、多級快取、分散式事務、工作流等功能

平臺定位

  • 構建成熟的、完善的、全面的,基於 OAuth2 的、前後端分離的微服務架構解決方案。
  • 面向企業級應用和網際網路應用設計開發,既兼顧傳統專案的微服務化,又滿足網際網路應用開發建設、快速迭代的使用需求。
  • 平臺架構使用微服務領域及周邊相關的各類新興技術或主流技術進行建設,是幫助快速跨越架構技術選型、研究探索階段的利器。
  • 程式碼簡潔規範、結構合理清晰,是新技術開發應用的典型的、綜合性案例,助力開發人員對新興技術的學習和掌握。

本次更新內容:

  • 重要變更
    • 將現有 Eurynome Cloud 微服務架構,進行了深度的「庖丁解牛」。將完整的微服務架構,根據各個元件的職責以及用途,拆解細化為多個各自獨立元件模組,在最大程度上降低程式碼間的耦合。並將元件模組單獨提取為一個獨立的工程專案。
    • 已有 Eurynome Cloud 微服務架構,根據新的模組化程式碼結構,進行了重構。
  • 升級目的
    • 2021年11月8日 Spring 官方已經強烈建議使用 Spring Authorization Server 替換已經過時的 Spring Security OAuth2.0。距離 Spring Security OAuth2.0 結束生命週期還有小半年的時間,所以準備用 Spring Authorization Server 對已有的 Eurynome Cloud 微服務架構進行升級
    • Eurynome Cloud 微服務架構,一直遵循「高內聚、低耦合」的原則,在開發和維護的過程中不斷優化已有程式碼,盡一切可能降低程式碼的耦合性。但是,畢竟所有的程式碼都堆積在同一個工程中,程式碼間的過度依賴和互相耦合還是較為嚴重。這為 Spring Authorization Server 替換 Spring Security OAuth2.0 帶來了較大的阻力和難度。
    • 為了進一步降低程式碼與程式碼間、模組與模組間的耦合度,進行了本次版本更新,並衍生了 Herodotus Engine 工程。
    • 同時,本次版本迭代,也是為了後期升級使用 Spring Boot 3.X 和 JDK 17,做先期主備。
  • 新模式特點
    1. 嚴格遵照「單一職責」原則,進行各個模組的劃分和程式碼拆解。
    2. 嚴格遵循 Spring Boot 編碼規則和命名規則。
    3. 大多數模組均支援 @EnableXXX註解 和 starter,不僅提升了模組使用的便捷性,同時在開發使用過程中,讓 Spring Bean 的注入順序更加可控和便於理解。
    4. 借鑑 Spring Boot 模組化設計思想,通過介面化程式設計、策略化 Bean 注入 以及豐富的自定義 @ConditionalXXX 註解,讓模組的新增和使用更加靈活便捷。
    5. 各模組既可以綜合在一起使用,也可以在其它 Spring Boot 工程中獨立使用
  • 新模式優勢
    1. 雖然模組看似很多,但是每個模組職責單一、程式碼清晰,更有利於聚焦和定位問題。
    2. 通過對微服務架構的「庖丁解牛」,初學者不再需要在程式碼的海洋裡「遨遊」,通過針對性地瞭解各個模組,以點帶面快速掌握微服務架構整體結構。
    3. 模組間的依賴極大的降低,想要替換為 Spring Authorization Server,影響到的程式碼和範圍將會很小。該工程也是使用 Spring Authorization Server 的前序工作
    4. 每個模組均是最小化依賴第三包,規避依賴包過度依賴,特別是 starter 過多依賴,導致不可預知、難以偵錯、不好修改等問題。
    5. 降低微服務系統程式碼量,獨立元件可提前編譯並上傳至Maven倉庫,降低工程程式碼編譯耗時,改進 CICD 效率。
  • 嚐鮮注意事項
    1. 建議新建目錄、單獨檢出 Eurynome Cloud 2.7.0 分支程式碼,以防對現有程式碼產生影響。
    2. 獨立出的各個模組,已經同步至 Maven 中央倉庫,檢出 Eurynome Cloud 2.7.0 分支程式碼既可以直接使用。當然,也可以先檢出 Herodotus Engine 工程,編譯後再進行 Eurynome Cloud 專案的使用。
    3. 想要研究、學習、瞭解已有的模組程式碼,可以存取 Herodotus Engine 程式碼庫,地址:[https://gitee.com/herodotus/herodotus-engine](https://gitee.com/herodotus/herodotus-engine)
    4. 如果之前已經使用、部署過 Eurynome Cloud 微服務系統,那麼嚐鮮使用 2.7.0.Beta1 版,無須修改和變更資料庫。但是需要更新 Nacos 設定,具體變化可自行詳細對比工程中Nacos 組態檔。前端工程無須做任何修改,即可使用該版本後端系統。
    5. Herodotus Engine 是獨立的、可編譯的、元件庫式的工程,具體使用需要在其它 Spring Boot 工程中引入相關的元件模組。

友情提示:

本次程式碼釋出,為嚐鮮預覽版,請結合自己的實際需求,謹慎選擇使用!

展開閱讀全文