Code-Life icon indicating copy to clipboard operation
Code-Life copied to clipboard

雪花算法的理解

Open Draymonders opened this issue 3 years ago • 1 comments

origin

前不久刚讨论过 分布式id 的生成方案

我们用一个long类型来表示一个id

long有64位, 由于Java没有无符号long, 所以最高位我们不用,还剩63位,那么我们就可以按照以下大概情况去generate id

  • 时间(距系统第一次上线的时间)
  • 机器id(根据 region, container, worker name, )
  • id自增 因为同一个机器id,每1秒可能会有很大的并发,因此这里的id自增是按照毫秒去划分的

reference

  • https://github.com/weiyinfu/wolf/blob/wei/wiredwolf/snow_flake.py

Draymonders avatar Oct 22 '20 09:10 Draymonders

分布式id自增

魏神: 自增实现并发你知道吗, 自增id并发 我: 我只知道 AtomInteger.increment() 我: 或者redis实现自增? 我: 总得要一个串行的程序去做吧 魏神: 多个实例批发一堆id,然后再卖出去 我: 就是incr(size)这样吧

Draymonders avatar Oct 22 '20 09:10 Draymonders