源码 代码 原理 Twitter的snowflake 为啥写 生产环境的服务器,一直以来用的都是ulid,生成字符串排序的uid。 没写node以前,用的都是int64做唯一id。心里一直想着哪天一定要换掉ulid。 找不到合适的现有库,发现自己对js的与或运算运用不自如。刚好也想试试c++扩展,最后就写成现在这个样子了。 区别和特点 首先,使用的是snowflake原理。 但是有一些区别,js的正数最大是2^53,所以这个库最后生成是 int53位的uuid 。
53 位 bit 是这样分配的 32bit 时间戳秒:能用最多100多年。 9bit 机器:最多512台机器/线程 12bit 自增:每秒最多4096个
欢迎测试、使用、提意见、交流。