武功秘籍之发号器

ID 生成 < authorzhoukai date2020
发布于 2024-08-07
902

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

扫码阅读
手机扫码阅读
发号器与雪花算法简介

发号器与雪花算法简介

发号器是在分布式系统中用于生成全局唯一标识(如用户ID、订单ID等)的服务。这些ID通常用作分库分表的关键键,因此发号器的重要性不言而喻。目前流行的ID生成技术方案包括数据库自增ID、UUID以及自定义ID(如雪花算法)。文章重点介绍了基于Twitter的SnowFlake(雪花算法)设计的多业务线通用的ID生成服务。

01 - SnowFlake雪花算法

雪花算法满足分布式环境下全局ID的唯一性,支持不同业务的区分,有利于快速分库分表,并能通过ID反查信息。该算法提供两个接口:ID生成和ID校验,允许生成带有时间戳、业务线、机器编号和序列号的64位长整型数字。

解决方案

雪花算法通过调整工作机器ID和序列号的位数,生成ID,并提供了两个接口。ID生成接口用于根据需求生成指定数量的ID,而ID校验接口可以返回ID的生成时间、机器和业务信息。官方版本的结构图展示了雪花算法的位数分配,如1位标志位、41位时间戳、6位业务线、6位机器编号和10位序列号。

实现过程

实现过程包括定义实体类和接口控制层。实体类GenerateId包含ID值、业务类型、机器ID、ID序号和生成时间。请求实体类GenerateIdVO则包含请求生成数量、请求生成业务ID和请求检测的ID列表。接口控制层GenerateIdController定义了单次请求最大数量和机器ID,并提供了生成ID的接口。

码农周星星

一个有思维、有温度、有味道、爱生活、爱美食、爱旅游、乐于分享的程序猿,希望遇见有共同爱好的你

58 篇文章
浏览 55.3K

还在用多套工具管项目?

一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。

加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线