一、介绍
Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款相互独立,却又能够混合部署配合使用的产品组成。 它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。本篇文章要使用的就是Sharding-JDBC。
ShardingSphere官网提供了很全面的Sharding-JDBC教程,配置多样化,文档目录层次分明,概念易懂。
http://shardingsphere.apache.org/index_zh.html
二、常见知识点误区
1.Sharding-JDBC是一种分库分表的中间件,它的功能是帮助我们解决分库分表过程中带来的问题(比如联表查询、分页、分布式事务等),换句话说,分库分表是我们自己来干,比如说将一张大表分成N个小表,这个工作咱们得提前自己干,Sharding-JDBC可不会帮咱们干。
2.分表不是越多越好,比如你将一张大表分成了一千多张小表,后期这些小表是很难维护的,比如你要加一个字段(想想就酸爽)!
三、使用(行表达式分片策略和强制路由分片策略)
行表达式分片策略
1.引入Sharding-JDBC依赖(注意版本)
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.1.1</version>
</dependency>
2.开始配置策略(在application.proper