Sharding-JDBC(一)簡介

轉載自:ShardingSphere官網

目錄

  一、介紹

    1. Sharding-JDBC

    2. Sharding-Proxy

    3. Sharding-Sidecar(TBD)

    4. 混合架構

  二、功能列表

    1. 數據分片

    2. 分佈式事務

    3. 數據庫治理

  三、規劃線路圖

 

在介紹Sharding-JDBC之前,有必要先介紹下Sharding-JDBC的大家族ShardingSphere。在介紹ShardingSphere之後,相信大家會對ShardingSphere的整體架構以及Sharding-JDBC扮演的角色會有更深的瞭解。

ShardingSphere是一套開源的分佈式數據庫中間件解決方案組成的生態圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(計劃中)這3款相互獨立的產品組成。 他們均提供標準化的數據分片、分佈式事務和數據庫治理功能,可適用於如Java同構、異構語言、容器、雲原生等各種多樣化的應用場景。

ShardingSphere定位爲關係型數據庫中間件,旨在充分合理地在分佈式的場景下利用關係型數據庫的計算和存儲能力,而並非實現一個全新的關係型數據庫。 它與NoSQL和NewSQL是並存而非互斥的關係。NoSQL和NewSQL作爲新技術探索的前沿,放眼未來,擁抱變化,是非常值得推薦的。反之,也可以用另一種思路看待問題,放眼未來,關注不變的東西,進而抓住事物本質。 關係型數據庫當今依然佔有巨大市場,是各個公司核心業務的基石,未來也難於撼動,我們目前階段更加關注在原有基礎上的增量,而非顛覆。

一、介紹

1. Sharding-JDBC

定位爲輕量級Java框架,在Java的JDBC層提供的額外服務。 它使用客戶端直連數據庫,以jar包形式提供服務,無需額外部署和依賴,可理解爲增強版的JDBC驅動,完全兼容JDBC和各種ORM框架。

  • 適用於任何基於Java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。
  • 基於任何第三方的數據庫連接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等。
  • 支持任意實現JDBC規範的數據庫。目前支持MySQL,Oracle,SQLServer和PostgreSQL。

 

2. Sharding-Proxy

定位爲透明化的數據庫代理端,提供封裝了數據庫二進制協議的服務端版本,用於完成對異構語言的支持。 目前先提供MySQL版本,它可以使用任何兼容MySQL協議的訪問客戶端(如:MySQL Command Client, MySQL Workbench等)操作數據,對DBA更加友好。

  • 嚮應用程序完全透明,可直接當做MySQL使用。
  • 適用於任何兼容MySQL協議的客戶端。

3. Sharding-Sidecar(TBD)

定位爲Kubernetes或Mesos的雲原生數據庫代理,以DaemonSet的形式代理所有對數據庫的訪問。 通過無中心、零侵入的方案提供與數據庫交互的的齧合層,即Database Mesh,又可稱數據網格。

Database Mesh的關注重點在於如何將分佈式的數據訪問應用與數據庫有機串聯起來,它更加關注的是交互,是將雜亂無章的應用與數據庫之間的交互有效的梳理。使用Database Mesh,訪問數據庫的應用和數據庫終將形成一個巨大的網格體系,應用和數據庫只需在網格體系中對號入座即可,它們都是被齧合層所治理的對象。

 

 

  Sharding-JDBC Sharding-Proxy Sharding-Sidecar
數據庫 任意 MySQL MySQL
連接消耗數
異構語言 僅Java 任意 任意
性能 損耗低 損耗略高 損耗低
無中心化
靜態入口

 4. 混合架構

Sharding-JDBC採用無中心化架構,適用於Java開發的高性能的輕量級OLTP應用;Sharding-Proxy提供靜態入口以及異構語言的支持,適用於OLAP應用以及對分片數據庫進行管理和運維的場景。

ShardingSphere是多接入端共同組成的生態圈。 通過混合使用Sharding-JDBC和Sharding-Proxy,並採用同一註冊中心統一配置分片策略,能夠靈活的搭建適用於各種場景的應用系統,架構師可以更加自由的調整適合於當前業務的最佳系統架構。

二、功能列表

1. 數據分片

  • 分庫 & 分表
  • 讀寫分離
  • 分片策略定製化
  • 無中心化分佈式主鍵

 2. 分佈式事務

  • 標準化事務接口
  • XA強一致事務
  • 柔性事務

 3. 數據庫治理

  • 配置動態化
  • 編排 & 治理
  • 數據脫敏
  • 可視化鏈路追蹤
  • 彈性伸縮(規劃中)

 三、規劃線路圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章