浅谈常见的分布式ID生成方案

news/2024/9/18 18:46:05/ 标签: 分布式, 分布式ID

一、UUID

UUID是通用唯一标识码的缩写,其目的是让分布式系统中的所有元素都有唯一的辨识信息,而不需要通过中央控制器来指定唯一标识。

优点:
(1)降低全局节点的压力,使得主键生成速度更快;
(2)生成的主键全局唯一;
(3)跨服务器合并数据方便。

缺点:
(1)UUID占用16个字符,空间占用较多;
(2)不是递增有序的数字,数据写入IO随机性很大,且索引效率下降。

二、数据库主键自增

MySQL数据库设置主键且主键自动增长。

优点:
(1)INT和BIGINT类型占用空间较小;
(2)主键自动增长,IO写入连续性好;
(3)数字类型查询速度优于字符串。

缺点:
(1)并发性能不高,受限于数据库性能;
(2)分库分表,需要改造,复杂;
(3)自增-数据和数据量泄露。

三、Redis自增ID

Redis计数器,原子性自增。

优点: 使用内存,并发性能好 。

缺点:
(1)数据丢失;
(2)自增-数据量泄露。

四、雪花算法

大名鼎鼎的雪花算法,分布式ID的经典解决方案。雪花算法生成的ID组成如下所示:
(1)符号位,占用1位。
(2)时间戳,占用41位,可以支持69年的时间跨度。
(3)机器ID,占用10位。
(4)序列号,占用12位。一毫秒可以生成4095个ID。
在这里插入图片描述

优点:
(1)不依赖外部组件;
(2)性能好。

缺点: 时钟回拨。


http://www.ppmy.cn/news/1520564.html

相关文章

作为HR如何解决薪资谈判的僵局

作为HR如何跟候选人谈薪资问题,特别候选人的期望值,和公司对岗位的设定范围存在不对等的情况下,HR和候选人的薪资谈判往往就陷入僵局。面对这种情况,是直接放弃,还是有努力的空间呢? 在面对薪资谈判僵局时…

使用PyTorch从零构建Llama 3

我们上次发了用PyTorch从零开始编写DeepSeek-V2的文章后,有小伙伴留言说希望介绍一下Llama 3。那么今天他就来了,本文将详细指导如何从零开始构建完整的Llama 3模型架构,并在自定义数据集上执行训练和推理。 [图1]:Llama 3架构展示…

Nginx中间件配置

Nginx中间件配置 概要相关内容技术细节链接 概要 用于Linux服务器,Nginx中间件搭建。 相关内容 配置涵盖域名配置,TLS配置,及配置安全的加密算法,处理跨域问题,请求头问题等 技术细节 nginx.conf 配置文件 user …

PyTorch常用库函数:torch.acos()的详解实战使用

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 引言一、函数简介1.2 函数语法1.3 参数说明 二、 示例代码2.1 注意事项 总结 引言 PyTorch 是一个流行的深度学习框架…

Node.js中的SQLite库:安装、对比与选择指南

嘿,各位Node.js的江湖好汉们,今天咱们来聊聊如何在Node.js中安装SQLite库,并且来一场SQLite库的PK大战,看看哪个库才是你的“菜”! 一、安装SQLite库:轻松加愉快 想要在Node.js中使用SQLite数据库&#x…

Proxifier代理配置

Proxifier代理配置 ①:finalShell 建立隧道 1.连接服务器 10.8.96.147 root/Iptvyg189 2.配置隧道 类型:SOCKS5监听端口:自定义一个随便绑定ip:本机 127.0.0.1 ②:Proxifier代理配置 1.配置文件 > 代理服务器 &g…

【Vue】Vue3.5 新特性

useId 为 每一个 vue 文件创建一个唯一的 id&#xff1a; app.vue import {useId} from "vue"; import Child from "/Child.vue";const comId useId(); console.log(">(App.vue:5) comId", comId);// ...<Child />useTemplateRef u…

尚品汇-项目目前存在问题、引入MQ(四十二)

目录&#xff1a; &#xff08;1&#xff09;目前存在的问题 &#xff08;2&#xff09;消息队列解决什么问题 &#xff08;3&#xff09;消息队列工具 RabbitMQ &#xff08;4&#xff09;搭建mq测试环境service-mq 下面我们先做的是前面后台管理系统商品上下架的没完成的…

【nnUNet】nnUNet的出现

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ&#xff1a;870202403 公众号&#xff1a;VTK忠粉 前言 本文分享nnUNet的一些基本情况&#xff0c;以便更好的了解&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0c;一起进步&#xff01;…

零基础5分钟上手亚马逊云科技-基础设施即代码开发

简介&#xff1a; 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列&#xff0c;适用于任何无云计算或者亚马逊云科技技术背景的开发者&#xff0c;通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我会每天介绍一个基于亚马逊云科技…

Excel中.xls和.xlsx文件格式的区别,及C++操作Excel文件

‌文件结构和兼容性‌&#xff1a; XLS是Excel 97-2003版本的文件格式&#xff0c;而XLSX是Excel 2007及以上版本的文件格式。XLS格式是向下兼容的&#xff0c;意味着较新的Excel版本可以打开XLS文件&#xff0c;但较旧的版本无法打开XLSX文件。相反&#xff0c;XLSX格式是向上…

Spring Cloud Gateway之路由配置

Spring Cloud Gateway支持多种方式的路由配置&#xff0c;允许根据各种条件和需求来定义和控制请求的路由行为。以下是Spring Cloud Gateway中常用的路由配置选项和相关功能&#xff1a; 基本路由配置 路由的基本配置通常包括路由ID、目标URI、谓词&#xff08;Predicates&am…

VirtualBox Debian 自动安装脚本

概览 相较于原脚本&#xff08;安装目录/UnattendedTemplates/debian_pressed.cfg&#xff09;更新如下内容&#xff1a; 配置清华镜像源配置仅主机网卡&#xff08;后续只需添加仅主机网卡即可&#xff09;配置Root用户远程登录配置用户sudo组 脚本 debian_pressed.cfg ##…

基于layui实现简单的万智牌生命计数器页面

对照手机App“旅法师营地”的万智牌生命计数器窗口&#xff08;如下图所示&#xff09;&#xff0c;使用layui、jQuery等实现简单的万智牌生命计数器页面。   主要实现的功能如下&#xff1a;   1&#xff09;点击左右两侧的-1、1、-5、5区域更新左右两侧生命值&#xff1…

银河麒麟v10-sp3-x86系统安装k8s-1.30.4

X86-64和arm架构的区别 x86-64架构&#xff1a; 设计理念&#xff1a;x86-64架构起源于Intel的x86架构&#xff0c;并对其进行了64位扩展。这种架构的设计侧重于高性能和灵活性&#xff0c;适合处理复杂的计算任务。 性能特点&#xff1a;x86-64架构的处理器通常提供高性能的…

9 月 7-8 日,Rust China Conf 2024 来啦!

大会介绍 Rust China Conf 2024 由 Rust 中文社区发起主办、知名企业和开源组织联合协办&#xff0c;是年度国内规模最大并唯一的 Rust 线下大型会议&#xff0c;深受 Rust 中文社区开发者与相关企业的喜爱与推崇。自 2020 年起&#xff0c; RustChinaConf 大会已经连续举办四…

利用Spring Boot实现服务降级与熔断机制

利用Spring Boot实现服务降级与熔断机制 大家好&#xff0c;我是微赚淘客返利系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在分布式系统中&#xff0c;服务降级和熔断是保证系统稳定性的重要机制。服务降级是指在系统负载过高或…

快速写一个自己的flutter应用(新手入门)

1、搭建开发环境 详细文档可以参考如下链接&#xff1a;跟着官方文档走就可以了。 1.3 搭建Flutter开发环境 | 《Flutter实战第二版》 (flutterchina.club) 开发 Android 应用 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 我的安装过程&#xff1a; 首先&…

ZooKeeper:浅谈ZooKeeper的Watch机制

ZooKeeper&#xff1a;浅谈对ZooKeeper的认识 一、ZooKeeper的Watch机制是什么 ZooKeeper是用来协调&#xff08;同步&#xff09;分布式进程的服务&#xff0c;提供了一个简单高性能的协调内核&#xff0c;用户可以在此之上构建更多复杂的分布式协调功能。 多个分布式进程通…

docker安装prometheus、grafana监控SpringBoot

1. 概述 最新有一个需求&#xff0c; 需要安装一个监控软件&#xff0c;对SpringBoot程序进行监控&#xff0c; 包括机器上cpu, 内存&#xff0c;jvm以及一些日志的统计。 这里需要介绍两款软件&#xff1a; prometheus 和 grafana prometheus: 中文名称&#xff0c; 普罗米…