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


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

    一、要求:

    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 业务系统 ※※※※※
  • 相关阅读:
    Log4Net使用指南
    Log4net 写文件日志与数据库日志
    JSON-Schema 最科学的表单验证模式
    番茄时间工作法
    css 温故而知新 1px的问题
    $.ajax 温故而知新坑
    H5中滚动卡顿的问题
    横向思维
    Wd 西部数据
    使用AlloyLever来搞定开发调试发布,错误监控上报,用户问题定位
  • 原文地址:https://www.cnblogs.com/huacw/p/7087535.html
Copyright © 2020-2023  润新知