QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

当当开源 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:0030641
用户头像

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

关注

评论

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

区块链+供应链:共建全国统一大市场

CECBC

微博系统中”微博评论“的高性能高可用计算架构

凯博无线

下一站,智能世界:华为给全球轨道数字化带来全新加速度

脑极体

模块五:微博评论的高性能高可用框架

jiaoxn

时序数据库在智慧用电领域的应用

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

druid 源码阅读(三)初始化连接池(2)

爱晒太阳的大白

5月月更

面试答不上Java并发编程?阿里P8提供的27道并发面试解析,请查收

Java浪潮

Java spring 架构 编程语言

在线TSV转XML/JSON工具

入门小站

工具

Go Web编程入门:路由

宇宙之一粟

Go Go web 5月月更

618大促100用户级秒杀系统架构设计

IT屠狗辈

架构实战营

【LeetCode】删列造序Java题解

Albert

LeetCode 5月月更

vue框架

恒山其若陋兮

5月月更

设计模式之建造者模式

乌龟哥哥

5月月更

微博评论高性能高可用计算架构设计

踩着太阳看日出

架构训练营

在线Base64编码加密解密还原工具

入门小站

工具

Long与Arrays的使用注意

zarmnosaj

5月月更

元宇宙参与指南——如何融入元宇宙建设?

CECBC

【愚公系列】2022年05月 二十三种设计模式(十二)-代理模式(Proxy Pattern)

愚公搬代码

5月月更

微博评论高性能高可用计算架构

Trent

高可用 架构设计 高性能 训练营

再谈JavaScript 中的对象解构

devpoint

JavaScript ES6 5月月更 赋值解构 对象操作

linux之yum源设置代理

入门小站

Linux

基于 Agora SDK 实现 Windows 端的多人视频互动(基于3.6.2版本)

声网

音视频 sdk

通用池化框架commons-pool2实践

FunTester

微博评论高性能高可用计算架构设计分析

锎心😌😌😌

存在负权边,Bellman-Ford

工程师日月

算法 5月月更

微博评论的高性能高可用计算架构

大眼喵

「架构实战营」

面试还不会Spring?阿里P8总结的100道面试解析,让你实锤面试官

Java浪潮

Java 编程 架构

Redis「1」流水线、事务、Lua 脚本

Samson

Redis 核心技术与实战 5月月更

学生管理系统(1)简介

5月月更

架构实战营 - 模块五 - 作业

michael

架构实战营 #架构实战营 「架构实战营」

聊聊 Kafka:Kafka 消息重复的场景以及最佳实践

老周聊架构

kafka 5月月更

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