mysql分库分表中间件6_当当开源sharding-jdbc,轻量级数据库分库分表中间件
近期,当当开源了数据库分库分表中间件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,轻量级数据库分库分表中间件相关推荐
- 当当网mysql分库分表策略_当当开源sharding-jdbc,轻量级数据库分库分表中间件
近期,当当开源了数据库分库分表中间件sharding-jdbc. Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据 ...
- java获取表主外键_通过 jdbc 分析数据库中的表结构和主键外键
文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hib ...
- 开源纯C#轻量级数据库引擎:SharpHSQL 1.0.3.0版本
开源纯C#轻量级数据库引擎:SharpHSQL 1.0.3.0版本出了2个多月了,我一直没有给大家报道,这是目前唯一发现的用纯C#开发的稳定的轻量级数据库引擎,在我的建议下,已经支持Unicode,包 ...
- mysql查询动态表名的数据类型_Mysql中查询某个数据库中所有表的字段信息
前言 有时候,需要在数据库中查询一些字段的具体信息,而这些字段又存在于不同的表中,那么我们如何来查询呢? 在每一个数据库链接的information_schema数据库中,存在这样一张表--COLUM ...
- vb 读取mysql所有表名_vb怎么列举出一个mdb数据库里面所有表名?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Private Sub Command1_Click() Dim conn As New ADODB.Connection Dim rs As New A ...
- mysql删除表中所有数据的语句_sql删除数据库中所有表与数据语句
来源:转载 如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍. 使用sql删除数据库中所有表 ...
- dba+开源工具:轻量级数据库审计日志平台,违规操作无所遁形(附下载)
工具研发者介绍 贺春旸, 凡普金科和爱钱进DBA团队负责人,<MySQL管理之道:性能调优.高可用与监控>第一.二版作者,曾任职于中国移动飞信.安卓机锋网.四次荣获dbaplus年度MVP ...
- mysql创建表时添加范式_MySql三大范式与数据库设计和表创建常用语句
[数据库设计的三大范式] 1.第一范式(1NF First Normal Fromate):数据表中的每一列(字段),必须是不可拆分的最小单元.也就是确保每一列的原子性. 例如: userInfo: ...
- 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量...
当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后,接下来的问题就是如何去实现切分方案了,目前在sharding方面有不少的开源框架和产 品可供参考,同时很多团队也会选择自主开发实现,而不管是 ...
最新文章
- java抽象类习题_Java练习抽象类
- css元素捕捉,css元素选择器
- Java应用中使用ShutdownHook友好地清理现场(转)
- bzoj4919 大根堆
- 2014科目三大路考各项目操作要求
- google官方上拉刷新
- python字符串操作_Python 字符串操作 - 树懒学堂
- c++ string 末尾追加char字符
- 循序渐进之Spring AOP(5) - 创建切面
- [uva11806]容斥定理
- Google I/O 还没开始,我们先来看点什么?
- 链接mysql工具封装_JDBC——java连接MySQL封装处理
- 轻松搞定个人虚拟桌面部署之5-在客户端测试远程桌面
- MAC修改hosts
- 无线怎么计算机网络地址,如何查看无线路由器ip地址?
- 计算机上e盘拒绝访问,e盘拒绝访问怎么办,教你win7系统e盘拒绝访问的应对办法...
- 查询失败,后台服务器运行错误,添加网络打印机错误?怎么处理?Windows 无法连接到打印机。 服务器打印后台处理程序服务没有运行。...
- Android NCNN识别文字(OCR)
- 苹果手机用计算机打不开,苹果手机打不开ban网,ban打不开
- 计算机高考英语,高考英语优秀作文 Computer(计算机)