java深度模仿支付宝订单号/交易流水号(高性能,不重复) 您所在的位置:网站首页 支付宝订单号在哪里看支付宝订单号是多少 java深度模仿支付宝订单号/交易流水号(高性能,不重复)

java深度模仿支付宝订单号/交易流水号(高性能,不重复)

2024-06-03 10:08| 来源: 网络整理| 查看: 265

先看一下支付宝的订单号:2015082600001000040061749694

分析看来:

                前六位数(20150826)是年月日格式化:yyyyMMdd

                中间的8位数(00001000)是:00001000,固定4个0+1000

                在后两位(04):随机生成一个两位数

                在后两位(00):又是固定的两个0

                接下来的6位数是(617496):时分秒的格式化HHmmss

                最后两位是(94):又是随机生成

第一回合直接运行代码:CPU瞬间百分之百

然后优化下把年月日,时分秒分别提取出来,假设1秒钟跑1w次:

public static void main(String[] args) { String date = new SimpleDateFormat("yyyyMMdd").format(new Date()); String seconds = new SimpleDateFormat("HHmmss").format(new Date()); for (int i = 0; i < 10000; i++) { System.out.println(date+"00001000"+getTwo()+"00"+seconds+getTwo()); } } /** * 产生随机的2位数 * @return */ public static String getTwo(){ Random rad=new Random(); String result = rad.nextInt(100) +""; if(result.length()==1){ result = "0" + result; } return result; } 再次查看cpu掉了40%,基于目前还未做集群负载的情况下,60%是可以接受的,那么就先告一段落~~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有