shargingjdbc底层原理

shargingjdbc底层原理
最新回答
﹏澈

2021-01-31 15:12:47

Sharding-JDBC底层原理是通过在JDBC层提供额外拓展的服务,实现数据库的分库分表和读写分离等功能

核心设计

  • Sharding-JDBC定位为轻量级数据库驱动,其核心设计目标是透明化分片逻辑并最大化复用原生JDBC接口。它使用客户端直接连接数据库,以jar包的形式提供服务,不需要额外的依赖和部署,可以理解为增强版的JDBC驱动。

整体架构

  • Sharding-JDBC的整体架构包含了入口API、内部对象和配置对象等部分。
  • 入口API采用工厂方法的方式,通过ShardingDataSourceFactory和MasterSlaveDataSourceFactory等工厂类生成数据源对象。
  • 内部对象由Sharding-JDBC内部使用,应用开发者无需关注。
  • 配置对象提供了灵活多变的配置方式,包括ShardingRuleConfiguration和TableRuleConfiguration等,用于封装分片配置信息。

具体实现

  • Sharding-JDBC通过解析SQL语句,根据预设的分片策略(如哈希分片、范围分片等)将SQL语句路由到对应的数据库和表上。
  • 在这一过程中,Sharding-JDBC会对SQL语句进行改写和重写,以确保其能够在分片后的数据库上正确执行。

附加功能

  • Sharding-JDBC还提供了分布式主键生成、分布式事务管理等功能,以支持复杂的分布式数据库场景。

兼容性

  • Sharding-JDBC支持多种数据库连接池和JDBC规范数据库,如MySQL、Oracle、SQL Server和PostgreSQL等,这使得Sharding-JDBC能够广泛应用于各种基于Java的ORM框架和数据库环境中。

综上所述,Sharding-JDBC的底层原理是通过在JDBC层进行拓展,实现数据库的分库分表和读写分离等功能,并通过一系列技术和策略确保分片后的数据库能够正确执行SQL语句。