`
huangyongxing310
  • 浏览: 491910 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

分布式ID生成规则和代码实现

 
阅读更多
分布式ID生成规则和代码实现

64位最大为20位数,取到19位,可以全为9

时间戳到毫秒级13位9可以到2250年了

最后4位放用户ID后4位,方便路由到同一个库中(可容纳10000个库了)

还有2位是毫秒的序列号,这样生成ID最大可以每毫秒生成100个,但可以多次申请后缓存起来
(其实最多可以取到180),但一般取到150都可以应付每秒15W个ID了,

订单ID
//如果是LONG型的,就用13位时间戮加6位用户ID的后6位

//如果是STRING,可用20180909121325+用户ID后4位+卖家ID后4位+商品ID后3位(方便分库和分表路由到同一个库中,保持事务的一致性,按按月分库分表出满足)

其他生成速度要求不快的ID可以定义规则可以使用数库保存流水号的方式进行生成



用户ID可以使用流水号生成
商品ID可以是时间戮加6位用户ID组成
订单ID可以是时间戮加10位商品ID组成
分享到:
评论

相关推荐

    java 分布式 代码生成器 唯一ID

    在Java分布式环境中,生成唯一的ID(唯一标识符)是一个至关重要的任务,特别是在高并发和大数据量的场景下。...通过学习和理解这些代码,我们可以更好地掌握在Java环境中如何设计和实现一个高效的分布式ID生成系统。

    分布式ID组件1

    在本文中,我们将介绍Leaf-snowflake模式和Leaf-segment模式这两种分布式ID生成方式,并讨论它们的特点、应用场景和使用方法。 Leaf-snowflake模式 Leaf-snowflake模式是一种基于Zookeeper的分布式ID生成方式。它...

    美团点评分布式id项目 Leaf jar包依赖

    例如,可以为订单、用户等不同业务场景定制ID生成规则。 3. **动态配置**: Leaf允许动态地调整配置,如机器ID、序列号范围等,以适应业务的变化和扩展。 4. **高性能与低延迟**: Leaf通过优化算法和减少网络通信,...

    最常用的分布式ID解决方案.docx

    号段模式是一种常见的分布式ID生成方式,它依赖于数据库但与数据库主键自增有所不同。在这种模式下,预先从数据库中批量获取一定数量的连续数字作为ID号段,比如每次获取100个连续的数字。当需要新的ID时,从当前...

    规则序号生成

    在具体项目中,选择合适的方法和工具生成规则序号能够极大地提高效率,保证数据的准确性和可追踪性。而理解不同生成策略的优缺点,以及它们在不同场景下的适用性,是每个IT专业人员应该掌握的基本技能。对于压缩包中...

    Android-给集群环境下生产一定命名规范下的id如订单号等

    为了实现这个功能,开发者可能需要创建一个自定义的ID生成器类,该类可以调用 Snowflake 算法或者其他分布式ID生成策略,并结合业务规则来构造最终的订单号。同时,为了适应多线程和并发场景,生成器类需要处理好...

    基于webmagic框架实现的文娱类分布式爬虫.zip

    4. **分布式策略**:使用分布式ID生成器(如Snowflake)为每个URL生成唯一标识,避免不同节点间冲突。 5. **结果合并**:设计Pipeline处理各节点爬取的结果,确保数据的一致性和完整性。 【四、具体实现步骤】 1. ...

    Tracer在分布式系统中的调用跟踪和日志相关

    Tracer的工作原理通常是通过在分布式系统中的每个微服务节点上插入代码来记录和传播上下文信息。这些信息包括但不限于请求ID、调用链路、时间戳以及各种自定义元数据。当一个请求进入系统时,Tracer会生成一个唯一的...

    阿里云分布式应用服务EDAS-API参考手册-D.docx

    成功响应返回JSON格式数据,包括RequestId,而失败响应会提供错误代码和信息,同时包含RequestId和HostId,便于问题排查。 【错误代码表】提供了详细的错误代码和原因,当调用接口出错时,可以根据错误代码定位问题...

    Android-生成带校验码的卡号

    总之,Android中的ID生成不仅仅是简单的数字组合,它涉及到数据校验、唯一性保证、安全加密和性能优化等多个方面。理解和掌握这些技术,对于Android开发者来说至关重要,尤其是在处理用户敏感信息的场景下。通过学习...

    课程实验基于Java实现的分布式存储系统源码+项目说明.tar

    * 自定义文件元数据存储格式,自定义文件名生成规则保证文件在同一个时段内的**唯一性**,并基于该特性实现**断点续传** * 使用 **ReenTrantReadWriteLock** 降低同一文件读写冲突,提高文件IO并发度 ### 模块...

    java 生成有序账号的实现方法

    此外,如果账号生成需求更为复杂,比如需要考虑并发安全或者分布式环境,我们可以考虑使用原子操作(如`AtomicInteger`)或者分布式ID生成器(如Snowflake算法或UUID)来保证账号的唯一性和顺序性。 总结一下,Java...

    Python库 | aiosnow-0.5.1.tar.gz

    Snowflake ID是一种分布式ID生成算法,由Twitter开源,能够生成全局唯一的64位整数ID,具有时间戳、工作节点ID和序列号等信息,有效解决了大规模分布式系统中的唯一标识问题。而`aiosnow`库则是Python异步版本的实现...

    分布式数据库DRDS.pdf

    统一事务处理**:通过DRDS,业务端无需编写复杂的多数据库间的事务处理代码,而是通过DRDS提供的接口来实现跨多个数据库的事务一致性操作,简化了业务系统的开发和维护工作。 **4. 数据导入与管理**:DRDS支持从多...

    txlcn-tm-nacos.rar

    TM作为全局事务管理者,会为每个分布式事务生成一个全局事务ID(GID),并监控事务的生命周期。当一个分布式事务开始时,TM会通知所有涉及到的事务参与者(如数据库、消息队列等),并管理它们的局部事务状态。在...

    CAN协议控制器的Verilog实现_verilogCAN_verilogcan_CAN协议控制器实现_支持CAN2.0B协议_

    在这个项目中,Verilog被用来设计和实现CAN协议控制器,它负责解析和生成CAN总线上的信号,包括仲裁、数据传输、错误处理等。 3. **文件结构**: - `can_bsp.v`:可能代表基础支撑模块,包含CAN控制器的基础功能和...

    .net实现新增数据时编号自动加一

    5. **分布式环境下的编号生成**:在分布式系统中,可以采用全局唯一ID生成服务,如Twitter的Snowflake算法或百度的UidGenerator,它们能保证在分布式环境下的编号全局唯一且有序。 6. **缓存机制**:为了提高性能,...

    apriori算法的java代码

    4. **Apriori类**:作为算法的核心,包含初始化、挖掘频繁项集和生成关联规则的方法。 在代码实现过程中,你可以使用数据结构如`HashSet`来存储项集,`HashMap`来存储支持度计数,以提高查找和更新效率。同时,为了...

    web项目里用到的工具类(正则校验、图片验证码、json解析、订单号生成)

    - **分布式ID生成器**:如Twitter的Snowflake算法,或者美团的Leaf服务,能生成全局唯一的ID,适用于大规模分布式系统。 以上工具类的实现,通常会封装成独立的Java类或者JavaScript模块,供项目其他部分复用,以...

Global site tag (gtag.js) - Google Analytics