開源專案
apache/shardingsphere avatar
apache/shardingsphere

apache/shardingsphere:從 README 讀懂功能邊界與部署路徑

透過分散式 SQL 增強資料智能,實現跨所有資料庫的分片、可擴展性和安全性。

20,798 個 Star6,899 個 ForkJavaApache-2.0
GitHub

秒懂

它是什麼?
Empowering Data Intelligence with Distributed SQL for Sharding, Scalability, and Security Across All Databases. 本文依官方 README 整理元件、使用方式、限制與核驗重點。
適合誰用?
適合需要 shardingsphere README 所列能力、且能依其部署方式維護環境的團隊;不適合只需要更簡單工具或無法承擔其相依服務的人。先執行指定的 shardingsphere 範例與檢查命令,觀察輸出、設定檔和錯誤行為,再決定是否納入正式流程。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 Java(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

定位與範圍

Apache ShardingSphere 是一個由 Apache 軟體基金會維護的 Java 專案,以 Apache License 2.0 發布。README 將其描述為建立在異構資料庫之上的標準與生態,名稱為 Database Plus。它不建立新資料庫,而是作為資料庫之上的作業系統層,提供統一的資料存取與額外的運算能力。該專案於 2020 年 4 月 16 日成為 Apache 頂級專案,README 稱已被超過 19,000 個專案採用。倉庫中繼資料列出 20,771 個 star 與 6,902 個 fork。

在 apache/shardingsphere 以 mvn -Prelease -DskipTests install 的文件路徑建立測試,檢查 shardingsphere-jdbc-core 與 YAML 規則載入結果。 這是第 1 節對應的專案檢查點。

三大支柱:連接、增強、可插拔

README 圍繞三個支柱組織專案。連接指建立資料庫上層標準,透過協定、SQL 方言與儲存格式的彈性適配,讓應用程式快速接入多型態異構資料庫。增強是運算增強引擎,提供分散式運算、資料安全、流量控制與可觀測性。可插拔指微核心加三層可插拔架構,將核心、功能元件與生態整合完全解耦,開發者可依需求組裝設定。

在 apache/shardingsphere 以 mvn -Prelease -DskipTests install 的文件路徑建立測試,檢查 shardingsphere-jdbc-core 與 YAML 規則載入結果。 這是第 2 節對應的專案檢查點。

針對 apache/shardingsphere 的這個檢查,應把第 1 次執行的版本、輸入與輸出分開保存。若 shardingsphere 的終端訊息、服務埠或產物位置與 README 不同,先以實際錯誤為界線,不把未被文件描述的行為當成保證;再回看 master 分支的對應設定,確認問題是在依賴、權限、資料格式或執行器。

兩個存取端

ShardingSphere 提供兩個存取端。ShardingSphere-JDBC 是輕量級 Java 框架與增強型 JDBC 驅動程式,從用戶端直接連接,以 JAR 形式分發,不需額外部署與相依。ShardingSphere-Proxy 是透明資料庫代理,作為獨立伺服器部署,封裝資料庫二進位協定,任何相容 MySQL 或 PostgreSQL 的用戶端都可連接。README 表示兩個存取端可獨立部署,也可透過同一註冊中心混合部署。

在 apache/shardingsphere 以 mvn -Prelease -DskipTests install 的文件路徑建立測試,檢查 shardingsphere-jdbc-core 與 YAML 規則載入結果。 這是第 3 節對應的專案檢查點。

針對 apache/shardingsphere 的這個檢查,應把第 2 次執行的版本、輸入與輸出分開保存。若 shardingsphere 的終端訊息、服務埠或產物位置與 README 不同,先以實際錯誤為界線,不把未被文件描述的行為當成保證;再回看 master 分支的對應設定,確認問題是在依賴、權限、資料格式或執行器。

JDBC 細節與 ANTLR 快取警告

對於 ShardingSphere-JDBC,README 聲稱相容 MyBatis、JPA、Hibernate 等 ORM 框架,並定位於高效能 Java 應用場景。它也提出具體警告:ANTLR 在解析 SQL 時使用內部快取提升效能,若應用有太多 SQL 樣板,快取會持續成長並佔用大量堆積記憶體。README 引用 ANTLR issue 4232,表示該問題尚未最佳化,並建議用 -Xmx 設定合理的堆積記憶體大小以避免記憶體不足錯誤。

在 apache/shardingsphere 以 mvn -Prelease -DskipTests install 的文件路徑建立測試,檢查 shardingsphere-jdbc-core 與 YAML 規則載入結果。 這是第 4 節對應的專案檢查點。

針對 apache/shardingsphere 的這個檢查,應把第 3 次執行的版本、輸入與輸出分開保存。若 shardingsphere 的終端訊息、服務埠或產物位置與 README 不同,先以實際錯誤為界線,不把未被文件描述的行為當成保證;再回看 master 分支的對應設定,確認問題是在依賴、權限、資料格式或執行器。

Proxy 與混合部署

ShardingSphere-Proxy 面向異構語言環境與資料庫維運團隊,README 表示目前提供的 MariaDB、MySQL 與 PostgreSQL 版本可使用任何終端機。混合架構下,JDBC 與 Proxy 透過同一註冊中心與統一分片策略協作,一份設定即可協調兩端。README 將 JDBC 對應到以 Java 開發的高效能輕量 OLTP 應用,將 Proxy 對應到 OLAP 應用與分片資料庫管理,並說明從 JDBC 到 Proxy 有平滑演進路徑。

在 apache/shardingsphere 以 mvn -Prelease -DskipTests install 的文件路徑建立測試,檢查 shardingsphere-jdbc-core 與 YAML 規則載入結果。 這是第 5 節對應的專案檢查點。

針對 apache/shardingsphere 的這個檢查,應把第 4 次執行的版本、輸入與輸出分開保存。若 shardingsphere 的終端訊息、服務埠或產物位置與 README 不同,先以實際錯誤為界線,不把未被文件描述的行為當成保證;再回看 master 分支的對應設定,確認問題是在依賴、權限、資料格式或執行器。

微核心與三層可插拔模型

README 的技術架構部分描述微核心加三層可插拔模型。核心層包含查詢最佳化器、分散式交易與執行引擎。功能層列出資料分片、讀寫分離、聯邦查詢、資料加密、資料遮罩、SQL 稽核、影子庫、可觀測性與流量控制。生態層涵蓋 MySQL、PostgreSQL、Oracle 等資料庫協定適配,以及 ZooKeeper、etcd 等註冊中心整合,並包含設定管理、服務發現與監控整合。README 稱這三層完全解耦。

在 apache/shardingsphere 以 mvn -Prelease -DskipTests install 的文件路徑建立測試,檢查 shardingsphere-jdbc-core 與 YAML 規則載入結果。 這是第 6 節對應的專案檢查點。

功能矩陣列出的內容

README 將能力分為五組:分散式資料庫核心能力、資料安全與治理、資料庫閘道能力、全鏈路壓力測試與可觀測性、企業級特性。列出的項目包括水平分片與垂直分片、讀寫分離、XA 與 BASE欄位級加密、遮罩、SQL 防火牆、SQL 方言翻譯、影子庫、分散式追蹤、叢集部署、Kubernetes 整合以及監控告警。README 沒有提供這些功能的版本號、預設值或設定細節,驗證行為需查閱官方文件。

在 apache/shardingsphere 以 mvn -Prelease -DskipTests install 的文件路徑建立測試,檢查 shardingsphere-jdbc-core 與 YAML 規則載入結果。 這是第 7 節對應的專案檢查點。

專案狀態與授權條款

README 說明 5.5.4-SNAPSHOT 版本正在積極開發中,5.5.4 版本將包含多項安全增強與效能最佳化,並指向 GitHub 上的發行說明與專案 Wiki 的建置指南。倉庫授權為 Apache-2.0。授權條款摘錄授予永久的、免版稅的版權授權與覆蓋所提交工作的專利授權。摘錄未涉及保固、支援或安全態勢。

在 apache/shardingsphere 以 mvn -Prelease -DskipTests install 的文件路徑建立測試,檢查 shardingsphere-jdbc-core 與 YAML 規則載入結果。 這是第 8 節對應的專案檢查點。

編輯結論

適合需要 shardingsphere README 所列能力、且能依其部署方式維護環境的團隊;不適合只需要更簡單工具或無法承擔其相依服務的人。先執行指定的 shardingsphere 範例與檢查命令,觀察輸出、設定檔和錯誤行為,再決定是否納入正式流程。

官方來源

  1. Official README
  2. Project repository
  3. Release notes
社群筆記

社群筆記