From f0f50760bd8e19491ead044b4bf95a746ef0b1d4 Mon Sep 17 00:00:00 2001 From: Xargin Date: Sun, 8 Jul 2018 23:10:46 +0800 Subject: [PATCH] update di --- ch6-cloud/ch6-07-dist-id.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ch6-cloud/ch6-07-dist-id.md b/ch6-cloud/ch6-07-dist-id.md index ae704c8..73aaa7a 100644 --- a/ch6-cloud/ch6-07-dist-id.md +++ b/ch6-cloud/ch6-07-dist-id.md @@ -1,5 +1,11 @@ # 6.7. 分布式 id 生成器 +有时我们需要能够生成类似 MySQL 自增 ID 这样不断增大,同时又不会重复的 id。以支持业务中的高并发场景。比较典型的,电商促销时,短时间内会有大量的订单涌入到系统,比如每秒 10w+。明星出轨时,会有大量热情的粉丝发微薄以表心意,同样产生短时间大量的消息。 + +在插入数据库之前,我们需要给这些消息/订单先打上一个 ID,然后再插入到我们的数据库。对这个 id 的要求是希望其中能带有一些时间信息,这样即使我们后端的系统对消息进行了分库分表,也能够以时间顺序对这些消息进行排序。 + +Twitter 的 snowflake 算法是这种场景下的一个典型解法。先来看看 snowflake 是怎么一回事: + ``` datacenter_id sequence_id