首页 > 数据库 >Mysql 分布式序列算法

Mysql 分布式序列算法

时间:2023-10-08 09:57:19浏览次数:51  
标签:name ID sharding 算法 Mysql test id 分布式

接上文 Mysql分库分表

1.分布式序列简介

在这里插入图片描述
分布式系统下,怎么保证ID的生成满足以上需求?
在这里插入图片描述
在这里插入图片描述
ShardingJDBC支持以上两种算法自动生成ID。这里,使用ShardingJDBC让主键ID以雪花算法进行生成,首先配置数据库,因为默认的注解id是int类型,装不下64位,需要进行修改:

# 在本地和远端服务器数据库都要运行
ALTER TABLE `yyds`.`test` MODIFY COLUMN `id` bigint(128) NOT NULL FIRST;
 
  • 1
  • 2

然后修改mybatis的插入语句,因为现在id是ShardingJDBC自动生成,不需要自己加了:

@Insert("insert into test(name, passwd) values(#{name}, #{passwd})")
int addUser(User user);
 
  • 1
  • 2

在这里插入图片描述
修改测试用例
在这里插入图片描述
在这里插入图片描述

    @Test
    void contextLoads() {
        for (int i = 0; i < 20; i++) {
            mapper.addUser(new User("aaa", "bbb"));
        }
    }
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

修改配置文件

spring:
  shardingsphere:
    datasource:
      sharding:
        tables:
          test:
            actual-data-nodes: db0.test,db1.test
            #这里还是使用分库策略
            database-strategy:
              standard:
                sharding-column: id
                sharding-algorithm-name: my-alg
            #这里使用自定义的主键生成策略
            key-generate-strategy:
              column: id
              key-generator-name: my-gen
        key-generators:
        	#这里写我们自定义的主键生成算法
          my-gen:
          	#使用雪花算法
            type: SNOWFLAKE
            props:
            	#工作机器ID,保证唯一就行
              worker-id: 666
        sharding-algorithms:
          my-alg:
            type: MOD
            props:
              sharding-count: 2

在这里插入图片描述
此时不再需要test_01,test_02表了,数据库中可删除。
运行测试用例

牛脾气电缆盘 

www.npqdlp.com
在这里插入图片描述
在这里插入图片描述

 

标签:name,ID,sharding,算法,Mysql,test,id,分布式
From: https://www.cnblogs.com/yuanyuzhou/p/17748172.html

相关文章

  • Mysql实现EF Core CodeFirst实现
    一、引用包Microsoft.EntityFrameworkCore.ToolsPomelo.EntityFrameworkCore.MySql二、常用命令1、Add-Migration(版本号)创建新的CodeFirst文件2、Update-Database更新数据库三、代码实现///<summary>///系统用户///</summary>[Table("SysU......
  • Linux - 安装MySQL
    下载地址:https://downloads.mysql.com/archives/community/安装步骤:mkdirmysqltar-xvfmysql-8.0.26-1.el7.x86_64.rpm-bundle.tar-Cmysqlrpm-ivhmysql-community-common-8.0.26-1.el7.x86_64.rpmrpm-ivhmysql-community-client-plugins-8.0.26-1.el7.x86_64.rp......
  • 代码随想录 | 回溯算法 ● 理论基础 ● 77. 组合
    理论基础组合问题:N个数里面按一定规则找出k个数的集合(不强调顺序)切割问题:一个字符串按一定规则,有几种切割方式子集问题:一个N个数的集合里,有多少符合条件的子集排列问题:N个数按一定规则全排列,有几种排列方式(强调顺序)棋盘问题:N皇后,解数独等回溯法模板回溯函数模板返回值以及参数返回......
  • mysql 基础
    win+r  services.msc 可以查看mysql是否启动,也可以停止配置环境变量后,就可以在任意位置执行mysql了 ,这里在文件访问了mysql 一SQL分类一、DDL数据库操作 1、表的查询 前提是先use+数据库名进入数据库 showtables; 2、创建表 createtable+表......
  • 算法设计 - Lecture 5
     ......
  • 【JAVA】算法
    start 1.SHA-256算法(单向、验证完整性/一致性,暂时安全)1importjava.nio.charset.StandardCharsets;2importjava.security.MessageDigest;3importjava.security.NoSuchAlgorithmException;45publicclassSHA256Example{67publicstaticStringhas......
  • 分布式系统笔记目录
    分布式系统笔记目录本目录源自我校的分布式系统课程,我觉得很有趣,就制作了笔记并分享老师的笔记的目录结构感觉还是有些问题,但是当时学习时间比较紧,就没来得及排版仅供学习使用第一章:基本概念分布式系统相关概念、与并行计算的关系、云计算概念、分布式计算的背景、目的......
  • Lnton羚通算法算力云平台视频监控分析安全帽穿戴识别 安全帽识别预警系统
    Lnton羚通的算法算力云平台有以下显著特点:高性能、高可靠性、高可扩展性和低成本。用户可以通过该云平台获取高效、强大的算法计算服务,快速而灵活地运行各种复杂的计算模型和算法。该平台广泛涵盖机器学习、人工智能、大数据分析和图像识别等领域。此外,云平台还提供丰富的算法库和......
  • 算法:打印斐波那契数列的前30项(JS)
    打印斐波那契数列的前30项提示:斐波那契数列的前两项是1,其他项是之前两项之和1functionfibonacciIterative(n){2if(n<=0){//如果输入的n小于等于0,表示输入错误,返回错误提示3return"输入错误,请输入正整数";4}5leta=1;//初始化......
  • 算法:九九乘法表(JS)
    九九乘法表1functioncreateMultiplicationTable(){2lettable='';//创建一个空字符串用于存储乘法表3for(leti=1;i<=9;i++){//外层循环控制行数,从1到94for(letj=1;j<=i;j++){//内层循环控制每行的列数,从1到当前行数i......