Sharding-JDBC 介紹和JDBC對比


Sharding-JDBC介紹

Sharding-JDBC是當當網研發的開源分布式數據庫中間件,從 3.0 開始Sharding-JDBC被包含在 Sharding-Sphere 中,之后該項目進入Apache孵化器,4.0版本之后的版本為Apache版本。

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

官方地址:https://shardingsphere.apache.org/document/current/cn/overview/

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

Sharding-JDBC的核心功能為數據分片讀寫分離,通過Sharding-JDBC,應用可以透明的使用jdbc訪問已經分庫分表、讀寫分離的多個數據源,而不用關心數據源的數量以及數據如何分布。

  • 適用於任何基於JavaORM框架,如: Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。 
  • 基於任何第三方的數據庫連接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等。
  • 支持任意實現JDBC規范的數據庫。目前支持MySQLOracleSQLServerPostgreSQL

上圖展示了Sharding-Jdbc的工作方式,使用Sharding-Jdbc前需要人工對數據庫進行分庫分表,在應用程序中加入Sharding-JdbcJar包,應用程序通過Sharding-Jdbc操作分庫分表后的數據庫和數據表,由於Sharding-Jdbc是對Jdbc驅動的增強,使用Sharding-Jdbc就像使用Jdbc驅動一樣,在應用程序中是無需指定具體要操作的分庫和分表的。 

jdbc性能對比

1. 性能損耗測試:服務器資源充足、並發數相同,比較JDBCSharding-JDBC性能損耗,Sharding-JDBC相對JDBC損耗不超過7%。 

 

2. 性能對比測試:服務器資源使用到極限,相同的場景JDBCSharding-JDBC的吞吐量相當。

3. 性能對比測試:服務器資源使用到極限,Sharding-JDBC采用分庫分表后,Sharding-JDBC吞吐量較JDBC不分表有接近2倍的提升。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM