专栏名称: 芋道源码
纯 Java 源码分享公众号,目前有「Dubbo」「SpringCloud」「Java 并发」「RocketMQ」「Sharding-JDBC」「MyCAT」「Elastic-Job」「SkyWalking」「Spring」等等
今天看啥  ›  专栏  ›  芋道源码

如何设计一个全局唯一的订单号?

芋道源码  · 公众号  · Java  · 2024-11-04 09:30

主要观点总结

全局唯一ID生成方案的概述

关键观点总结

关键观点1: 数据库自增

利用数据库的自增主键属性生成唯一ID,适用于简单场景,但扩展性差,不适合分布式环境。

关键观点2: UUID

使用UUID作为唯一ID,生成简单,但不够有序,可能产生较长的ID,不利于索引和存储。

关键观点3: 雪花算法(Snowflake)

分布式环境下常用的唯一ID生成算法,能够生成有序且较短的唯一ID,但需要自行实现算法逻辑。

关键观点4: 号段模式

通过数据库批量获取ID号段,减少数据库访问次数,提高性能。适用于需要高并发生成ID的场景。

关键观点5: Redis生成ID

利用Redis的incrby命令实现ID的自增,简单高效,但需要注意并发问题。

关键观点6: ZooKeeper处理

利用ZooKeeper的顺序节点特性生成全局唯一ID,具有强一致性和高并发能力。

关键观点7: LEAF分布式ID生成系统

美团开源的分布式ID生成系统,支持号段模式和雪花算法,具有高性能和容灾性。


文章预览

👉 这是一个或许对你有用 的社群 🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入 「 芋道快速开发平台 」 知识星球。 下面是星球提供的部分资料:   《项目实战(视频)》 :从书中学,往事上 “练 ” 《互联网高频面试题》 :面朝简历学习,春暖花开 《架构 x 系统设计》 :摧枯拉朽,掌控面试高频场景题 《精进 Java 学习指南》 :系统学习,互联网主流技术栈 《必读 Java 源码专栏》 :知其然,知其所以然 👉 这是一个或许对你有用的开源项目 国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。 功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM 等等功能: Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览