博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
持久化框架:轻量级的关系型数据库中间件 Sharding-JDBC
阅读量:4293 次
发布时间:2019-05-27

本文共 1710 字,大约阅读时间需要 5 分钟。

教育与IT技术 2017-10-10 12:53

框架介绍

Sharding-JDBC 是一个轻量级的关系型数据库中间件,提供分库分表、读写分离和柔性事务等功能。它直接封装 JDBC 协议,可以理解为增强版的 JDBC 驱动,旧代码迁移成本几乎为零。它使用客户端直连数据库,以 jar 包形式提供服务,无 proxy 代理层,无需额外部署,无其他依赖,DBA 也无需改变原有的运维方式。

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

主要包括以下特点:

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

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

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

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

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

  • 性能高。单库查询 QPS 为原生 JDBC 的 99.8%;双库查询 QPS 比单库增加94%。

架构图

持久化框架:轻量级的关系型数据库中间件 Sharding-JDBC

架构图

sharding-jdbc和好的解决了分库分表的问题,并且支持大部分的sql已完全够用。而且比较灵活,有分表策略配置和分裤策略配置,开发文档也将的非常详细,清楚,并提供了demo,简单易用且实用性很好,大赞!!!

与常见开源产品对比

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

功能 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将保持持续更新,后续会完善读写分离、柔性分布式事务和高可用等相关功能。

最新情况

Sharding-JDBC 1.5.4 正式发布。作为分布式数据库中间件,它关注如何简化分布式数据库带来的复杂度,让工程师象使用单一数据库一样使用分布式的数据库。它完整的实现了分库分表、读写分离、分布式主键、柔性事务等功能,让您的数据库应用具备透明化的可水平扩展的能力。

1.5.4的主要更新是BUG的修复,让1.5.x版本更加稳定,详细更新请参见Release Notes。如果再无紧急issue需要修复,它将是1.x的最终版本。

Sharding-JDBC即将进入2.0时代,整体包名将修改为io.shardingjdbc,包括码云的项目仓库也会随之迁移至https://gitee.com/shardingjdbc。目前开发进度已到2.0.0.M1发布的中段,欢迎大家边看源码边讨论。

感谢开源中国对Sharding-JDBC长期以来的支持,目前Sharding-JDBC在github的star数已经接近2800,而在码云上却仅有500多的star,真诚邀请大家为Sharding-JDBC在码云上star一下,以鞭策我们做的更好

转载地址:http://auzws.baihongyu.com/

你可能感兴趣的文章
PID PPID LWP NLWP
查看>>
查看线程CPU占用情况
查看>>
查看个线程的CPU 内存占用
查看>>
c++ 加载so动态库中的资源
查看>>
加解密 签名
查看>>
linux top 命令分析
查看>>
Linux vmstat命令详解
查看>>
linux pmap命令
查看>>
MySQL数据同步【双主热备】
查看>>
Mysql主从复制实践手册
查看>>
nginx配置正向代理支持HTTPS
查看>>
Perf -- Linux下的系统性能调优神器
查看>>
C++ 用libcurl库进行http通讯网络编程
查看>>
秒杀多线程第十篇 生产者消费者问题
查看>>
信号量与互斥锁
查看>>
linux 查看CPU个数,核数
查看>>
常见数据类型的字节数
查看>>
javascript设计模式-代理模式(11)
查看>>
Executor相关源码分析
查看>>
react之setState解析
查看>>