随笔 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 版)?也可以合并前两部分一起做。

相关推荐
程序员果子1 小时前
Kafka 深度剖析:架构演进、核心概念与设计精髓
大数据·运维·分布式·中间件·架构·kafka
神仙别闹2 小时前
基于Go语言实现分布式类地球模拟系统
分布式
伞啊伞4 小时前
ZooKeeper与Kafka分布式:从基础原理到集群部署
分布式·zookeeper·kafka
我好饿14 小时前
zookeeper+kafka
分布式·zookeeper·kafka
老坛程序员5 小时前
Mosquitto:MQTT Broker入门与分布式部署最佳实践
分布式·物联网·网络协议·iot
szxinmai主板定制专家7 小时前
ZYNQ 平台下的四声道超声流量计设计与实现
运维·arm开发·人工智能·分布式·fpga开发
文人sec8 小时前
性能测试-jmeter15-性能项目计划流
分布式·jmeter·性能优化·grafana·prometheus·模块测试
文慧的科技江湖9 小时前
开源 | 充电桩 运维 管理平台(IoT+运维工单平台)功能清单 - 慧知开源充电桩平台
运维·分布式·物联网·机器人·开源·充电桩平台
xrkhy16 小时前
分布式之RabbitMQ的使用(2)
分布式·rabbitmq
观望过往16 小时前
Spring Cloud构建分布式微服务架构的完整指南
分布式·spring cloud·架构