OpenResty + PostgreSQL 实现分布式自增 ID API
当你的业务做到需要分布式部署,第一个卡住你的往往不是数据库性能,而是 ID 怎么保证全局唯一。
UUID 是个方案,但 UUID v4 无序,对 B+ 树索引不友好——插入性能随数据量增长急剧下降。UUID v7 有时序性,但 128 位太长,做 URL 路径参数不忍直视。雪花算法(Snowflake)依赖时钟,一旦时钟回拨就是灾难。
我最常用的方案:PostgreSQL 序列 + OpenResty 缓存。架构简单、代码可读、运维成本低,单机能扛住大部分中小业务的 QPS。这篇文章就是它的完整实现。