Apache ShardingSphere
Apache ShardingSphere(原名Sharding-JDBC)是一個開源的、分布式的數據庫中間件,專注於數據庫分片(Sharding)、分散式數據庫訪問(Sharding)、數據庫代理(Proxy)、和分布式事務(Distributed Transaction)等功能。
Last updated
Apache ShardingSphere(原名Sharding-JDBC)是一個開源的、分布式的數據庫中間件,專注於數據庫分片(Sharding)、分散式數據庫訪問(Sharding)、數據庫代理(Proxy)、和分布式事務(Distributed Transaction)等功能。
Last updated
Apache ShardingSphere 是一個將任何數據庫轉換為分散式數據庫系統,並增強其功能,包括分片、彈性擴展、加密等等的生態系統。
該項目致力於提供一個多源異構、增強型的數據庫平台,並進一步在平台上層構建生態系統。Apache ShardingSphere 的設計理念是 Database Plus
`,旨在構建異構數據庫上層的標準和生態系統。它的重點在於如何充分合理地利用現有數據庫的計算和存儲能力,而不是創建全新的數據庫。它更加強調多個數據庫之間的協作,而不僅僅是單個數據庫本身。
Apache ShardingSphere 包括兩個獨立的客戶端:ShardingSphere-JDBC 和 ShardingSphere-Proxy。它們都提供數據的分散、分布式事務和分布式治理功能,適用於各種場景,例如Java同構、異構語言和雲原生環境。本次僅說明 ShardingSphere Proxy 應用及實戰,並且使用Docker部署服務。
ShardingSphere-Proxy 是一個透明的數據庫代理,提供一個封裝數據庫二進制協議以支援異構語言的數據庫服務器。
ShardingSphere Proxy 提供了以下關鍵功能:
數據庫路由:ShardingSphere Proxy 可以根據SQL語句的解析和分析,將數據庫請求路由到相應的後端數據庫實例。這使得應用程序無需關心數據庫集群的具體配置,簡化了代碼和數據庫切換的操作。
讀寫分離:ShardingSphere Proxy 支持讀寫分離策略,允許將讀取請求路由到讀庫,以減輕主庫的壓力。這提高了系統的性能和伸縮性。
SQL 收集和監控:ShardingSphere Proxy 可以收集SQL請求並提供性能監控信息,讓你能夠追蹤和分析應用程序對數據庫的使用情況,進行性能調優和故障排除。
安全性:ShardingSphere Proxy 可以提供身份驗證、授權和數據加密等安全功能,保護數據庫系統免受潛在的風險。
廢話不多說,先上扣
依照Readme
操作指引建立 資料庫(MySQL or PostgresSQL)、shardingSphere-proxy
建立 資料庫(MySQL or PostgresSQL)
建立 schema, PostgresSQL 會比較特別,他是要建立database,但 schema 僅能使用預設 pulibc
來操作,官方有說暫不支援指定schema。
編輯 sharding config 文件,但我已經寫好的,後續想調整就自己再調整。
透過 docker 啟動 sharing
利用DB連線工具,連結 sharding 代理伺服器,不是連到實體資料庫喔,連線資訊可以看 spring boot yml ,並且建立Table。
查看分庫分表是否成功,確認成功才繼續往下走,失敗則排查錯誤內容,這邊就要考驗各位的敏銳度了,以及資料庫的排查能力,理論上是不會錯啦,因為我測試好多次了。
啟動 spring boot
import post collection json 我預先建立了幾支api 對資料庫操作(select & insert)
呼叫API 查看 console log
ShardingSphere Proxy 是一個功能豐富的數據庫代理,可以幫助應用程序實現高性能、可伸縮、安全的數據庫訪問。它通過路由、分離、監控和安全性等功能,使應用程序更容易管理和維護與數據庫的交互。這對需要處理大型數據和分布式數據庫的應用程序特別有用。