写点什么

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

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

关注

评论

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

天润融通助力味多美,AI技术驱动百年品牌服务升级

天润融通

阿里P8精心整理MongoDB+RabbitMQ+Memcached面试题,100%拿offer

程序员高级码农

Java 编程 程序员 java面试 Java面试题

天润融通亮相CCFA论坛:AI Agent引领零售业服务精细化运营

天润融通

应用程序开发加速包:12个最佳开放API

幂简集成

API 开放 API

IM即时通讯技术栈与界面设计:WorkPlus的实践与创新

BeeWorks

中小企业OKR软件推荐:8款主流工具对比评测

易成研发中心

深入探索Spring AI:源码分析流式回答

EquatorCoco

Java spring 前端

观测云采集云资源自定义标签最佳实践

观测云

云计算 云资源

深度解析Spring AI:请求与响应机制的核心逻辑

不在线第一只蜗牛

Java spring

阿里拿38K出来的大佬良心分享,熬夜整理10 万字详细Java面试笔记!

Summer

Java 编程 程序员 面试 架构师

BiFinance 币汇携手上市公司鼎亿集团,加速 RWA 赛道 Web3 布局

TechubNews

租用电商云手机的注意事项

Ogcloud

云手机 海外云手机 电商云手机 云手机群控

文献解读-Phenotypic expression and clinical outcomes in a South Asian PRKAG2 cardiomyopathy cohort

INSVAST

基因数据分析 多组学 生信分析 Sentieon 变异检测

11Labs 推出 Conversational AI,可定制交互式语音智能体;Recall.ai:视频会议智能体通用 API

声网

im即时通讯是什么?

BeeWorks

解密时序数据库的未来:TDengine Open Day技术沙龙精彩回顾

TDengine

数据库 tdengine

SD-WAN的常见使用案例

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

凭借这份国内最新最全Java八股文(终极版),我成功入职字节T2-2

Summer

Java 编程 程序员 面试 架构师

如何快速获取开源组件信息

陈老老老板

#开源 #数据

Spring事务的一道面试题

快乐非自愿限量之名

spring

免费且好用的项目管理工具有哪些?2024年精选13款

爱吃小舅的鱼

项目管理工具

Taobao Agent Russia丨俄罗斯淘宝代购集运系统PHP搭建攻略

tbapi

淘宝代购系统 淘宝代购集运系统 俄语网站建设 俄语淘宝代购系统

数据可视化的发展趋势

inBuilder低代码平台

数据可视化

数据分析与AI丨大模型+知识图谱,将企业数据转化为商业价值

Altair RapidMiner

数据分析 知识图谱 #人工智能 altair #大模型

AI人工智能软件哪个好?30个办公常用的ai工具盘点!

职场工具箱

人工智能 AI 办公软件 AIGC AI生成PPT

技术沙龙演讲实录 | 张俊钦:火山引擎边缘智能,联通大模型的物理世界

火山引擎边缘云

智能IoT边缘服务 AI Agent AI Agents 边缘智能

SaaS架构:中央库存系统架构设计

不在线第一只蜗牛

架构 SaaS

好故事,听你的!「首档程序员自述体纪录片」讲述者招募

融云 RongCloud

基于字节开源云原生数据仓库ByConity测试ELT需求

完美句号

MPP bsp ByConity bsp模式

WorkPlus即时通讯(IM)系统:功能解析与企业应用

BeeWorks

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