UUID是一个128位的唯一标识符,几乎不可能重复。它在软件开发中有哪些实际应用?除了常见的数据库主键,UUID还有很多你意想不到的用途。本文将盘点UUID生成器的8个实用场景,帮你更好地利用这个工具。
一、数据库主键:分库分表的解决方案
传统自增ID在单库单表时很好用,但一旦需要分库分表,或者将多个系统的数据合并,自增ID就会产生冲突。UUID可以在不依赖中央服务器的情况下,在各个数据库节点独立生成唯一主键,数据合并时不会冲突。虽然UUID占用的存储空间比整数大,但在分布式系统中,这个代价是值得的。
二、分布式系统追踪:链路追踪的Trace ID
在微服务架构中,一个用户请求可能经过多个服务。为每个请求生成一个唯一的Trace ID(通常用UUID),贯穿所有服务,当出现问题时可以根据Trace ID快速定位到整个调用链,大大简化问题排查过程。这是分布式系统可观测性的基础。
三、文件名生成:彻底解决重名问题
用户上传图片、文件时,如果直接用原文件名保存,很容易出现重名覆盖。用UUID重命名文件,可以确保每个文件名都是唯一的。而且UUID的随机性还可以防止用户通过猜测文件名下载他人文件,提高安全性。配合文件后缀,生成像f47ac10b-58cc-4372-a567-0e02b2c3d479.jpg这样的文件名。
四、会话标识和API密钥
用户登录后生成的Session ID,或者API调用的密钥,需要足够随机且难以猜测。UUID v4基于随机数生成,满足这个要求。相比自增数字,UUID无法被枚举,更难被暴力破解。
五、临时资源标识
在创建订单、发起支付等流程中,经常需要先生成一个临时资源(如待支付订单),再跳转到第三方完成操作。用UUID作为临时资源的标识,可以避免ID被猜测和遍历。
六、批量数据导入的关联键
批量导入数据时,数据之间可能有引用关系。可以在导入前为每条数据生成UUID作为临时关联键,导入完成后再转换为数据库主键。这样可以保证数据关联的正确性,不受导入顺序影响。
七、测试数据生成
开发测试时,需要大量唯一标识来填充数据库。UUID生成器可以一次性生成几百个UUID,直接复制粘贴到测试SQL中,比手动编写效率高几十倍。
八、防重提交Token
为了防止用户重复提交表单,可以在表单中埋入一个UUID作为Token。提交时校验Token是否已使用过,用后即销毁,确保表单只提交一次。这是一种简单有效的防重机制。
九、使用一页共享批量生成UUID
打开一页共享的UUID生成器,你可以选择生成1个、10个、100个甚至更多UUID。每个UUID都是标准的v4格式,支持一键复制全部结果。生成的UUID可以直接用于数据库插入、代码变量赋值、测试数据填充等场景。

