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

分布式id实战

目录

常用方式

特征

潜在问题

信息安全

高性能

UUID

雪花算法

数据库生成

美团Leaf方案

Leaf-segment 数据库方案

Leaf-snowflake 方案


常用方式

  • uuid
  • 雪花算法
  • 数据库主键

特征

  • 全局唯一
  • 趋势递增
  • 信息安全

潜在问题

信息安全

  • 如果id连续递增, 容易被爬虫, 批量下载数据
  • 如果订单id是连续递增, 容易被竞争对手推算出日交易量, 这时候需要ID不规则
  • 可能泄漏本机mac地址

高性能

        保证在高qps时候, 系统也高可用, 延迟低

UUID

标准型式包含 32 个 16 进制数字,以连字号分为五段,形式为 8-4-4-4-12 的 36 个字符.

示例:ecb02c7d-0a3f-4c00-85f6-aa5c6962eb4d

优点: 本地生成, 性能高, 没有网络消耗

缺点:

  • UUID太长不易储存, 16字节, 128位
  • 信息不安全. 基于 MAC 地址生成UUID的算法, 可能造成MAC地址泄露,这个漏洞曾被用于寻找梅丽莎病毒的制作者位置
  • 不适合做DB主键. 数据库主键应该越短越好, uuid随机性, 导致聚集索引的数据频繁变动, 影响性能

雪花算法

  • 第 0 位: 符号位(标识正负),始终为 0,没有用,不用管。
  • 第 1~41 位 :一共 41 位,用来表示时间戳,单位是毫秒,可以支撑 2 ^41 毫秒(约 69 年)
  • 第 42~52 位 :一共 10 位,一般来说,前 5 位表示机房 ID,后 5 位表示机器 ID(实际项目中可以根据实际情况调整),这样就可以区分不同集群/机房的节点,这样就可以表示 32 个 IDC,每个 IDC 下可以有 32 台机器。
  • 第 53~64 位 :一共 12 位,用来表示序列号。 序列号为自增值,代表单台机器每毫秒能够产生的最大 ID 数(2^12 = 4096),也就是说单台机器每毫秒最多可以生成 4096 个 唯一 ID。理论上 snowflake 方案的 QPS 约为 409.6w/s

优点:

  • 顺序递增, 时间戳在高位, 自增序列在地位
  • 本地生成, 不依赖第三方主键, 稳定性更高, 性能高
  • 可以根据自身业务, 灵活分配bit位

缺点:

        存在时钟回拨问题

数据库生成

  • mysql自增主键
  • redis的incr命令
  • mongodb的ObjectId
  • zookeeper顺序节点

美团Leaf方案

Leaf 这个名字是来自德国哲学家、数学家莱布尼茨的一句话:
There are no two identical leaves in the world(“世界上没有两片相同的树叶”)
​Leaf 分别在 MySQL 和雪花上做了相应的优化,实现了 Leaf-segmentLeaf-snowflake 方案。

Leaf-segment 数据库方案

==

Leaf-snowflake 方案

==

相关文章:

分布式id实战

目录 常用方式 特征 潜在问题 信息安全 高性能 UUID 雪花算法 数据库生成 美团Leaf方案 Leaf-segment 数据库方案 Leaf-snowflake 方案 常用方式 uuid雪花算法数据库主键 特征 全局唯一趋势递增信息安全 潜在问题 信息安全 如果id连续递增, 容易被爬虫, 批量下…...

深入了解 SOCKS5 代理、代理 IP 和 HTTP

在网络通信和数据传输中,代理服务器扮演着至关重要的角色。本文将深入探讨 SOCKS5 代理、代理 IP 和 HTTP,揭示它们的工作原理、应用场景以及优缺点。 1. SOCKS5 代理 SOCKS(Socket Secure)是一种网络协议,允许客户端…...

外包干了3个多月,技术退步明显。。。。

先说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

Unity之闪电侠大战蓝毒兽(简陋的战斗系统)

目录 🎨一、创建地形 🎮二、创建角色 🏃2.1 动画 🏃2.2 拖尾 🏃2.3 角色控制 ​🏃2.4 技能释放 🏃2.5 准星 📱三、创建敌人 🐲3.1 选择模型 🐲3.…...

C# 菜鸟级别有关于redis的使用

public IActionResult Index() { ConnectionMultiplexer _conn ConnectionMultiplexer.Connect("127.0.0.1:6379");//初始化 var database _conn.GetDatabase(7);//指定连接的库 0 RedisHelper redisHelper new Redi…...

AlexNet的出现推动深度学习的巨大发展

尽管AlexNet(2012)的代码只比LeNet(1998)多出几行,但学术界花了很多年才接受深度学习这一概念,并应用其出色的实验结果。 AlexNet(由Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton共同设计…...

2024面试offer收割宝典字节篇

1.IO 模型有哪些,讲讲你理解的 nio ,他和 bio,aio 的区别是啥, 谈谈 reactor 模型。 IO 模型主要包括以下几种:1. 阻塞 I/O (BIO): 当一个线程调用 read() 或 write() 系统调用时,如果数据没有准备好或者缓冲区已满,则该线程会被操作系统阻塞,直到有数据可读或写入完…...

冒泡排序及其优化

冒泡排序 int[] arr {1,3,2,9,4,7,2,8};//比较多少轮(n个数字比较n-1次)for(int i0,n arr.length;i<n-1;i) {//每轮比较多少次(n-1-i次)for(int j 0;j<n-1-i;j) {//两两比较if(arr[j] > arr[j1]) { //比较结果为升序排列&#xff0c;如果想要降序排列结果将 >…...

【医学大模型 补全主诉】BioGPT + LSTM 自动补全医院紧急部门主诉

BioGPT LSTM 自动补全医院紧急部门主诉 问题&#xff1a;针对在紧急部门中自动补全主诉的问题子问题1: 提高主诉记录的准确性子问题2: 加快主诉记录的速度子问题3: 统一医疗术语的使用子问题4: 减少打字错误和误解子问题5: 提高非特定主诉的处理能力 解法数据预处理神经网络方…...

HCIE-Datacom证书有效期多久?HCIE考试有哪些内容?

如今越来越多的人开始关注并参与到华为认证的学习中来。 其中&#xff0c;华为认证数据通信专家(HCIE-Datacom)作为华为认证体系中的高级认证&#xff0c;备受瞩目。 那么&#xff0c;关于HCIE-Datacom证书的有效期以及HCIE考试的内容&#xff0c;你知道多少呢&#xff1f;下…...

OpenCV中的边缘检测技术及实现

边缘检测是在电脑如何理解图片这一问题中的一环&#xff0c;它帮助电脑找出照片里的轮廓和分界线。想象一下你在看一幅黑白漫画&#xff0c;轮廓线定义了每一个角色和物体&#xff0c;而电脑要做的&#xff0c;就是通过边缘检测来找出这些线条。这在很多像是图像分析这样的领域…...

机器学习基础(一)理解机器学习的本质

导读&#xff1a;在本文中&#xff0c;将深入探索机器学习的根本原理&#xff0c;包括基本概念、分类及如何通过构建预测模型来应用这些理论。 目录 机器学习 机器学习概念 相关概念 机器学习根本&#xff1a;模型 数据的语言&#xff1a;特征与标签 训练与测试&#xf…...

Eclipse - Makefile generation

Eclipse - Makefile generation References right mouse click on the project -> Properties -> C/C Build -> Generate Makefiles automatically 默认会在 Debug 目录下创建 Makefile 文件。 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/...

Sora:新一代实时音视频通信框架

一、Sora简介 Sora是一个开源的实时音视频通信框架&#xff0c;旨在提供高效、稳定、可扩展的音视频通信解决方案。它基于WebRTC技术&#xff0c;支持跨平台、跨浏览器的实时音视频通信&#xff0c;并且具备低延迟、高并发、易集成等特点。 --点击进入Sora(一定要科学哦&#x…...

龟兔赛跑算法

一、题目 给定一个长度为 n1 的数组nums&#xff0c;数组中所有的数均在 1∼n1 的范围内&#xff0c;其中 n≥1。 请找出数组中任意一个重复的数。 样例 给定 nums [2, 3, 5, 4, 3, 2, 6, 7]。返回 2 或 3。 二、解析 解决这个问题的一种有效方法是使用快慢指针&#xf…...

Yii2项目使用composer异常记录

问题描述 在yii2项目中&#xff0c;使用require命令安装依赖时&#xff0c;出现如下错误提示 该提示意思是&#xff1a;composer运行时&#xff0c;执行了yiisoft/yii2-composer目录下的插件&#xff0c;但是该插件使用的API版本是1.0&#xff0c;但是当前的cmposer版本提供的…...

【蓝桥杯 2021】图像模糊

图像模糊 题目描述 小蓝有一张黑白图像&#xff0c;由 nm 个像素组成&#xff0c;其中从上到下共 n 行&#xff0c;每行从左到右 m 列。每个像素由一个 0 到 255 之间的灰度值表示。 现在&#xff0c;小蓝准备对图像进行模糊操作&#xff0c;操作的方法为&#xff1a; 对于…...

【leetcode】贪心算法介绍

详细且全面地分析贪心算法常用的解题套路、数据结构和代码逻辑如下&#xff1a; 找最值型&#xff1a; 每一步选择都是局部最优解&#xff0c;最后得到的结果就是全局最优解。常用于找零钱问题、区间覆盖问题等。一般情况下&#xff0c;可以通过排序将数据进行处理&#xff0c;…...

com.alibaba.fastjson.JSONException: toJSON error的原因

问题&#xff1a; 导出接口报错&#xff0c;显示json格式化异常 发现问题&#xff1a; 第一个参数为HttpResponse,转换成json的时候报错 修改方法&#xff1a; 1.调换两个参数的位置 2.在aop判断里边 把ServletAPI过滤掉 Before("excudeWebController()")pub…...

华为配置旁挂二层组网直接转发示例

配置旁挂二层组网直接转发示例 组网图形 图1 配置旁挂二层组网直接转发示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件扩展阅读 业务需求 企业用户通过WLAN接入网络&#xff0c;以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时&#xff…...

Qwen3-ASR-1.7B图文并茂教程:从‘献声’到‘获辞’全流程界面操作详解

Qwen3-ASR-1.7B图文并茂教程&#xff1a;从"献声"到"获辞"全流程界面操作详解 1. 认识清音听真语音识别系统 清音听真是一款基于Qwen3-ASR-1.7B核心引擎的高精度语音转录平台。相比之前的0.6B版本&#xff0c;这个1.7B参数的大模型在语音识别准确率上有了…...

网站社交媒体推广对SEO有什么作用_图片和视频如何优化以提高搜索引擎收录

网站社交媒体推广对SEO有什么作用 在当前数字化时代&#xff0c;网站的SEO&#xff08;搜索引擎优化&#xff09;已经成为任何希望提升在线存在感的企业和个人的首要任务。SEO并不仅仅是关于在网站上优化文本内容。如今&#xff0c;社交媒体推广也在这一过程中发挥着越来越重要…...

MM32 MCU烧录故障排查指南:从硬件到软件的全面解析

1. 硬件问题排查&#xff1a;从电源到接口的全面检查 遇到MM32 MCU烧录失败时&#xff0c;硬件问题往往是首要排查方向。我遇到过不少新手朋友一上来就怀疑芯片质量问题&#xff0c;结果折腾半天发现是电源没接好。硬件问题排查建议按照"供电→接口→调试器"的顺序进…...

OpenClaw+Phi-3-vision-128k-instruct实战:电商产品图自动生成描述文案

OpenClawPhi-3-vision-128k-instruct实战&#xff1a;电商产品图自动生成描述文案 1. 为什么选择这个技术组合 去年双十一前&#xff0c;我负责的电商项目需要为300多款新品生成营销文案。传统做法是设计师导出图片后&#xff0c;由文案组手动撰写描述&#xff0c;平均每款产…...

零代码自动化:Gemma-3-12b-it镜像+OpenClaw图形化配置指南

零代码自动化&#xff1a;Gemma-3-12b-it镜像OpenClaw图形化配置指南 1. 为什么选择图形化配置 当我第一次接触自动化工具时&#xff0c;面对密密麻麻的API文档和YAML配置文件&#xff0c;那种"从入门到放弃"的感觉至今记忆犹新。直到发现OpenClaw的图形化配置界面…...

嵌入式Boa Web服务器搭建与优化指南

1. 嵌入式轻量级Web服务器搭建实战&#xff1a;Boa移植与应用 作为一名在嵌入式领域摸爬滚打多年的工程师&#xff0c;我深知在资源受限环境下搭建Web服务的痛点。今天要分享的Boa服务器方案&#xff0c;正是解决这类问题的利器——这个仅有70KB的可执行文件&#xff0c;却能稳…...

OpenClaw研究助手:千问3.5-9B驱动的文献综述自动化

OpenClaw研究助手&#xff1a;千问3.5-9B驱动的文献综述自动化 1. 为什么需要自动化文献综述&#xff1f; 作为一位经常需要撰写文献综述的研究者&#xff0c;我深刻理解这个过程的痛苦。传统文献整理需要手动下载PDF、逐篇阅读、摘录关键观点、分类归档&#xff0c;最后再整…...

基于PLECS和MATLAB Simulink的250V直流输入至1000V输出单相九电平级联...

单相九电平级联NPC逆变器模块&#xff0c;输入250V直流&#xff0c;输出交流幅值1000V&#xff0c;电阻负载。 PLECS平台搭建&#xff0c;MATLAB/simulink也可实现。手把手玩转九电平NPC逆变器仿真最近在实验室折腾单相九电平级联NPC逆变器&#xff0c;输入250V直流硬是怼出100…...

ColorControl终极指南:专业级NVIDIA显卡与LG电视显示调校完全手册

ColorControl终极指南&#xff1a;专业级NVIDIA显卡与LG电视显示调校完全手册 【免费下载链接】ColorControl Easily change NVIDIA display settings and/or control LG TVs 项目地址: https://gitcode.com/gh_mirrors/co/ColorControl ColorControl是一款功能强大的开…...

kmp算法:我们所忽略的字符串匹配本质

一、先捅破窗户纸&#xff1a;前后缀在匹配里到底起什么作用&#xff1f;在讲next数组的计算之前&#xff0c;我们必须先把“为什么有前后缀&#xff0c;就能不回退主串”这个核心逻辑彻底讲透&#xff0c;这是字符串匹配的本质核心。我们用一个有前后缀的经典案例&#xff0c;…...