分布式ID生成器
目前微服务架构盛行,在分布式系统中的操作中都会有一些全局性ID的需求,所以我们不能使用数据库本身的自增功能来产生主键值,只能由程序来生成唯一的主键值。我们采用的是开源的twitter( 非官方中文惯称:推特.是国外的一个网站,是一个社交网络及微博客服务) 的snowflake (雪花)算法。 各个段解析:
分段
作用
说明
1bit
保留(不用)
41bit
时间戳,精确到毫秒
最多可以支持69年的跨度
5bit
机器id
最多支持2的5次方(32)个节点
5bit
业务编码
最多支持2的5次方(32)个节点
12bit
毫秒内的计数器
每个节点每毫秒最多产生2的12次方(4096)个id
默认情况下41bit的时间戳可以支持该算法使用到