分布式id生成系统--总结

分布式id生成系统--总结

UUID

简单易用, 但是做数据库分片的时候, UUID不太适合作为分片键

详见 Leaf——美团点评分布式ID生成系统

snowflake

性能非常高, 缺点是如果时间回拨或者各个实例节点时间不一致, 容易出错

详见 Leaf——美团点评分布式ID生成系统

美团开源的Leaf

支持多种不同模式的生成策略

  1. 号段模式
    1. 该模式需要建DB表, 需要有专门的服务来提供获取id的接口, 存在网络延迟
  2. Snowflake模式

为了追求更高的性能,需要通过RPC Server来部署Leaf 服务,那仅需要引入leaf-core的包,把生成ID的API封装到指定的RPC框架中即可

详见 Leaf

sharding-jdbc开源的主键生成组件

简单易用, 可以指定workerId或者不指定, 直接通过jar的方式引入即可

缺点:

在并发度不高的情况, 容易总是生成偶数

百度开源的uid-generator

需要建DB表, 需要有专门的服务来提供获取id的接口, 存在网络延迟

详见 uid-generator

原文地址:https://www.cnblogs.com/shanzhai/p/10500389.html