在单体应用中,我们可以通过数据库的主键!D来生成唯一的ID,但是如果数据量变大,就需要进行分库分表,在分库分表之后,如何生成一个全局唯一的ID,就是一个关键的问题。
通常情况下,对于分布式ID来说,我们一般希望他具有以下几个特点:
全局唯一:必须保证全局唯一性,这个是最基本的要求。
高性能&高可用:需要保证ID的生成是稳定且高效的。
递增:根据不同的业务情况,有的会要求生成的ID呈递增趋势,也有的要求必须单调递增(后一个D必须比前一个大),也有的没有严格要求。
通常,在分布式ID的生成方案主要有以下6种:
·UUID
·数据库自增ID
·号段模式
·基于Redis 实现
·雪花算法
·第三方ID生成工具