分布式全局ID生成方案

65 篇文章 1 订阅 ¥79.90 ¥99.00
在分布式环境中,生成全局唯一ID是一项关键任务。本文介绍了多种解决方案,包括数据库自增ID、批量生成ID、UUID、使用当前毫秒数、Redis生成ID以及Snowflake算法。每种方案都有其优缺点,例如数据库自增ID面临可用性和扩展性问题,UUID虽然本地生成但不保证递增,而Snowflake算法则能保证趋势递增但需要考虑并发冲突。选择适合的ID生成策略对于系统的性能和可靠性至关重要。
摘要由CSDN通过智能技术生成

分布式全局ID生成方案

1 背景
分布式架构下,唯一序列号生成是我们在设计一个系统,尤其是数据库使用分库分表的时候常常会遇见的问题。当分成若干sharding表后,如何能够快速拿到一个唯一序列号,是经常遇到的问题。
在互联网的业务系统中,涉及到各种各样的ID,如在支付系统中就会有支付ID、退款ID等。那一般生成ID都有哪些解决方案呢?特别是在复杂的分布式系统业务场景中,我们应该采用哪种适合自己的解决方案是十分重要的
2 特性需求

保证生成的ID全局唯一
今后数据在多个Shards之间迁移不会受到ID生成方式的限制
生成的ID中最好能带上时间信息, 例如 ID 的前 k 位是 Timestamp, 这样能够直接通过对ID的前k位的
排序来对数据按时间排序
生成的ID比特位不要过大,最好不大于64 bits
生成 ID 的速度有要求. 例如, 在一个高吞吐量的场景中, 需要每秒生成几万个 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学无止路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值