【架构】一款永不重复的高性能分布式发号器,实战nginxpdf

零、基本术语

发号器:用于生成唯一流水号(也即俗称的唯一ID)的服务系统,称之为发号器

一、技术选型

UUID

优点:能够保证唯一性

缺点:(1)完全的时间数据=>性能比较差、比较长、占用空间大、间接导致数据库性能下降;(2)无序=>导致B+树索引在写的时候会有过多的随机写操作,不会产生有顺序的append操作,而是需要进行insert操作,这将读取整个B+树节点到内存并在插入该条记录后会将整个节点写会磁盘=>在记录占用空间比较大的情况下,写的性能会明显下降

数据库

单库时(自增字段):局限性在于自增字段完全依赖数据库,会导致数据库移植、扩容、洗数据、分库分表问题

分库分表时(水平伸缩=>自增字段+数据库seq+步长step):缺陷在于服务节点固定(即step固定,继续增加服务节点难以进行扩展)、仍强依赖于数据库(对数据库造成压力

开源项目-Snowflake

Twitter开源的发号器&#

你可能感兴趣的:(程序员,面试,java,后端)