• 电商交易系统高并发分布式订单号生成策略


    商交易系统高并发分布式订单号生成策略

    一、要求:

    1.全局唯一性,不能重复

    2.信息安全加密防止用户根据id规则获取数据

    3.数据递增,保证下一个id一定大于上一个id

    二,策略

    1.UUID  唯一识别码,16个字节 (128位)

      组成部分:当前日期+时间+时钟的序列+mac地址 

      uuid 有几个实现版本,比如jdk 自带的uuid

    优点:生成简单,不占用宽带,本地生成,数据迁移不影响。

    缺点:字母存储,无序,无法保证趋势递增,查询慢,不可读

    2.snowflake(雪花twitter开源 分布式id算法)

    41字节毫秒+10字节的机器id+10版本号,国内有很多平台有将其实现和优化

    优点:本地生成,不占宽带,毫秒在高位,低位是趋势递增。

    缺点:依赖时钟 如果时间回拨可能会重复,效率比uuid慢

    3. 数据库

    优点:代码实现简单,性能ok,数字排序,可读性强

    缺点:受限于数据库,单点故障,扩容麻烦,需要插入后才能获取id增加查询数据库主从延迟master才能查到

    4.redis 集群

    格式:12位=年2位+当年第几天3+小时2+自增5

    优点:不依赖数据库,灵活,没有单点故障,性能优于数据库

    缺点:网络资源,需要增加额外服务插件

    总结:

    uuid Token  ,图片id等 ※※
    snowflake Elk,mq,业务系统 ※※※※
    数据库 并发不大,业务增长不快 ※※※
    redis 业务系统 ※※※※※
  • 相关阅读:
    BZOJ3562 : [SHOI2014]神奇化合物
    BZOJ3559 : [Ctsc2014]图的分割
    BZOJ3551 : [ONTAK2010]Peaks加强版
    BZOJ3542:DZY Loves March
    李洪强iOS开发之
    iOS学习之iOS沙盒(sandbox)机制和文件操作1
    iOS学习之iOS沙盒(sandbox)机制和文件操作
    stringByAppendingPathComponent和stringByAppendingString 的区别
    iOS开发:Toast for iPhone
    深度解析开发项目之 01
  • 原文地址:https://www.cnblogs.com/huacw/p/7087535.html
Copyright © 2020-2023  润新知