一、为什么要用分布式ID?
1、什么是分布式ID?
全局唯一ID就叫分布式ID。
2、那么分布式ID需要满足那些条件?
全局唯一:必须保证ID是全局性唯一的,基本要求
高性能:高可用低延时,ID生成响应要块,否则反倒会成为业务瓶颈
高可用:100%的可用性是骗人的,但是也要无限接近于100%的可用性
好接入:要秉着拿来即用的设计原则,在系统设计和实现上要尽可能的简单
趋势递增:最好趋势递增,这个要求就得看具体业务场景了,一般不严格要求
二、 分布式ID都有哪些生成方式?
9种分布式ID生成器方式有哪些以及优缺点?
1、UUID
2、数据库自增ID
3、数据库集群模式
4、数据库的号段模式
5、Redis
6、雪花算法(SnowFlake)(twitter公司内部分布式项目采用的ID生成算法)
7、百度 (Uidgenerator)
uid-generator是基于Snowflake算法实现的,与原始的snowflake算法不同在于,uid-generator支持自定义时间戳、工作机器ID和 序列号 等各部分的位数,而且uid-generator中采用用户自定义workId的生成策略。
uid-generator需要与数据库配合使用,需要新增一个WORKER_NODE表。
8、美团(Leaf)
9、滴滴出品(TinyID)
// 参考
//https://mp.weixin.qq.com/s/7En55q4YlGIKkQxObV6guw