Spring Boot 2.x 整合 ShardingSphere 5.0.0 实现分库分表_整合shardingsphere-jdbc-core-spring-boot-starter-程序员宅基地

技术标签: 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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_23354917/article/details/121266759

智能推荐

uniapp中nvue在页面渲染前给数据赋值_uniapp data中的数据可以之前互相赋值吗-程序员宅基地

文章浏览阅读1.8k次。应用场景是,在一个页面初始化的时候要给一个data内数据赋值,这个数据绑定到了页面v-for上,nvue中的所有生命周期都不能实现在渲染前给数据赋值,会报错,解决办法是定义一个常量去设置值,然后在data内把常量赋值给目标数据。..._uniapp data中的数据可以之前互相赋值吗

ROS环境下串口通信_ifr_interface::msg::serialgimbal toros(){ ifr_inte-程序员宅基地

文章浏览阅读1.3w次,点赞5次,收藏67次。1. 环境:操作系统: Ubuntu 14.04ROS版本: ROS Indigo2. 步骤:2.1 下载安装ROS对应版本的工具包(此处为indigo版)输入以下命令安装:sudo apt-get-install ros-indigo-serial重启终端,输入以下命令可以检测到serial包的路径说明已经安装好:(路径为 opt/ros/in..._ifr_interface::msg::serialgimbal toros(){ ifr_interface::msg::serialgimbal m

小样本学习记录————文本中特征空间的数据增强MEDA: Meta-Learning with Data Augmentation for Few-Shot Text Classification_data augmentation for meta-learning-程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏6次。MEDA: Meta-Learning with Data Augmentation for Few-Shot Text Classification出发点数据增强球合成器合成模块Synthesis module转换模块Transformation module损失函数球生成器部分损失函数元学习损失训练策略实验数据集结语出发点对于小样本学习文本分类问题中,限制其性能的主要原因之一是因为对于每一个类别有多种的表示方式。所以本文提出了一种数据增强方式来解决样本不足的问题。数据增强原文的数据增强:随机替_data augmentation for meta-learning

SSH简介及两种远程登录的方法_ssh @-程序员宅基地

文章浏览阅读10w+次,点赞588次,收藏3.7k次。目录SSH的安全机制SSH的安装启动服务器的SSH服务SSH两种级别的远程登录SSH的高级应用Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,..._ssh @

Java中的byte详解_java byte-程序员宅基地

文章浏览阅读4.6w次,点赞32次,收藏118次。Java中的byte详解介绍byte,即字节,由8位的二进制组成。在Java中,byte类型的数据是8位带符号的二进制数。在计算机中,8位带符号二进制数的取值范围是[-128, 127],所以在Java中,byte类型的取值范围也是[-128, 127]。byte取值范围分析一直在想为什么不是 -128 到 128呢?今天分析了一下这个问题。首先我们得明白一件事情,那就是运算规则(因为计算机中的数是以反码形式存储的,反码再求反码得到该数真值):正数的最高位都是 0 ,正数的值就是二进制表示的_java byte

ant design 照片墙样式手动上传多图 支持multiple_react ant-design upload图片上传 multiple-程序员宅基地

文章浏览阅读2.8k次,点赞5次,收藏10次。默认样式(啥都没有……):一条:最大条数我设置的3:先简单说下我做的过程,希望有大佬指点,也想能够帮助到刚入门的各位同学。需求和实现:点击上传图片显示图片缩略图并不立即上传,将beforeUpdata中获取到的file存入fileList数组(multiple多选时,beforeUpdata依次传入每一张图的file),同时在beforeUpdata中要控制随后可上传的数组..._react ant-design upload图片上传 multiple

随便推点

Vue3项目中引入ElementUI使用详解_vue3 element-ui-程序员宅基地

文章浏览阅读3.1w次,点赞15次,收藏102次。Vue3项目中引入 ElementUI详解,ElementPlus引入使用。_vue3 element-ui

python爬虫框架scarpy之AttributeError: module 'scrapy' has no attribute 'spider'-程序员宅基地

文章浏览阅读6.3k次。用scrapy的spider做爬虫,发现运行有问题。源码:import scrapyclass PpdSpider(scrapy.spider): name='PpdSpider' start_url=['http://www.dailianmeng.com/p2pblacklist/index.html'] def parse(self,response): _module 'scrapy' has no attribute 'spider

java map定义_Java Map定义的方法-程序员宅基地

文章浏览阅读4.9k次。package com.abin.map.test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;public class MapTestOne {public static Map addMap(){Map map=new HashMap();for(int..._java map定义

Java就业课程网络编程(11)_java中网络编程课程作用大码-程序员宅基地

文章浏览阅读76次。网络编程入门软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。网络通信协议网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。这就好比在道路中行驶的汽车一定要遵守交通规则一样,协议中对数据..._java中网络编程课程作用大码

USB8814动态信号采集卡——声音振动类信号处理的理想之选!_8通道同步振动数据采集卡-程序员宅基地

文章浏览阅读725次,点赞17次,收藏10次。USB8814是一款为测试音频和振动信号而设计的数据采集卡。该板卡提供8路同步模拟输入通道,24bit分辨率,每通道采样速率高达204.8KSPS,并且每通道集成独立的IEPE激励源,可直接实现对加速度传感器及麦克风等相关信号的调理。采集卡板载数字抗混叠滤波器,可有效降低高频噪声并抑制频率混叠。USB8814具备灵活的通道配置、多通道的动态信号采集,适用于诸如动态结构测试、音频/振动等高动态范围信号的采集应用场合。_8通道同步振动数据采集卡

推荐文章

热门文章

相关标签