分布式ID生成方案--号段模式

论坛 期权论坛 脚本     
匿名技术用户   2021-1-10 11:16   293   0

一、需求背景

分布式架构下,唯一序列号生成是我们在设计一个系统需要重点关注的问题,有些小的应用系统直接UUID,虽然也能解决唯一标识问题,但是此序列号并没有规律可寻,特别是在多业务场景下,比如支付系统,不同的业务无法根据UUID直观的看出是什么业务类型,也不能看出发生业务时间以及增值等信息。

二、解决方案-号段模式

网上有各种实现方式博客,浏览很多,多数都是浮于表面的互抄,有些解决方案是借助其他组件工具,如redis、zookeeper等,当然借助一些组件实现更简单,然而并不能只是为了生成序列号引入这些组件工具,本文笔者将把自己参与开发支付系统使用的唯一序列号生成方案展现出来---号段模式,此模式网上也有大量博客在写到了大概实现思想,但是也都是笼统,具体实现细节还有很多需要考虑的地方。大概实现思路就是每个服务在启动时去特定表拿取自己预配置的数据段,比如第一台服务启动在DB中拿取1-1000这批数据段存在本地服务缓存,第二台服务启动时在DB中拿取1001-2000这批数据段存在本地服务缓存,依次类推,当本地缓存数据段使用完后再去DB取数据段,此方案已经完全可以支撑中小型系统,Show me the code, talk is cheap!>>>>代码地址

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP