在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

当当开源 sharding-jdbc,轻量级数据库分库分表中间件

  • 2016-01-25
  • 本文字数:964 字

    阅读完需:约 3 分钟

近期,当当开源了数据库分库分表中间件 sharding-jdbc

Sharding-JDBC 是当当应用框架 ddframe 中,从关系型数据库模块 dd-rdb 中分离出来的数据库水平分片框架,实现透明化数据库分库分表访问。Sharding-JDBC 是继 dubbox 和 elastic-job 之后,ddframe 系列开源的第 3 个项目。
Sharding-JDBC 直接封装 JDBC 协议,可以理解为增强版的 JDBC 驱动,旧代码迁移成本几乎为零。
Sharding-JDBC 定位为轻量级 java 框架,使用客户端直连数据库,以 jar 包形式提供服务,无 proxy 代理层,无需额外部署,无其他依赖,DBA 也无需改变原有的运维方式。

主要包括以下特点:

  1. 可适用于任何基于 java 的 ORM 框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template 或直接使用 JDBC。
  2. 可基于任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid 等。
  3. 理论上可支持任意实现 JDBC 规范的数据库。虽然目前仅支持 MySQL,但已有支持 Oracle,SQLServer 等数据库的计划。
  4. 分片策略灵活,可支持等号,between,in 等多维度分片,也可支持多分片键。
  5. SQL 解析功能完善,支持聚合,分组,排序,limit,or 等查询,并支持 Binding Table 以及笛卡尔积表查询。
  6. 性能高。单库查询 QPS 为原生 JDBC 的 99.8%;双库查询 QPS 比单库增加 94%。

架构图

与常见开源产品对比
这里仅列出目前停止更新,但仍然在数据库分片领域非常有影响力的几个项目。

功能 Cobar Cobar-client TDDL Sharding-JDBC 分库 有 有 未开源 有 分表 无 无 未开源 有 中间层 是 否 否 否 ORM 支持 任意 仅 MyBatis 任意 任意 数据库支持 仅 MySQL 任意 任意 任意 异构语言 可 仅 Java 仅 Java 仅 Java 外部依赖 无 无 Diamond 无 Sharding-JDBC 严格遵循 Apache 2.0 许可证的要求。测试覆盖率 95%,目前已部署至 maven 中央仓库。可使用以下坐标引用:

复制代码
<groupId>com.dangdang</groupId>
<artifactId>sharding-jdbc-core</artifactId>
<version>1.0.0</version>

Sharding-JDBC 将保持持续更新,后续会完善读写分离、柔性分布式事务和高可用等相关功能。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

2016-01-25 18:0031172
用户头像

发布了 25 篇内容, 共 27.1 次阅读, 收获喜欢 119 次。

关注

评论

发布
暂无评论
发现更多内容

JAVA设计模式类第一博主,用这份文档覆盖GOF研磨这23种设计模式

Java 程序员 后端

Java线程池相关知识点总结,mybatis基础面试题

Java 程序员 后端

Java虚拟机 —— 类的加载机制,linux操作系统实用教程第二版课后答案

Java 程序员 后端

Java面试题总结(乱序版,2020-08-20,面试总结+详细解答

Java 程序员 后端

Java虚拟机学习集锦是我攒来的,但为你能过面试的心是真的!

Java 程序员 后端

java进阶篇02、注解、反射与动态代理,java教程视频免费

Java 程序员 后端

Java集合类中绝对占有一席之地的List,终于彻底把握了,零基础java入门教程

Java 程序员 后端

Java面试知识点解析——JVM篇,分布式中间件技术实战

Java 程序员 后端

Java面试题整理《基础篇》,java面试宝典pdf百度云

Java 程序员 后端

JDK新特性——Stream代码简洁之道,spring视频教程在线观看

Java 程序员 后端

java锁:第四章:读写锁,java框架ssh和ssm百度

Java 程序员 后端

Java面试-final的内存语义,我就不信你还吃不透Java的泛型

Java 程序员 后端

Java集合 —— Map集合,Java视频教程

Java 程序员 后端

Java面试八股文中,常问的那些spring高频题目解析,网易架构师深入讲解Java开发

Java 程序员 后端

JDK的前世今生:细数 Java5 - 15 的那些经典特性,java高级程序员的要求

Java 程序员 后端

Jenkins用户权限管理-Role-based Authorization Strategy插件

Java 程序员 后端

Java面试通关要点汇总集,开发者必备的顶级Java开发工具

Java 程序员 后端

JAVA线程池源码之深入状态值分析| Java Debug 笔记,java面试题库百度云链接

Java 程序员 后端

Java线程状态以及 sheep(),开发这么久这些问题都不会

Java 程序员 后端

Java进阶之梯,成长路线与学习资料,助力突破中间件领域

Java 程序员 后端

Java集合类之Collection接口,集合的“爸爸(1),算法竞赛入门经典java版

Java 程序员 后端

Java集合类之Collection接口,集合的“爸爸,21条MySQL性能调优经验

Java 程序员 后端

Java面试----2020年MyBatis常见实用面试题整理,字节跳动算法工程师面试

Java 程序员 后端

JAVA面试——请记住这些,mybatis动态代理原理

Java 程序员 后端

Java面试题原理和底层,java面试突击第二季

Java 程序员 后端

Jenkins集群下的pipeline实战,kalilinux使用教程pdf

Java 程序员 后端

java虚拟机,狂神mybatis笔记

Java 程序员 后端

Java虚拟机:Java内存区域及对象,java反射面试

Java 程序员 后端

Java进阶之深入理解Java的接口和抽象类,2021最新Java面试题目

Java 程序员 后端

Java面试很难?靠这份文档学习2个晚上拿到阿里,网易等大厂offer

Java 程序员 后端

Java高级特性——注解,kafka消息队列的实现原理

Java 程序员 后端

当当开源sharding-jdbc,轻量级数据库分库分表中间件_语言 & 开发_张亮_InfoQ精选文章