方案一:

如果没有并发,订单号只在一个线程内产生,那么由于程序是顺序执行的,不同订单的生成时间戳正常不同,因此用时间戳+随机数(或自增数)就可以区分各个订单。如果存在并发,且订单号是由一个进程中的多个线程产生的,那么只要把线程ID添加到序列号中就可以保证订单号唯一。如果存在并发,且订单号是由同一台主机中的多个进程产生的,那么只要把进程ID添加到序列号中就可以保证订单号唯一。如果存在并发,且订单号是由不同台主机产生的,那么MAC地址、IP地址或CPU序列号等能够区分主机的号码添加到序列号中就可以保证订单号唯一。

方案二:

时间戳+用户ID+几个随机数+乐观锁。

方案三:

用redis的原子递增,做好高可用集群。

方案四(非纯数字):

java自带uuid。

事例代码

java获取线程ID

Thread.currentThread().getId()

java获取进程ID

// get name representing the running Java virtual machine.

String name = ManagementFactory.getRuntimeMXBean().getName();

System.out.println(name);

java获取mac地址

InetAddress ia = InetAddress.getLocalHost();

byte[] mac = NetworkInterface.getByInetAddress(i

总结

以上所述是小编给大家介绍的java web在高并发和www.cppcns.com分布式下实aXftln现订单号生成唯一的解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

本文标题: java web在高并发和分布式下实现订单号生成唯一的解决方案

本文地址: http://www.cppcns.com/ruanjian/java/212110.html

java唯一订单号_java web在高并发和分布式下实现订单号生成唯一的解决方案相关推荐

  1. java调优 视频_Java优化高性能高并发+高并发程序设计视频教程

    转自:https://www.cnblogs.com/ajianku/p/10236573.html 第1章 课程介绍及项目框架搭建 1-1 Java高并发商城秒杀优化导学 1-2 项目环境搭建(Ec ...

  2. java接口并发衡量_java 后端设计高并发接口总结

    如何设置高并发接口 一.并发队列的选择 二.请求接口的合理设计 三.高并发下的数据安全 3.1 超发的原因 3.2 悲观锁思路 3.3 FIFO队列思路 3.4 乐观锁思路 一.并发队列的选择 Jav ...

  3. Web大规模高并发请求和抢购的解决方案

    电商的秒杀和抢购,对我们来说,都不是一个陌生的东西.然而,从技术的角度来说,这对于Web系统是一个巨大的考验.当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要.这次我们 ...

  4. Java、Go、Rust大比拼,高并发时代谁能称雄?

    作者 | 马超 出品 | CSDN(ID:CSDNnews) 互联网时代流量的大起大落,很多科技巨头在面对流量的冲击时也都败下阵来,XXX崩了的新闻热搜不断,而Serverless凭借快速伸缩的自动弹 ...

  5. 一个WEB网站高并发量的解决方案

    一个WEB网站高并发量的解决方案 参考文章: (1)一个WEB网站高并发量的解决方案 (2)https://www.cnblogs.com/dotnetHui/p/7943605.html 备忘一下.

  6. 在高并发的情况下,利用redis来处理库存超卖和遗留问题

    在高并发的情况下,利用redis来处理库存超卖和遗留问题 首先现在redis中放上商品的库存数量为100间商品,在初始化一个set集合用于放秒杀成功的用户id,本用例先放进去一个id=10000的用户 ...

  7. java如何解决高并发问题_java怎么处理高并发?

    java处理高并发的方法:1.优化代码,减少不必要的资源浪费:2.把图片与页面进行分离,将图片放到独立的图片服器:3.使用缓存,可以大量减少与数据库的交互,提高性能:4.使用数据库集群:5.进行DB优 ...

  8. Java实现库存防超卖_高并发场景-订单库存防止超卖

    背景 在电商系统中买商品过程,先加入购物车,然后选中商品,点击结算,即会进入待支付状态,后续支付. 过程需要检验库存是否足够,保证库存不被超卖. 场景一:买家需要购买数量可以多件 场景二:秒杀活动,到 ...

  9. Java高并发、分布式框架,从无到有微服务架构设计

    微服务架构模式(Microservice Architect Pattern).近两年在服务的疯狂增长与云计算技术的进步,让微服务架构受到重点关注 微服务架构是一种架构模式,它提倡将单一应用程序划分成 ...

最新文章

  1. 蓝桥杯:算法训练之最大最小公倍数
  2. yii mysql语法_yii2 + mysql 常用增删改查操作语法以及事务
  3. 《信息检索》第8讲 毕业论文学习指导(资源及预习材料)
  4. UNIX网络编程——解决TCP网络传输“粘包”问题
  5. 【树莓派学习笔记】三、点亮一个LED灯(C语言 - WiringPi、Python - RPi.GPIO/GPIO Zero、bash脚本)
  6. 建立在线社区:Numenta
  7. 如何获取InnoDB树的高度
  8. 解决window资源管理器打开无法删除文件
  9. linux 路由表(转)
  10. 文件管理器 Root Explorer v2.9.4 零售完全版
  11. matlab 默认颜色顺序,MATLAB:设置行的颜色和样式顺序并行应用
  12. 告诉你为什么数据要取对数
  13. 《计算机网络:自顶向下方法(原书第七版)》 参考答案(英文版+中文版)
  14. Anaconda Navigator启动缓慢
  15. 4-3. 统计素数并求和(20)
  16. 2020年全国软件业务收入将破8万亿元
  17. Mac下如何用SSH连接远程Linux服务器
  18. MySQL RANGE分区
  19. Stanford cs231n'18 课程及作业详细解读
  20. Adobe安装程序无法访问关键文件/目录,请尝试重新安装。(错误代码:41) 解决方法

热门文章

  1. 零基础可以学云计算运维吗?怎样从才可以学好?
  2. Jetson nano 入手系列之4—外围设备:开机键+PWM风扇
  3. 在共享经济时代,逸管家集团引领中小企业走向辉煌
  4. MATLAB解桁架,matlab中关于桁架问题的程序
  5. rhino/grasshopper曲线偏移出现扭转
  6. 数据可视化分析案例:探索BRFSS电话调查数据
  7. cas服务器作用,CAS服务器搭建
  8. 使用宏常量定义PI求圆周长和面积
  9. 【19】数据可视化+爬虫:基于 Echarts + Python 实现的动态实时大屏范例 - bilibili排行榜
  10. 【数据库系统】数据库系统学习与实践系列文章汇总目录(持续更新中)