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

Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据库分库分表访问。Sharding-JDBC是继dubbox和elastic-job之后,ddframe系列开源的第3个项目。

Sharding-JDBC直接封装JDBC协议,可以理解为增强版的JDBC驱动,旧代码迁移成本几乎为零。

Sharding-JDBC定位为轻量级java框架,使用客户端直连数据库,以jar包形式提供服务,无proxy代理层,无需额外部署,无其他依赖,DBA也无需改变原有的运维方式。

主要包括以下特点:

可适用于任何基于java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。

可基于任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid等。

理论上可支持任意实现JDBC规范的数据库。虽然目前仅支持MySQL,但已有支持Oracle,SQLServer等数据库的计划。

分片策略灵活,可支持等号,between,in等多维度分片,也可支持多分片键。

SQL解析功能完善,支持聚合,分组,排序,limit,or等查询,并支持Binding Table以及笛卡尔积表查询。

性能高。单库查询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中央仓库。可使用以下坐标引用:

com.dangdang

sharding-jdbc-core

1.0.0

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

感谢郭蕾对本文的审校。

http://www.infoq.com/cn/news/2016/01/sharding-jdbc-dangdang

mysql分库分表中间件6_当当开源sharding-jdbc,轻量级数据库分库分表中间件相关推荐

  1. 当当网mysql分库分表策略_当当开源sharding-jdbc,轻量级数据库分库分表中间件

    近期,当当开源了数据库分库分表中间件sharding-jdbc. Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据 ...

  2. java获取表主外键_通过 jdbc 分析数据库中的表结构和主键外键

    文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hib ...

  3. 开源纯C#轻量级数据库引擎:SharpHSQL 1.0.3.0版本

    开源纯C#轻量级数据库引擎:SharpHSQL 1.0.3.0版本出了2个多月了,我一直没有给大家报道,这是目前唯一发现的用纯C#开发的稳定的轻量级数据库引擎,在我的建议下,已经支持Unicode,包 ...

  4. mysql查询动态表名的数据类型_Mysql中查询某个数据库中所有表的字段信息

    前言 有时候,需要在数据库中查询一些字段的具体信息,而这些字段又存在于不同的表中,那么我们如何来查询呢? 在每一个数据库链接的information_schema数据库中,存在这样一张表--COLUM ...

  5. vb 读取mysql所有表名_vb怎么列举出一个mdb数据库里面所有表名?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Private Sub Command1_Click() Dim conn As New ADODB.Connection Dim rs As New A ...

  6. mysql删除表中所有数据的语句_sql删除数据库中所有表与数据语句

    来源:转载 如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍. 使用sql删除数据库中所有表 ...

  7. dba+开源工具:轻量级数据库审计日志平台,违规操作无所遁形(附下载)

    工具研发者介绍 贺春旸, 凡普金科和爱钱进DBA团队负责人,<MySQL管理之道:性能调优.高可用与监控>第一.二版作者,曾任职于中国移动飞信.安卓机锋网.四次荣获dbaplus年度MVP ...

  8. mysql创建表时添加范式_MySql三大范式与数据库设计和表创建常用语句

    [数据库设计的三大范式] 1.第一范式(1NF First Normal Fromate):数据表中的每一列(字段),必须是不可拆分的最小单元.也就是确保每一列的原子性. 例如: userInfo: ...

  9. 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量...

    当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后,接下来的问题就是如何去实现切分方案了,目前在sharding方面有不少的开源框架和产 品可供参考,同时很多团队也会选择自主开发实现,而不管是 ...

最新文章

  1. java抽象类习题_Java练习抽象类
  2. css元素捕捉,css元素选择器
  3. Java应用中使用ShutdownHook友好地清理现场(转)
  4. bzoj4919 大根堆
  5. 2014科目三大路考各项目操作要求
  6. google官方上拉刷新
  7. python字符串操作_Python 字符串操作 - 树懒学堂
  8. c++ string 末尾追加char字符
  9. 循序渐进之Spring AOP(5) - 创建切面
  10. [uva11806]容斥定理
  11. Google I/O 还没开始,我们先来看点什么?
  12. 链接mysql工具封装_JDBC——java连接MySQL封装处理
  13. 轻松搞定个人虚拟桌面部署之5-在客户端测试远程桌面
  14. MAC修改hosts
  15. 无线怎么计算机网络地址,如何查看无线路由器ip地址?
  16. 计算机上e盘拒绝访问,e盘拒绝访问怎么办,教你win7系统e盘拒绝访问的应对办法...
  17. 查询失败,后台服务器运行错误,添加网络打印机错误?怎么处理?Windows 无法连接到打印机。 服务器打印后台处理程序服务没有运行。...
  18. Android NCNN识别文字(OCR)
  19. 苹果手机用计算机打不开,苹果手机打不开ban网,ban打不开
  20. 计算机高考英语,高考英语优秀作文 Computer(计算机)

热门文章

  1. 超全的机器学习、深度学习视频课程和讲义的百度网盘下载
  2. 人工智能与计算机软件的区别,人工智能和计算智能有什么区别呢?
  3. IDEA安装Activiti画图插件
  4. 浅谈社交电商产品设计的10个深刻的知识
  5. Java8的Stream中的Collectors操作求double类型和的坑
  6. 工程监测多通道振弦模拟信号采集仪VTN的MODBUS 通讯协议
  7. PMP考试报名有什么硬性要求?你达标了吗?
  8. Unity中特效透明度动态设置
  9. 互联网络——基本的单极互联网络
  10. 深度可分离卷积(Xception 相关)