摘要:同时除了对号码自身的要求,业务还对号生成系统的可用性要求极高,想象一下,如果生成系统瘫痪,整个美团点评支付优惠券发券骑手派单等关键动作都无法执行,这就会带来一场灾难。
分布式id主要用到哪些地方
在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求;特别一点的如订单、骑手、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。
分布式id创建的业务需求要求如下所示
1.全局唯一性:不能出现重复的ID号,既然是唯一标识,这是最基本的要求。
2.趋势递增:在MySQL InnoDB引擎中使用的是聚集索引,由于多数RDBMS使用B-tree的数据结构来存储索引数据,在主键的选择上面我们应该尽量使用有序的主键保证写入性能。
3.单调递增:保证下一个ID一定大于上一个ID,例如事务版本号、IM增量消息、排序等特殊需求。
4.信息安全:如果ID是连续的,恶意用户的扒取工作就非常容易做了,直接按照顺序下载指定URL即可;如果是订单号就更危险了,竞对可以直接知道我们一天的单量。所以在一些应用场景下,会需要ID无规则、不规则。
5.分布式id里面最好包含时间戳,这样就能够在开发中快速了解这个分布式id的生成时间
上述123对应三类不同的场景,3和4需求还是互斥的,所以无法使用同一个方案满足。
同时除了对ID号码自身的要求,业务还对ID号生成系统的可用性要求极高,想象一下,如果ID生成系统瘫痪,整个美团点评支付、优惠券发券、骑手派单等关键动作都无法执行,这就会带来一场灾难。由此我总结下一个ID生成系统应该做到如下几点:
可用性高:就是我用户发了一个获取分布式id的请求,那么你服务器就要保证99.999%的情况下给我创建一个分布式id
延迟低:就是我用户给你一个获取分布式id的请求,那么你服务器给我创建一个分布式id的速度就要快
高QPS:这个就是用户一下子有10万个创建分布式id请求同时过去了,那么你服务器要顶的住,你要一下子给我成功创建10万个分布式id
原文链接
其他分布式ID系列快捷键:
分布式ID系列(1)——为什么需要分布式ID以及分布式ID的业务需求
分布式ID系列(2)——UUID适合做分布式ID吗
分布式ID系列(3)——数据库自增ID机制适合做分布式ID吗
分布式ID系列(4)——Redis集群实现的分布式ID适合做分布式ID吗
大佬网址
https://www.itqiankun.com/art...
https://blog.csdn.net/hengyun...
https://tech.meituan.com/2017...
https://segmentfault.com/a/11...
https://www.jianshu.com/p/9d7...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/76113.html
摘要:用户指定一个名字空间和一个字符串,通过散列,生成。字符串本身需要是唯一的。。虽然是基于随机数,但是重复的可能性可以忽略不计,因此该版本也是被经常使用的版本。。当前正在使用的。。 UUID的生成策略: UUID的方式能生成一串唯一随机32位长度数据,它是无序的一串数据,按照开放软件基金会(OSF)制定的标准计算,UUID的生成用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。U...
摘要:数据库自增机制原理介绍在分布式里面,数据库的自增机制的主要原理是数据库自增和数据库的函数实现的。 数据库自增ID机制原理介绍 在分布式里面,数据库的自增ID机制的主要原理是:数据库自增ID和mysql数据库的replace_into()函数实现的。这里的replace数据库自增ID和mysql数据库的replace_into()函数实现的。这里的replace into跟insert功...
摘要:问题是,重复请求导致的数据重复插入。这问题造成的后果很明显数据冗余,可能不单单多一条有些业务需求不能有多余数据,造成服务问题问题如图所示解决方式如何将同请求,不执行插入,而是读取前一个请求插入的数据并返回。那么使用分布式锁的解决方案。 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢!目录 为啥要解...
阅读 1563·2021-11-22 15:33
阅读 1691·2021-11-15 18:01
阅读 594·2021-10-09 09:43
阅读 2579·2021-09-22 16:03
阅读 729·2021-09-03 10:28
阅读 3532·2021-08-11 10:22
阅读 2693·2019-08-30 15:54
阅读 1742·2019-08-30 14:21