Skip to content

Commit 181a4f5

Browse files
authored
2021-10-30
1 parent f8e9ca0 commit 181a4f5

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

docs/distribution/4_分布式id.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# 分布式 ID
2+
3+
## 分布式 ID
4+
5+
我们知道 ID 是数据的唯一标识,比如比如身份证 ID 对应且仅对应一个人,商品 ID 对应且仅对应一件商品。分布式 ID 是分布式系统下的 ID,分布式 ID 不存在与现实生活中,属于计算机系统中的一个概念。一个最基本的分布式 ID 需要满足以下要求:
6+
7+
- 全局唯一
8+
9+
- 高性能
10+
11+
生成速度快,对本地资源消耗小
12+
13+
- 高可用
14+
15+
生成分布式 ID 的服务要保证可用性无限接近于 100%
16+
17+
- 拿来即可用
18+
19+
除此之外,设计一个比较好的分布式 ID 还应保证:
20+
21+
- 安全性
22+
23+
ID 不应该包含敏感信息
24+
25+
- 有序递增
26+
27+
如果要把 ID 存放在数据库的话,ID 的有序性可以提升数据库写入速度。并且,很多时候 ,我们还很有可能会直接通过 ID 来进行排序。
28+
29+
- 可独立部署
30+
31+
独立部署就是分布式系统单独有一个**发号器服务**,专门用来生成分布式 ID。这样就生成 ID 的服务可以和业务相关的服务解耦。不过,这样同样带来了网络调用消耗增加的问题。总的来说,如果需要用到分布式 ID 的场景比较多的话,独立部署的发号器服务还是很有必要的。
32+
33+
- 包含具体业务含义
34+
35+
36+
37+
## 分布式 ID 生成方案
38+
39+
### 数据库
40+
41+
### 算法
42+
43+
### 开源框架
44+
45+
46+

0 commit comments

Comments
 (0)