ShardingSphere学习:06

Stella981
• 阅读 785

实战代码后续上传

代码同上篇一致,只是配置文件不同。我们主要看一下,配置文件。

分表配置

由于的单库分表,所以只配置一个数据源就可以了

#配置数据源
spring.shardingsphere.datasource.names=test0
#test0
spring.shardingsphere.datasource.test0.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.test0.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.test0.jdbcUrl=jdbc:mysql://127.0.0.1:3306/test0
spring.shardingsphere.datasource.test0.username=devadmin
spring.shardingsphere.datasource.test0.password=

设置绑定表

# 设置绑定表
spring.shardingsphere.sharding.binding-tables[0]=health_record,health_task

设置分表的策略

这里根据 record_id 奇偶来分表的。分为 health_record0,health_record1 和 health_task0,health_task1

# health_record
spring.shardingsphere.sharding.tables.health_record.actual-data-nodes=test0.health_record$->{0..1}
spring.shardingsphere.sharding.tables.health_record.table-strategy.inline.algorithm-expression=health_record$->{record_id % 2}
spring.shardingsphere.sharding.tables.health_record.table-strategy.inline.sharding-column=record_id
spring.shardingsphere.sharding.tables.health_record.key-generator.column=record_id
spring.shardingsphere.sharding.tables.health_record.key-generator.type=SNOWFLAKE
# health_task
spring.shardingsphere.sharding.tables.health_task.actual-data-nodes=test0.health_task$->{0..1}
spring.shardingsphere.sharding.tables.health_task.table-strategy.inline.algorithm-expression=health_task$->{record_id %2}
spring.shardingsphere.sharding.tables.health_task.table-strategy.inline.sharding-column=record_id
spring.shardingsphere.sharding.tables.health_task.key-generator.column=task_id
spring.shardingsphere.sharding.tables.health_task.key-generator.type=SNOWFLAKE

完整配置

server.port=8080
#打印sql
spring.shardingsphere.props.sql.show=true
#配置数据源
spring.shardingsphere.datasource.names=test0
#test0
spring.shardingsphere.datasource.test0.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.test0.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.test0.jdbcUrl=jdbc:mysql://127.0.0.1:3306/test0
spring.shardingsphere.datasource.test0.username=devadmin
spring.shardingsphere.datasource.test0.password=


# 设置绑定表
spring.shardingsphere.sharding.binding-tables[0]=health_record,health_task
# health_record
spring.shardingsphere.sharding.tables.health_record.actual-data-nodes=test0.health_record$->{0..1}
spring.shardingsphere.sharding.tables.health_record.table-strategy.inline.algorithm-expression=health_record$->{record_id % 2}
spring.shardingsphere.sharding.tables.health_record.table-strategy.inline.sharding-column=record_id
spring.shardingsphere.sharding.tables.health_record.key-generator.column=record_id
spring.shardingsphere.sharding.tables.health_record.key-generator.type=SNOWFLAKE
# health_task
spring.shardingsphere.sharding.tables.health_task.actual-data-nodes=test0.health_task$->{0..1}
spring.shardingsphere.sharding.tables.health_task.table-strategy.inline.algorithm-expression=health_task$->{record_id %2}
spring.shardingsphere.sharding.tables.health_task.table-strategy.inline.sharding-column=record_id
spring.shardingsphere.sharding.tables.health_task.key-generator.column=task_id
spring.shardingsphere.sharding.tables.health_task.key-generator.type=SNOWFLAKE

数据库如下

ShardingSphere学习:06

health_level 数据如下

ShardingSphere学习:06

user数据如下

ShardingSphere学习:06

health_record0,health_record1

health_record0 中 record_id 都是偶数 ,health_record1 都是奇数

ShardingSphere学习:06 ShardingSphere学习:06

health_task0,health_task1

health_task0 中 record_id 都是偶数 ,health_task1 都是奇数

ShardingSphere学习:06 ShardingSphere学习:06

点赞
收藏
评论区
推荐文章
芝士年糕 芝士年糕
2年前
Nginx 调整文件上传大小限制
使用3A服务器做了网页,感觉挺不错的,使用LNMP环境用Nginx部署了前端,发现上传附件大一点就会报错,查看配置文件,发现spring的附件配置已经配置了。那么就看下Nginx的body设置。nginx文件上传默认是1MB。在server
Wesley13 Wesley13
3年前
java 微服务分布式 springcloud vue.js flowable 流程引擎
1.代码生成器:\正反双向\(单表、主表、明细表、树形表,快速开发利器)freemaker模版技术,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块2.多数据源:(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源3.阿里数据库连接池dru
Easter79 Easter79
3年前
springcloud vue 微服务分布式 activiti工作流 前后分离 集成代码生成器 shiro权限
1.代码生成器:\正反双向\(单表、主表、明细表、树形表,快速开发利器)freemaker模版技术,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块2.多数据源:(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源3.阿里数据库连接池dru
Wesley13 Wesley13
3年前
java代码生成工具之autoCode部署
autoCode介绍autoCode是一个代码生成工具。基于velocity模板引擎,采用SpringMVCmybatisFDUImysql此工具只负责生成代码文件,不会生成完整功能的应用程序.其特点主要有用户登陆每个用户有他自己独立的数据库连接配置和模板配置;数据源配置
Easter79 Easter79
3年前
Spring的JNDI数据源连接池配置示例及Spring对JNDI实现分析
在使用Tomcat服务器SpringFramework进行JavaEE项目的开发部署的时候可以在Tomcat的配置文件中进行JDBC数据源的配置,具体步骤如下(这里省略了工程的建立步骤):1)添加如下代码到tomcat的conf目录下的server.xml中:Xml代码 收藏代码<Context
Easter79 Easter79
3年前
Spring学习笔记(五):JDBCTemplate+事务管理
1概述Spring为开发者提供了JDBCTemplate,可以简化很多数据库操作相关的代码,本文主要介绍JDBCTemplate的使用以及事务管理功能。2JDBCTemplate2.1配置配置的话主要配置以下几项:数据源:org.springfr
可莉 可莉
3年前
0018SpringBoot连接docker中的mysql并使用druid数据源
由于druid数据源自带监控功能,所以引用druid数据源1、centos7中安装并启动docker2、docker安装并启动mysql3、pom.xml中引入druid依赖4、application.yml中配置数据库连接及druid数据源信息5、编写DruidConfig配置文件,绑定4中所配置的数据源信息6、编写HelloCon
Stella981 Stella981
3年前
Spring Boot中整合Sharding
在我《SpringCloud微服务全栈技术与案例解析》书中,第18章节分库分表解决方案里有对ShardingJDBC的使用进行详细的讲解。之前是通过XML方式来配置数据源,读写分离策略,分库分表策略等,之前有朋友也问过我,有没有SpringBoot的方式来配置,既然已经用SpringBoot还用XML来配置感觉有点不协调。其实吧我个人觉得只
Stella981 Stella981
3年前
SpringBoot 2.0 系列004
SpringBoot2.0系列004启动实战之配置文件配置文件配置文件加载流程很多文档包括官方文档说SB的默认配置文件是application开头的文件,那么是为什么呢?我们先看下流程图 !(https://gitee.c
Stella981 Stella981
3年前
MyBatis整合Spring的实现(18)
例子同一个命名空间,但是有2个配置文件,A配置文件依赖于B配置文件信息,但是在加载时,先加载B配置文件的话,那么就会报错,前面章节已经捕获了此异常并把相应的配置添加到Configuration(全局配置类)中,这里就是在加载A配置文件后,再次加载B配置文件,也就把B配置信息添加到Configuration(全局配置类)里,下面就来看一下代码吧。