一、介绍
Sharding-JDBC是一个开源的分布式数据库中间件,它无需额外部署和依赖,旧代码迁移成本几乎为零。Sharding-JDBC作为面向开发的微服务云原生基础类库,完整的实现了分库分表、读写分离和分布式主键功能,
并初步实现了柔性事务。服务云原生基础类库,完整的实现了分库分表、读写分离和分布式主键功能,并初步实现了柔性事务。
官网:http://shardingsphere.io/document/current/cn/overview/
github源码:https://github.com/shardingjdbc/sharding-jdbc
官方demo:https://github.com/shardingjdbc/sharding-jdbc-example
二、 为什么选择sharding-jdbc
目前基础服务有很多业务都涉及到不少数据库拆分的问题,目前行业中比较主流的方式:
1、代理模式中间件(例如阿里开源的cobar,以及进化版的mycat)
2、client中间件模式(例如阿里的TDDL,以及我们选择的Sharding-JDBC)
3、自己业务端查询时动态指定数据源和表信息(spring的动态数据等)
我们为什么会选择Sharding-JDBC呢?
Sharding-JDBC直接封装JDBC API,可以理解为增强版的JDBC驱动,旧代码迁移成本几乎为零:
可适用于任何基于java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。
可基于任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid等。
理论上可支持任意实现JDBC规范的数据库。目前支持MySQL,Oracle,SQLServer和PostgreSQL。
Sharding-JDBC定位为轻量级java框架,使用客户端直连数据库,以jar包形式提供服务,未使用中间层,无需额外部署,无其他依赖,DBA也无需改变原有的运维方式。采用”半理解”理念的SQL解析引擎,以达到性能与兼容性的最大平衡。
Sharding-JDBC功能灵活且全面:
分片策略灵活,可支持=,BETWEEN,IN等多维度分片,也可支持多分片键共用。

2238

被折叠的 条评论
为什么被折叠?



