分布式id生成系统--总结
分布式id生成系统--总结
UUID
简单易用, 但是做数据库分片的时候, UUID不太适合作为分片键
snowflake
性能非常高, 缺点是如果时间回拨或者各个实例节点时间不一致, 容易出错
美团开源的Leaf
支持多种不同模式的生成策略
- 号段模式
- 该模式需要建DB表, 需要有专门的服务来提供获取id的接口, 存在网络延迟
- Snowflake模式
为了追求更高的性能,需要通过RPC Server来部署Leaf 服务,那仅需要引入leaf-core的包,把生成ID的API封装到指定的RPC框架中即可
详见 Leaf
sharding-jdbc开源的主键生成组件
简单易用, 可以指定workerId或者不指定, 直接通过jar的方式引入即可
缺点:
在并发度不高的情况, 容易总是生成偶数
百度开源的uid-generator
需要建DB表, 需要有专门的服务来提供获取id的接口, 存在网络延迟