目前业务中的使用生成器,主要用于生成唯一ID。 主要场景有生成用户I号,生成帖子ID。 目前各个业务使用redis的INCR方式生成自增的唯一ID。
基本上常见的分布式情况下的UniqueID的生成方法就分为了两大类, 一类是基于分配的发号器,另外一类是基于规则计算的唯一序列。 而后者的常用算法通常就是UUID以及OjbectID和SnowFlake 基于发号器的优势在于可以按照准连续的增加,可以用于Int32等的存储。但是性能和系统复杂度上存在一定的缺陷。 而基于计算规则的优势主要是分布式情况下,各机器独立运算,性能上有保证。但是通常都需要使用64位以上的空间来进行存储。 目前业务中很少业务使用规则计算的唯一序列,都是基于分配的发号器。 因此优先需要实现分配的发号器。