提交 dd8d9f75 编写于 作者: K Kou Shuang

分布式id生成方案总结

上级 d9c23ebd
...@@ -229,7 +229,7 @@ ...@@ -229,7 +229,7 @@
#### 唯一 id 生成 #### 唯一 id 生成
代办...... [分布式id生成方案总结](docs/system-design/micro-service/分布式id生成方案总结.md)
#### 服务治理:服务注册与发现、服务路由控制 #### 服务治理:服务注册与发现、服务路由控制
......
> 点击关注[公众号](#公众号)及时获取笔主最新更新文章,并可免费领取本文档配套的《Java面试突击》以及Java工程师必备学习资源。
>
> 本文授权转载自:https://juejin.im/post/5d6fc8eff265da03ef7a324b ,作者:1点25。
ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innodb存储引擎,UUID太长以及无序,所以并不适合在Innodb中来作为主键,自增ID比较合适,但是随着公司的业务发展,数据量将越来越大,需要对数据进行分表,而分表后,每个表中的数据都会按自己的节奏进行自增,很有可能出现ID冲突。这时就需要一个单独的机制来负责生成唯一ID,生成出来的ID也可以叫做**分布式ID**,或**全局ID**。下面来分析各个生成分布式ID的机制。 ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innodb存储引擎,UUID太长以及无序,所以并不适合在Innodb中来作为主键,自增ID比较合适,但是随着公司的业务发展,数据量将越来越大,需要对数据进行分表,而分表后,每个表中的数据都会按自己的节奏进行自增,很有可能出现ID冲突。这时就需要一个单独的机制来负责生成唯一ID,生成出来的ID也可以叫做**分布式ID**,或**全局ID**。下面来分析各个生成分布式ID的机制。
![常用分布式id方案](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-7/分布式id方案.jpeg) ![常用分布式id方案](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-7/分布式id方案.jpeg)
...@@ -171,4 +175,12 @@ RDB持久化相当于定时打一个快照进行持久化,如果打完快照 ...@@ -171,4 +175,12 @@ RDB持久化相当于定时打一个快照进行持久化,如果打完快照
AOF持久化相当于对每条写命令进行持久化,如果Redis挂掉了,不会出现ID重复的现象,但是会由于incr命令过得,导致重启恢复数据时间过长。 AOF持久化相当于对每条写命令进行持久化,如果Redis挂掉了,不会出现ID重复的现象,但是会由于incr命令过得,导致重启恢复数据时间过长。
> 本文授权转载自:https://juejin.im/post/5d6fc8eff265da03ef7a324b ,作者:1点25。 ## 公众号
\ No newline at end of file
如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。
**《Java面试突击》:** 由本文档衍生的专为面试而生的《Java面试突击》V2.0 PDF 版本[公众号](#公众号)后台回复 **"Java面试突击"** 即可免费领取!
**Java工程师必备学习资源:** 一些Java工程师常用学习资源公众号后台回复关键字 **“1”** 即可免费无套路获取。
![我的公众号](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-6/167598cd2e17b8ec.png)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册