ShardingJDBC是Apache ShardingSphere项目中的一个轻量级Java框架,专为分布式数据库设计,提供数据分片、读写分离等核心功能。它作为一个增强型的JDBC驱动,使得应用程序能够在不修改太多现有代码的情况下,透明地访问分布式数据库环境,包括分片后的数据库和表,以及在不同数据库实例上的读写分离配置。

核心特性:

  1. 数据分片:允许将一个大表按照某种策略(如哈希、范围等)分割成多个小表分布在不同的数据库节点上,以达到水平扩展数据库的目的。
  2. 读写分离:支持配置主从数据库,自动将写操作路由到主数据库,读操作路由到从数据库,以此提高系统的读取能力和容错性。
  3. 多租户支持:能够将不同租户的数据隔离在不同的数据库或表中,确保数据的安全性和隐私性。
  4. 异地多活:配合分布式系统部署,可实现数据在多个数据中心的实时同步和故障切换,增强系统的可用性和灾难恢复能力。
  5. 透明化访问:对应用层透明,开发者无需关注底层数据分布细节,如同操作单一数据库一样使用JDBC。
  6. 兼容性广:全面兼容JDBC和大多数ORM框架,如MyBatis、Hibernate、Spring JDBC Template等,同时支持多种数据库连接池和遵循SQL92标准的数据库系统。

使用场景

  • 高并发、大数据量的互联网应用,通过分片分散数据库访问压力。
  • 微服务架构,在微服务中独立管理数据库资源,实现服务自治。
  • SaaS应用,利用多租户功能有效隔离不同客户的数据。
  • 需要跨地域部署的应用,实现数据的多地部署和容灾。

视频教程

https://www.bilibili.com/video/BV1ei4y1K7dn