涉及到shardingsphere不懂的可以私聊博主,集成,改造,动态数据源,动态分片规则,shardingsphere大数据量优化
1.pom文件
shardingsphere选择5.2.0版本
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
<version>5.2.0</version>
</dependency>
除开shardingsphere本身的依赖,需要使用dynamic多数据源辅助shardings的使用
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
2.启动项配置
在将两种依赖引入到项目中后,开始对shardingsphere进行配置
2.1 shardingsphere数据源配置
spring:
shardingsphere:
datasource:
#分库,根据需求去写,需要哪些,我这边定义master,write,read三种
names: master,read
master:
type: com.alibaba.druid.pool.DruidDataSource #连接池管理工具
driver-class-name: com.mysql.cj.jdbc.Driver #数据库驱动
#数据库url
url: jdbc:mysql://127.0.0.1:3306/shardingdatabase?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&autoReconnect=true&serverTimezone=Asia/Shanghai
username: root #用户
password: 123456 #密码
read:
type: com.alibaba.druid.pool.DruidDataSource #连接池管理工具
driver-class-name: com.mysql.cj.jdbc.Driver #数据库驱动
#数据库url
url: jdbc:mysql://127.0.0.1:3306/shardingdatabase?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&autoReconnect=true&serverTimezone=Asia/Shanghai
username: root #用户
password: 123456 #密码
上面的代码部分是属于shardingsphere的数据源配置
spring.shardingsphere.datasource.names=master,read,master和read是属于数据源名称,因为是多数据源,所以数据源需要进行自定义名称,不能在和spring.datasource一样直接定义,在这两个数据源中,默认数据源是master,在底层代码中也是master,如果在之后进行mybatis,jdbc,jpa等数据库操作时没有进行数据源切换,使用的数据源默认是master
注意:如果spring.shardingsphere.datasource.names=master,read,但是在底下的数据源配置中,少了read的数据源配置,在启动时会报数据源缺失的错,如果多了一个数据源,则不会影响正常启动,但是多出来的数据源并不会注册到多数据源管理下
在写数据源时,可以使用和spring.datasource一样的写法,如spring.datasource.druid,或者切换数据源管理池,都可以实现

2.2 dynamic数据源配置
在配置shardingsphere数据源后,dynamic可以通过java代码进行配置,也可以通过配置文件重新配置一遍,但是我这里用的是java代码

最低0.47元/天 解锁文章
1181

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



