\345\270\270\350\247\201\351\227\256\351\242\230/\345\210\206\345\270\203\345\274\217id\347\224\237\346\210\220\344\274\230\345\214\226.md
... ...
@@ -40,7 +40,8 @@ public synchronized long nextId() {
40 40
}
41 41
```
42 42
由上述的代码可知,本质上生成一个分布式id主要包括3段:41bit时间戳 + 10bit机器标识(这里的实现是5bit的机器码+5bit数据中心码)+ 12bit的序列号
43
-[[/uploads/Home/id_generator_img.png]]
43
+
44
+[[http://iidp.chinasie.com:9999/iidpminio/id_generator/id_generator_img.png]]
44 45
45 46
- 已有实现的问题
46 47
- 没有使用10bit机器标识。目前的机器码和数据中心码都是写死为1,在所有场景下这10bit完全一样,如果在分布式环境下,遇到一些机器时间漂移的情况,虽然趋势shi递增,但不是绝对递增,那么很可能生成重复的id;
... ...
@@ -69,7 +70,7 @@ public synchronized long nextId() {
69 70
```
70 71
为了简单,直接修改timeGen函数,让其返回时间一样,则生成的id都一样。
71 72
72
-[[/uploads/Home/id_gen_test.png]]
73
+[[http://iidp.chinasie.com:9999/iidpminio/id_generator/id_gen_test.png]]
73 74
74 75
#### 优化
75 76
- 生成机器id。通过获取机器MAC地址来生成