美文网首页
3.分布式ID

3.分布式ID

作者: 南园故剑00 | 来源:发表于2020-07-21 10:57 被阅读0次

    https://mp.weixin.qq.com/s/qztRf1yDazLc7dfqU707mA

    1. 是什么?

    全局唯一ID

    2. 条件

    • 全局唯一:必须保证ID是全局性唯一的,基本要求

    • 高性能:高可用低延时,ID生成响应要块,否则反倒会成为业务瓶颈

    • 高可用:100%的可用性是骗人的,但是也要无限接近于100%的可用性

    • 好接入:要秉着拿来即用的设计原则,在系统设计和实现上要尽可能的简单

    • 趋势递增:最好趋势递增,这个要求就得看具体业务场景了,一般不严格要求

    3. 生成方式

    • UUID:无序U、不具备自增特性、长度过大

    • 数据库自增ID:DB存在宕机风险,无法抗住高并发

    • 数据库多主模式:基于数据库集群模式:设置起始值和歩长。不利于后续扩容,而且实际上单个数据库自身压力还是大,依旧无法满足高并发场景。

    • 号段模式

    • Redis

      • RDB会定时打一个快照进行持久化,假如连续自增但redis没及时持久化,而这会Redis挂掉了,重启Redis后会出现ID重复的情况。

      • AOF会对每条写命令进行持久化,即使Redis挂掉了也不会出现ID重复的情况,但由于incr命令的特殊性,会导致Redis重启恢复的数据时间过长。

    • 雪花算法(SnowFlake)

    • 滴滴出品(TinyID)

    • 百度 (Uidgenerator)

    • 美团(Leaf)

    4.

    相关文章

      网友评论

          本文标题:3.分布式ID

          本文链接:https://www.haomeiwen.com/subject/txxikktx.html