
snowflake 太长了。。。
1 mayx 2019 年 9 月 27 日 via Android 节点号+随机数 |
2 iPhoneXI 2019 年 9 月 27 日 via Android 号段模式 |
3 Raymon111111 2019 年 9 月 27 日 机器自己注册一个 id (用数据库主键是最简单的), 启动的时候放在本地. 然后 时间(unixtime 秒级别) + id + 几位随机数(比如三位 000 - 999) 就可以弄出十几位的不重复数 机器生成的时候把单秒生成的数存在本地(注意做好多线程控制), 保证自己一秒内不生成重复的(重复后重来一个即可) 风险点有这么几个, 结合自身的业务, 一般下面的限制点都不会成为问题 1. 机器的 id 位数是固定的, 比如也是限制 3 位, 那么这就不支持超过 1000 台机器同时干这么事, 总之一开始设置的机器 id 位数不能改变 2. 一秒内单台机器生成的 id 不能特别多 (虽然上限是 1000, 但是太多之后冲突多了也影响效率) 3. 并不是严格自增的 |
4 alpha2016 2019 年 9 月 27 日 |
5 itechify PRO 美团团队在雪花算法里面做了优化,没用过,希望有帮助 |
6 WordTian 2019 年 9 月 27 日 via Android 时间 一,节点码,自增序号 |
7 lavvrence OP public class RandomIDUtils { private static final long LIMIT = 1000000000L; private static long last= 0; // 集群环境下修改此 workerId(1,2,3 依次递增) private static final long workerId = 1; /** * 生成 10 位不重复数字, 首位为 workerId * 线程安全 * 单调递增 */ public static long getID() { long id = System.currentTimeMillis() % LIMIT; if (id <= last) { id = (last + 1) % LIMIT; } return (last = id) + workerId * LIMIT; } } |
8 lxk11153 2019 年 10 月 18 日 Leaf美团点评分布式 ID 生成系统 ht 河蟹 tps://tech.meituan.c 河蟹 om/2017/04/21/mt-leaf.html) 美团点评分布式 ID 生成系统中 Leaf-segment 数据库方案的实现 ht 河蟹 tps://github.c 河蟹 om/zhuzhong/idleaf |