分布式ID生成器(雪花算法)

分布式ID生成器

目前微服务架构盛行,在分布式系统中的操作中都会有一些全局性ID的需求,所以我们不能使用数据库本身的自增功能来产生主键值,只能由程序来生成唯一的主键值。我们采用的是开源的twitter( 非官方中文惯称:推特.是国外的一个网站,是一个社交网络及微博客服务) 的snowflake (雪花)算法。
分布式ID生成器(雪花算法)_第1张图片
各个段解析:

分段 作用 说明
1bit 保留(不用)
41bit 时间戳,精确到毫秒 最多可以支持69年的跨度
5bit 机器id 最多支持2的5次方(32)个节点
5bit 业务编码 最多支持2的5次方(32)个节点
12bit 毫秒内的计数器 每个节点每毫秒最多产生2的12次方(4096)个id

默认情况下41bit的时间戳可以支持该算法使用到2082年,10bit的工作机器id可以支持1024台机器,序列号支持1毫秒产生4096个自增序列id . SnowFlake的优点是,整体上按照时间自增排序,并且整个分布式系统内不

你可能感兴趣的:(spring,could的学习)