-
我用雪花算法生成分布式订单 ID,跑了大半年一直好好的,某天凌晨服务器自动校了一次时、把时钟往回拨了几毫秒,雪花算法当场抛异常拒绝生成 ID、订单全下不了的深度复盘
我用雪花算法(Snowflake)生成分布式唯一订单 ID(靠毫秒时间戳+机器ID+序列号拼出全局唯一且大致递增的 ID),跑了大半年稳得很。可某天凌晨突发:一段时间内所有下单都失败,日志全是雪花算法抛的 Clock moved backwards 时钟回拨异常,几分钟后又自己恢复。排查发现那台服务器凌晨做了一次 NTP 自动校时、把系统时钟往回拨了几毫秒,而雪花算法检测到当前时间小于上次生成 I…- 0
- 0
-
分布式 ID 生成完全指南:从一次"两台机器同时生成了一样的订单号"看懂雪花算法
2021 年我做一个订单系统要给每一笔订单生成一个全局唯一的订单号。第一版我做得很省事订单表是 MySQL 我直接用了表的自增主键当订单号。本地一测完美每插一条订单 ID 自动加一从不重复。我心里很踏实生成唯一 ID 嘛数据库自增不就行了要么随手 UUID 一下。可等系统真正长大扛着真实的业务量一串问题冒了出来。第一种最先把我打懵订单量上来后我做了分库分表把订单拆到两个库结果两个库各自从 1 开始…- 0
- 0
-
幂等性与分布式锁完全指南:幂等 Token、Redis 锁与 Snowflake ID
"用户重复点击下单按钮,产生了两个订单。""扣款接口因网络重试调用了两次,用户被扣了两次钱。""消息队列重发,业务被执行两次。"—— 这些场景的根源都是同一个:缺乏幂等性。这篇文章把幂等性、分布式锁、分布式 ID 这三个紧密相关的话题一次讲透,因为它们经常组合出现在解决方案里。 幂等性的定义 简单说:同一个操作执行 N 次和执行 1 次效…- 9
- 0
Snowflake
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!



