Sharding-JDBC-分布式数据库中间件

Posted 龙果

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sharding-JDBC-分布式数据库中间件相关的知识,希望对你有一定的参考价值。

Sharding-JDBC是一个开源的分布式数据库中间件,它无需额外部署和依赖,旧代码迁移成本几乎为零。Sharding-JDBC作为面向开发的微服务云原生基础类库,完整的实现了分库分表、读写分离和分布式主键功能,并初步实现了柔性事务。 在经历了整体架构的数次精炼及稳定性打磨后,如今它已积累了足够的底蕴,相信可以成为开发者技术选型时的一个参考。

概述

Sharding-JDBC定位为轻量级java框架,使用客户端直连数据库,以jar包形式提供服务,未使用中间层,无需额外部署,无其他依赖,DBA也无需改变原有的运维方式,可理解为增强版的JDBC驱动,旧代码迁移成本几乎为零。

功能列表

1.分库分表

  • SQL解析功能完善,支持聚合,分组,排序,LIMIT,OR等查询,并且支持级联表以及笛卡尔积的表查询

  • 支持内、外连接查询

  • 分片策略灵活,可支持=,BETWEEN,IN等多维度分片,也可支持多分片键共用,以及自定义分片策略

  • 基于Hint的强制分库分表路由

2. 读写分离

  • 一主多从的读写分离配置,可配合分库分表使用

  • 基于Hint的强制主库路由

3. 分布式事务

  • 最大努力送达型事务

  • TCC型事务(TBD)

4. 兼容性

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

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

  • 理论上可支持任意实现JDBC规范的数据库。目前支持mysql,Oracle,SQLServer和PostgreSQL

5. 灵活多样的配置

  • Java

  • Spring命名空间

  • YAML

  • Inline表达式

6. 分布式生成全局主键

  • 统一的分布式基于时间序列的ID生成器

如果你有开源项目 如果你有想推荐的开源项目 欢迎联系我们,我们将为你免费进行推荐。

以上是关于Sharding-JDBC-分布式数据库中间件的主要内容,如果未能解决你的问题,请参考以下文章

数据库分库分表中间件 Sharding-JDBC 源码分析 —— 分布式主键

数据库分库分表中间件 Sharding-JDBC 源码分析 —— 分布式主键

轻量级数据库中间件利器Sharding-JDBC深度解析(有彩蛋)

Sharding-JDBC 快速入门第一课

分库分表 | 图解Sharding-JDBC

Spring-boot2X基于sharding-jdbc3X分表分库