数据库 分库分表

1  概述

      Sharding-JDBC是一个开源的适用于微服务的分布式数据访问基础类库,它始终以云原生的基础开发套件为目标。他定位为轻量级java框架,使用客户端直连数据库,以jar包形式提供服务,未使用中间层,无需额外部署,无其他依赖,DBA也无需改变原有的运维方式,可理解为增强版的JDBC驱动,旧代码迁移成本几乎为零。

2  功能列表

2.1 分库分表

  • SQL解析功能完善,支持聚合,分组,排序,LIMIT,TOP等查询,并且支持级联表以及笛卡尔积的表查询
  • 支持内、外连接查询
  • 分片策略灵活,可支持=,BETWEEN,IN等多维度分片,也可支持多分片键共用,以及自定义分片策略
  • 基于Hint的强制分库分表路由

2.2 读写分离

  • 一主多从的读写分离配置,可配合分库分表使用
  • 基于Hint的强制主库路由

2.3 柔性事务

  • 最大努力送达型事务
  • TCC型事务(TBD)

2.4 分布式主键

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

2.5 兼容性

  • 可适用于任何基于java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC
  • 可基于任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid等
  • 理论上可支持任意实现JDBC规范的数据库。目前支持MySQL,Oracle,SQLServer和PostgreSQL

2.6 灵活多样的配置

  • Java
  • Spring命名空间
  • YAML
  • Inline表达式

 

posted @ 2017-12-16 11:05  为爱奋斗不息  阅读(316)  评论(0编辑  收藏  举报