分布式id解决方案

Posted 敲代码的小小酥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式id解决方案相关的知识,希望对你有一定的参考价值。

分布式id问题

主要是分库分表带来的问题。同一个业务数据分表后,也要保证不同表的数据id唯一。否则同一个类型的业务数据,取出的数据id都是一样的,如何区分这些数据呢?

解决方案

雪花算法:
基于时间戳和机器码生成的唯一id。基本保证id递增。但是当服务器时间回拨时,可能会出现重复id。
针对这个问题,百度的UIDGenerator和美团的Leaf提供了解决方案,对于要求高的业务场景,可以使用这两种解决方案。

UUID
可以保证唯一,但是太浪费性能。

redis&&Zookeeper
利用redis或zookeeper的自增特性

总结

最推荐的是雪花算法。如果对时间回拨不敏感,用雪花算法即可

以上是关于分布式id解决方案的主要内容,如果未能解决你的问题,请参考以下文章

SnowFlake唯一ID生成器

SnowFlake唯一ID生成器

分布式系统——分布式ID方案

分布式系统唯一ID生成方案汇总

分布式系统唯一ID生成方案汇总

一文搞定分布式系统ID生成方案