分布式 ID 生成方案
架构之美
共 5572字,需浏览 12分钟
· 2021-08-23
- 前言 -
- ID 生成方案 -
UUID/GUID
123e4567-e89b-12d3-a456-426655440000
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
"版本1" UUID 是根据时间和节点 ID(通常是MAC地址)生成; "版本2" UUID是根据标识符(通常是组或用户ID)、时间和节点ID生成; "版本3" 和 "版本5" 确定性UUID 通过散列 (hashing) 命名空间 (namespace) 标识符和名称生成; "版本4" UUID 使用随机性或伪随机性生成。
优点 容易实现,产生快 ID唯一(几乎不会产生重复id) 无需中心化的服务器 不会泄漏商业机密 缺点 可读性差 占用空间太多(16个字节) 影响数据库的性能, 比如UUID or GUID as Primary Keys? Be Careful!
- 递增的整数 -
优点 容易产生 可读性好,容易记住 存储很小,比如4个字节 缺点 需要中心化的服务器,并且需要处理单点的问题,而且单点有性能瓶颈的问题。 如果ID暴露给公共访问,可能会泄漏商业机密。比如最近浑水报告通过统计销售小票推断出某商业模式的每日单量。 需要访问一次数据库获取ID
- 随机数 -
优点 可读性高 占用存储小,4个字节就可以了 随机,不会泄漏信息 缺点 同样需要中心化的服务,有单点问题和性能问题 需要两步,先产生递增的ID,再进行随机加密
- 随机字符串 -
优点 短,5个字符(字节)就可以表示10亿个ID。 可读性高 随机,不会泄漏信息 缺点 ID可能不唯一,需要检查和处理
- Twitter的snowflake算法 -
优点 存储少, 8个字节 可读性高 性能好,可以中心化的产生ID,也可以独立节点生成 缺点 时间回拨会重复产生ID ID生成有规律性,信息容易泄漏
- MongoDB ObjectID -
优点 可读性高 性能好,可以中心化的产生ID,也可以独立节点生成 缺点 占用存储较多 时间回拨会重复产生ID ID生成有规律性,信息容易泄漏
- 分布式 ID 生成器服务 did -
1、256个client并发,每次只获取1个ID, ID的产生速度是 12万个ID/秒。
./bclient -addr 192.168.15.225:8972 -n 100000
total IDs: 25600000, duration: 3m31.581592489s, id/s: 120993
2、如果采用批量获取,尽量减少网络消耗,256个client并发,每次只获取100个ID, ID的产生速度是 297万个ID/秒。
./bclient -addr 192.168.15.225:8972 -n 1000000 -b 100
total IDs: 256000000, duration: 1m26.178942509s, id/s: 2970563
https://www.simpleorientedarchitecture.com/7-strategies-for-assigning-ids/ https://www.callicoder.com/distributed-unique-id-sequence-number-generator/ https://juejin.im/post/5b3a23746fb9a024e15cad79 https://tech.meituan.com/2017/04/21/mt-leaf.html https://i6448038.github.io/2019/09/28/snowflake/ https://soulmachine.gitbooks.io/system-design/content/cn/distributed-id-generator.html https://juejin.im/post/5bb0217ef265da0ac2567b42 https://chai2010.cn/advanced-go-programming-book/ch6-cloud/ch6-01-dist-id.html https://zh.wikipedia.org/zh-hans/%E9%80%9A%E7%94%A8%E5%94%AF%E4%B8%80%E8%AF%86%E5%88%AB%E7%A0%81 https://zhuanlan.zhihu.com/p/46404167
作者:smallnest
来源:
https://colobu.com/2020/02/21/ID-generator/
评论
FaceChain高保真人像风格生成挑战赛:一等奖方案
Datawhale分享 作者:马琦钧,Datawhale成员简 介大家好,我是马琦钧,Datawhale成员,毕业于浙江农林大学,统计学/会计学双学位,获得过由阿里云、谷歌、百度、CVPR、思否、极棒等举办的相关赛事奖项。本次主要分享 FaceChain 高保真人像风
Datawhale
1
OpenAI的Sora竟然造假:生成的AI大片只有1%的AI,剩下的99%是人工!
点蓝色字关注“机器学习算法工程师”设为星标,干货直达!啊?Sora火爆短片《气球人》,也“造假”了???背后艺术家团队的最新揭秘,可谓一石激起千层浪:原来,视频画面并非完全由AI生成,其中有大量视觉效果需要人类后期实现。be like:这下网友不干了,合着大家伙儿跟OpenAI玩真心,OpenAI背
机器学习算法工程师
1
让扩散模型听话的小秘籍?CAN:通过操控权重来控制条件生成模型,图像生成效率大升级!
↑ 点击蓝字 关注极市平台作者丨科技猛兽编辑丨极市平台极市导读 本文提出的 CAN 模型 (Condition-Aware Neural Network) 是一种对图像生成模型添加控制的方法。CAN 可以通过动态操纵神经网络的权重来控制图像生成过程。作者在 ImageNet 图像
极市平台
0
Open-Sora全面开源升级:支持16s视频生成和720p分辨率
机器之心发布 机器之心编辑部Open-Sora 在开源社区悄悄更新了,现在单镜头支持长达16秒的视频生成,分辨率最高可达720p,并且可以处理任何宽高比的文本到图像、文本到视频、图像到视频、视频到视频和无限长视频的生成需求。我们来试试效果。生成个横屏圣诞雪景,发b站再生成个竖屏,发抖音还能
机器学习算法与Python实战
0
魔改Transformer!9种提速又提效的模型优化方案
向AI转型的程序员都关注了这个号👇👇👇Transformer目前已经成为人工智能领域的主流模型,应用非常广泛。然而Transformer中注意力机制计算代价较高,随着序列长度的增加,这个计算量还会持续上升。为了解决这个问题,业内出现了许多Transformer的魔改工作,以优化Transformer
机器学习AI算法工程
0
OpenUI:输入一段文字就能生成网!页!!
今天给大家介绍一个开源的 AI 网页生成工具:OpenUI!!!前言 在软件开发领域,用户界面(UI)的设计和构建确实是一个至关重要的环节。传统的 UI 开发需要设计师和开发人员紧密合作,通过反复的设计、修改和测试来达到理想的效果,这个过程往往耗时且成本较高。随着 AI 技术的发展,现在有越来越多的
前端技术江湖
0