当前位置: 首页 > news >正文

Mysql 分布式序列算法

接上文 Mysql分库分表

1.分布式序列简介

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

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

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

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

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

    @Testvoid contextLoads() {for (int i = 0; i < 20; i++) {mapper.addUser(new User("aaa", "bbb"));}}

修改配置文件

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

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

http://www.lryc.cn/news/180619.html

相关文章:

  • Windows/Linux双系统卸载Ubuntu
  • asp.net core mvc 视图组件viewComponents
  • 如何保持终身学习
  • 【RV1103】RTL8723bs (SD卡形状模块)驱动开发
  • LeetCode 周赛上分之旅 #49 再探内向基环树
  • kubernetes-v1.23.3 部署 kafka_2.12-2.3.0
  • 位置编码器
  • Lua多脚本执行
  • Spirng Cloud Alibaba Nacos注册中心的使用 (环境隔离、服务分级存储模型、权重配置、临时实例与持久实例)
  • 26663-2011 大型液压安全联轴器 课堂随笔
  • ChatGPT架构师:语言大模型的多模态能力、幻觉与研究经验
  • 二、VXLAN BGP EVPN基本原理
  • Evil.js
  • 使用sqlmap的 ua注入
  • 华为云云耀云服务器L实例评测 | 实例评测使用之体验评测:华为云云耀云服务器管理、控制、访问评测
  • resultmap
  • 宽带光纤接入网中影响家宽业务质量的常见原因有哪些
  • C++ - 封装 unordered_set 和 unordered_map - 哈希桶的迭代器实现
  • gradle中主模块/子模块渠道对应关系通过配置实现
  • 28383-2012 卷筒料凹版印刷机 学习笔记
  • stable diffusion学习笔记【2023-10-2】
  • flink选择slot
  • 世界前沿技术发展报告2023《世界信息技术发展报告》(六)网络与通信技术
  • spark SQL 任务参数调优1
  • 算法练习2——移除元素
  • 动态规划算法(2)--最大子段和与最长公共子序列
  • CentOS上网卡不显示的问题
  • localStorage实现历史记录搜索功能
  • 计算机网络(一):概述
  • visual code 下的node.js的hello world