随笔 20250402 分布式 ID 生成器 Snowflake 里面的坑

以下是你上传的「Snowflake 中的坑及配置实践」内容的文字版整理:


简介:分布式 ID 生成器 Snowflake 里面的坑你是否知道?

一、分布式 ID 生成器需求

  • 性能强劲

  • 全局唯一不能重复

  • 防止恶意用户根据 ID 的规律来获取数据


二、全局唯一不能重复的坑

坑一:
  • 分布式部署就需要分配不同的 workId,如果 workId 相同,可能会导致生成的 ID 相同
坑二:
  • 分布式情况下,需要保证各个系统时间一致

    如果服务器的时钟回拨,就会导致生成的 ID 重复

    什么时候会有系统回拨?

    • 小滴课堂-老王闲着,人工在生产环境做了系统时间调整,应该不会这么傻吧?

    • 业务需求,代码里确实做了系统时间同步


三、配置实操

示例配置:
复制代码
spring.shardingsphere.sharding.tables.traffic.key-generator.props.worker.id=1

四、实现方式

方式一:MybatisPlus 中配置
  • 用于订单 ID 的配置,示例代码如下(TrafficDO 类配置):

    @TableId(value = "id", type = IdType.ASSIGN_ID)

  • 默认实现类为 DefaultIdentifierGenerator,底层使用的是雪花算法


方式二:Sharding-JDBC 配置文件中配置
  • 在注释 DO 类中 ID 分配策略如下:

    id 生成策略

    key-generator:
    column: id
    props:
    worker:
    id: 0
    # id 生成策略
    type: SNOWFLAKE


是否需要我将这些内容也整理成页面样式(例如 Markdown 网页或 PDF 版)?也可以合并前两部分一起做。

相关推荐
BD_Marathon7 小时前
【Zookeeper】CAP理论——CAP介绍
linux·分布式·zookeeper
j***57689 小时前
【分布式文件存储系统Minio】2024.12保姆级教程
分布式
敲上瘾9 小时前
【探索实战】:Kurator分布式统一应用分发平台的全面解析与实践指南
分布式·容器·kubernetes·serverless
SuperHeroWu71 天前
【HarmonyOS 6】UIAbility跨设备连接详解(分布式软总线运用)
分布式·华为·harmonyos·鸿蒙·连接·分布式协同·跨设备链接
杜子不疼.1 天前
【探索实战】从0到1打造分布式云原生平台:Kurator全栈实践指南
分布式·云原生
m***l1151 天前
集成RabbitMQ+MQ常用操作
分布式·rabbitmq
拾忆,想起1 天前
Dubbo分组(Group)使用指南:实现服务接口的多版本管理与环境隔离
分布式·微服务·性能优化·架构·dubbo
回家路上绕了弯1 天前
彻底解决超卖问题:从单体到分布式的全场景技术方案
分布式·后端
拾忆,想起1 天前
Dubbo动态配置实时生效全攻略:零停机实现配置热更新
分布式·微服务·性能优化·架构·dubbo
每天进步一点_JL2 天前
事务与消息中间件:分布式系统中的可见性边界问题
分布式·后端