「盤古開發框架」是完全獨立於 Spring Cloud 生態的一套輕量靈活、成熟可靠的工業級分佈式微服務開發和治理框架(兼容垂直單體分層架構)。它基於 Apache-2.0 協議開源發佈,且是免費的。我們希望不僅是開源的受益者,也能成爲開源的貢獻者,與開源社區一起「共建共享開源生態」。
框架特點
開箱即用、輕量靈活
開箱即用的技術組件庫、搭配自定義 SpringBoot 啓動器和輕巧的代碼生成 Maven 插件,可隨意組合、自動裝配、靈活插拔。 既能構建支持大併發高可用的互聯網分佈式架構也能快速搭建垂直單體分層架構。
成熟架構、穩定可靠
盤古技術棧融合雲原生思想,在微服務、容器化、DevOps 等方面完美支持和適配。可在雲原生時代構建以「服務」爲中心的現代應用架構,幫助用戶在雲環境中更好的構建、交付和管理自己的微服務平臺。
全棧百搭適配各類業務場景
聚焦面向(移動)互聯網的電商、金融、雲端 SAAS 服務等大併發高可用可擴展的業務場景。 同時也能滿足諸如 ERP 、CRM 等各種企業數字化和各級電子政務系統的中小規模應用需求。
設計原則
在類設計、模塊結構劃分、技術組件選型、框架體系架構設計時會優先遵循的一些設計範式和指導原則。
- 極簡原則
大道至簡,簡單代表好用、穩定、易協作。堅持「Keep it Simple & Stupid」設計理念。 - 最佳實踐原則
通過大量的生產實例總結,沉澱複用最佳實踐。 - 無爲而無不爲
不求大而全,聚焦專而精,保持架構的純潔與透明。堅持「Less is More」設計理念。 - 服務優先原則
「服務」是盤古開發框架的一等公民,我們旨在微服務和雲原生範式基礎上構建「以服務爲中心」的現代應用架構。 - 輕量靈活一致性原則
通用功能模塊化,既能下沉複用也能對標替換;一套架構既是分佈式微服務架構的工業級首選,同時也能兼容單體應用開發。
生態架構圖
主要功能
- 自定義的 Spring Boot 啓動器,完成各功能組件的自動裝配。
- 自研輕量 Maven 插件,支持各場景的模版代碼生成。
- 配置參數外部化、動態化和中心化管理。
- 面向接口代理的高性能 RPC 服務調用。
- 支持服務調用智能容錯和負載均衡、服務限流與熔斷、可視化的服務治理與運維等。構建「以服務爲中心」的現代應用架構服務平臺。
- 強大的數據訪問能力,內置通用 CRUD 接口;支持 Lambda 表達式;提供邏輯刪除、樂觀鎖、分頁、字段值填充等功能。
- 支持基於異步非阻塞模型的高性能 HTTP 網關通過泛化調用後端 Dubbo 服務。同時網關支持 HTTP 層的鑑權、動態限流、熔斷、防火牆、灰度發佈等。
- 提供靠譜的最終一致性分佈式事務落地方案。
- 提供數據治理相關功能,如:讀寫分離、數據分片、數據加密等。
- 提供消息隊列在異步通信、服務解耦、消峯填谷、緩存同步等應用場景下的使用能力。
- 提供分佈式環境下的多級緩存功能(註解式和編程式)。Caffeine 作爲一級本地緩存,Redis 作爲二級集中式緩存。
- 支持可配置、可監控的分佈式任務調度。
- 支持註解聲明式和編程式對業務代碼在分佈式環境下加併發互斥鎖。
- 應用日誌輸出級別動態切換、分佈式日誌跟蹤等...
組件依賴
基礎核心組件
- Spring ※ Spring Boot
- MyBatis (MyBatis Plus)
- Apache Dubbo
- Aliware Nacos
擴展增強型組件
- Apache ShenYu
- Apache ShardingSphere
- Aliware Seata
- Aliware Sentinel
- Layering Cache
- Lock4J
- XXL Job
輔助工具類組件
- Lombok
- Apache Commons
- Google Guava
- Hutool
模塊列表
- 盤古資源依賴聲明管理模塊:pangu-parent
- 盤古公共基礎類庫:pangu-common
- 盤古啓動、中心化配置等基礎能力自動裝配模塊:pangu-spring-boot-starter
- 盤古 Dubbo 服務開發自動裝配模塊:pangu-dubbo-spring-boot-starter
- 盤古數據庫持久化操作自動裝配模塊:pangu-jdbc-spring-boot-starter
- 盤古緩存開發自動裝配模塊:pangu-cache-spring-boot-starter
- 盤古網關開發自動裝配模塊:pangu-gateway-spring-boot-starter
- 盤古 Web 應用自動裝配模塊:pangu-web-spring-boot-starter
- 盤古消息隊列自動裝配模塊:pangu-rabbitmq-spring-boot-starter
- 盤古分佈式事務自動裝配模塊:pangu-seata-spring-boot-starter
- 盤古數據治理(讀寫分離、數據分片等)自動裝配模塊:pangu-data-governance-spring-boot-starter
- 盤古代碼生成器Maven插件:pangu-generator-maven-plugin
- 盤古項目官網和文檔:pangu-website
- 盤古框架模版化參考範例集:pangu-examples
FAQ
你最想了解的常見問答可能都在這裏:🔜 常見問答 FAQ。