美团雪花LEAF算法

美团雪花LEAF算法

leaf的优势: 高可靠 低延迟 全局唯一

目前主流的分布式ID大部分基于 数据库号段模式和雪花算法,美团2者兼具

leaf-segment模式

  1. 从数据库获取MAX_ID ,服务本地生成 相应步长的自增ID;

  2. 并不是号用完就去数据库加载max_id;而是号段消耗10%后就去提前加载 做到无阻塞

leaf-snowflake

1 + 41(时间戳) + 5 机房 + 5 机器 + 12 seq = 64

根据zookeeper生成workId 也就是 机房+机器

leaf的workerId是基于zk的顺序id来生成的,每个应用在启动时都会在zk生成一个顺序id,相当于一个机器对应一个顺序节点

Leaf-snowflake对Zookeeper是一种弱依赖关系,除了每次会去ZK拿数据以外,也会在本机文件系统上缓存一个workerID文件。一旦ZooKeeper出现问题,恰好机器出现故障需重启时,依然能够保证服务正常启动。

原文地址:https://www.cnblogs.com/albertXe/p/14913569.html