技术标签: spring boot java 分库分表 后端
概念介绍、建表SQL参考上文
Spring Boot 2.x 整合 ShardingSphere 5.x 实现分表
本文实现分库分表(采用shardingsphere-jdbc-core-spring-boot-starter 5.0.0正式版)
数据库展示:
SpringBoot工程引入Maven依赖
<!-- ShardingSphere -->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
<version>5.0.0</version>
</dependency>
application.yml配置
spring:
shardingsphere:
# 数据源配置
datasource:
# 数据源名称,多数据源以逗号分隔
names: db0,db1
db0:
# 数据库连接池类名称
type: com.zaxxer.hikari.HikariDataSource
# 数据库驱动类名
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://127.0.0.1:3306/shardingsphere-demo1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: root
db1:
# 数据库连接池类名称
type: com.zaxxer.hikari.HikariDataSource
# 数据库驱动类名
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://127.0.0.1:3306/shardingsphere-demo2?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: root
# 规则配置
rules:
sharding:
# 分片算法配置
sharding-algorithms:
database-inline:
# 分片算法类型 https://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-jdbc/configuration/built-in-algorithm/sharding/
type: INLINE
props:
# 分片算法的行表达式(算法自行定义,此处为方便演示效果)
algorithm-expression: db$->{
order_id > 4?1:0}
table-inline:
# 分片算法类型 https://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-jdbc/configuration/built-in-algorithm/sharding/
type: INLINE
props:
# 分片算法的行表达式
algorithm-expression: t_order$->{
order_id % 4}
# 分布式序列算法配置
key-generators:
snowflake:
# 分布式序列算法(雪花算法:SNOWFLAKE; UUID:UUID)(注:UUID没有props配置) https://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-jdbc/configuration/built-in-algorithm/keygen/
type: SNOWFLAKE
# 分布式序列算法属性配置
props:
# 工作机器唯一标识
worker-id: 1
tables:
# 逻辑表名称
t_order:
# 行表达式标识符可以使用 ${...} 或 $->{...},但前者与 Spring 本身的属性文件占位符冲突,因此在 Spring 环境中使用行表达式标识符建议使用 $->{...}
actual-data-nodes: db${
0..1}.t_order${
0..3}
# 分库策略
database-strategy:
standard:
# 分片列名称
sharding-column: order_id
# 分片算法名称
sharding-algorithm-name: database-inline
# 分表策略
table-strategy:
standard:
# 分片列名称
sharding-column: order_id
# 分片算法名称
sharding-algorithm-name: table-inline
# 属性配置
props:
# 展示修改以后的sql语句
sql-show: true
项目地址(分库分表):https://gitee.com/lemonwjh/ShardingSphere-demo
文章浏览阅读187次。在这里插入图片描述。
文章浏览阅读6k次,点赞4次,收藏23次。在这里不再赘述。Windows平台下可用cmake-gui生成vs的.sln工程,Linux平台下可以运行cmake命令。_cmakelist.txt中添加相应的静态库或者动态库 ubuntu
文章浏览阅读6.5k次,点赞38次,收藏133次。用C语言递归算法实现火车调度想法详解_列车调度c语言
文章浏览阅读3.5k次,点赞5次,收藏20次。环境介绍:一共三台机器:hadoop11: 192.168.230.11 namenode 、kerberos clienthadoop12: 192.168.230.12 datanode 、kerberos clienthadoop13: 192.168.230.13 datanode 、kerberos server(KDC)保证安装kerberos 之前能正常开启hadoop集群(已安装集群)一、介绍安装kerberos服务器1、在hadoop13安装kerberos se_hadoop 认证开关
文章浏览阅读3.6k次。1. 建议安装python2, python3可能会有问题。cpplint.py integration cpplint.py integration makes it easy to check that a source file conforms to the style guide. To do this, just go to Tools > External Tools_cpplint vs
文章浏览阅读223次。structure define:the major structure consist of cmdline_param_t and cmdline_instance_t.//parameter of cmdlinetypedef struct{ /_c# cmdline structure
文章浏览阅读783次。upload.single的参数 file-data 要与前端from表单中input输入框的name属性的值保持一致,否则报错 MulterError: Unexpected field。在router目录下创建 upload.js。在项目根目录下创建 app.js。_fileinput插件
文章浏览阅读2.2k次,点赞2次,收藏2次。代码:void PrintNumbers(int n){ while(n--) { printf("number is :%d\n",n); }}gdb调试信息:(gdb) disassemble PrintNumbersDump of assembler code for function PrintNumbers: 0x0000555555554795 ..._gdb 汇编 可读
文章浏览阅读316次。增添加键值对的数据到Map集合中extends V> V):将一个map集合存放到另一个map集合中删通过键 删除键值对的数据,返回的是值改当键值存在的时候,会将value值覆盖掉的查查看集合中元素的个数判断是否为空,如果不为空返回的是false是否包含这个键是否包含这个值重要的方法通过键 获取值获取map集合中的键 ,然后然或存到set集合中获取map集合中的值,存到了Collection集合中将map集合的键值对,存到了set集合。..._从map中取出multipartfile
文章浏览阅读363次。1.硬盘整体布局-基本布局2.硬盘整体布局-开启flex_bg3.inode与文件数据分布关系3.1.只是用inode,不扩展extent tree时一个inode对应一个file,inode中的i_block字段记录file中的内容与硬盘中的地址对应关系。3.2扩展了extent tree后扩展之后,extent tree有了两个node:inode中的i_block,扩展的一个block此时i_block作为Internal node,扩展的bl..._ext4 extent tree
文章浏览阅读253次,点赞4次,收藏2次。将main方法中的job提交到resourcemanager(RM)中resourcemanager 返回其一个jobID和工作目录初始化job(①在HDFS中创建一个带有jobID的工作目录②初始化配置在job.xml文件中③上传jar包④计算任务切片)启动程序(到RM中有一个applicationmaster(AM)负责的全部job中找到其相对应的jobID,然后JOB会去找scheduler(调度器)去申请一个默认容器[1c,1.5G],然后调度器生成调度任务(去nodemanager(NM)._mr的job运行周期
文章浏览阅读629次。SAX解析sax解析需要继承DefaultHandler类,并且重写其中的几个方法。public class MyHandler extends DefaultHandler { private ArrayList<String> ids=new ArrayList<>(); private ArrayList<String> names = new ArrayList<>(); private ArrayList<St_sax dom