本申请提供一种订单号的生成方法、装置、服务器及存储介质,该方案中,用于生成订单的服务器在接收到订单号获取请求之后,根据从数据库集群中获取到的作为订单号的头部的第一字符串和作为订单号中部的第二字符串,以及本次订单生成服务的步长生成该订单号,并将生成的订单号返回订单服务器。该第一字符串可根据固定规律进行增长,且第二字符串的是预先配置的长度固定字符序列,通过该方式生成的订单号长度可控,趋势有序,并且不涉及任何日期和地址等信息,安全度较高。安全度较高。安全度较高。
【技术实现步骤摘要】
订单号的生成方法、装置、服务器及存储介质
[0001]本申请涉及计算机
,尤其涉及一种订单号的生成方法、装置、服务器及存储介质。
技术介绍
[0002]随着电商的快速发展,用户通过各种电商平台进行购物已经成为比较常见的消费习惯,目前采用电商平台进行消费时,每个消费订单有具有一个独一无二的订单号,用于对用户的消费数据进行记录。
[0003]现有技术中,可以通过数据库自增长标识,时间戳+随机数(系统时间戳+随机数得到一个标识号码),通用唯一识别码(Universally Unique Identifier,UUID),Twitter雪花算法等方案进行标识号码的生成。具体的,UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。在生成号码过程中,服务平台会提供生成的接口,按照开放软件基金会(Open Software Foundation,OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片标识码和其他可能的数字从而得到一个标识号码。雪花算法是由Twitter开源的分布式ID生成算法,以划分命名空间的方式将64-bit位分割成多个部分,每个部分代表不同的含义。将64个bit划分为几个部分,每个部分分别表示符号,时间戳,机器数,自增序列从而组合成一个标识号码,这样的划分之后相当于在一毫秒一个数据中心的一台机器上可产生4096个有序的不重复的标识号码。但是,自增长标识的方案并发性较差,规律固定存在数据泄露的风险,时间戳+随机数的方式依赖服务器时间,如果用于生成订单号有重复的风险,UUID的方式涉及到很多重要的信息,且长度太长也不易存储,上述的获取订单号的方式得到的号码长度较长,并且无顺查询效率较低。雪花算法依赖于时间,容易发生时钟回拨则容易出现重复,乱序等问题,并且由于这种方式生成的号码太长,不适用订单场景。
[0004]综上所述,现有技术中还不存在长度可控,趋势有序并且安全度较高的订单号生成方案。
技术实现思路
[0005]本申请实施例提供一种订单号的生成方法、装置、服务器及存储介质,提供一种生成长度可控,趋势有序并且安全度较高的订单号的生成方案。
[0006]第一方面,本申请实施例提供一种订单号的生成方法,应用于生成订单号的服务器,所述方法包括:
[0007]接收订单服务器发送的订单号获取请求;
[0008]根据所述订单号获取请求,确定本次订单生成服务的步长,所述步长根据采用当前的第一字符串和第二字符串生成的订单号数量确定;其中,所述第一字符串和所述第二字符串分别为预先从数据库集群中获取的作为订单号的头部和中部的字符序列;
[0009]根据所述第一字符串和所述第二字符串,随机字符以及所述步长,生成订单号;
[0010]将所述订单号返回所述订单服务器。
[0011]在一种具体实施方式中,所述根据所述第一字符串和所述第二字符串,随机字符以及所述步长,生成订单号,包括:
[0012]对所述步长增加随机增量,得到第三字符串;所述随机增量为正整数;
[0013]根据预设的随机字符长度,生成所述随机字符;
[0014]按照所述第一字符串,所述第二字符串,所述随机字符以及所述第三字符串的顺序进行字符串组合,得到所述订单号。
[0015]在一种具体实施方式中,所述接收订单服务器发送的订单号获取请求之前,所述方法包括:
[0016]从所述数据库集群中获取所述第一字符串和所述第二字符串;所述数据库集群中存储多个作为订单号头部的字符串以及多个作为订单号中部的字符串,且每个可作为订单号头部的字符串对应多个可作为订单号中部的字符串。
[0017]在一种具体实施方式中,所述方法还包括:
[0018]若所述第二字符串加1大于预设的中部字符串阈值,则从所述数据库集群重新获取新的第一字符串和新的第二字符串。
[0019]在一种具体实施方式中,所述方法还包括:
[0020]若所述步长大于或者等于预先设置的最大步长,则从所述数据库集群重新获取新的第一字符串和新的第二字符串,并将所述服务器中的步长重置为0。
[0021]第二方面,本申请实施例提供一种订单号的生成方法,应用于生成订单号的服务器,所述方法包括:
[0022]接收订单服务器发送的订单号获取请求;
[0023]根据所述订单号获取请求,从订单号队列中获取订单号,其中,所述订单号队列中缓存有多个根据第一字符串,第二字符串以及步长生成的订单号,所述第一字符串和所述第二字符串分别为从数据库集群中获取的作为订单号的头部和中部的字符序列,所述步长根据采用同样的第一字符串和第二字符串生成的订单号的数量确定;
[0024]将所述订单号返回所述订单服务器。
[0025]在一种具体实施方式中,所述根据所述订单号获取请求,从订单号队列中获取订单号之前,所述方法还包括:
[0026]从所述数据库集群中获取第一字符串和第二字符串,所述数据库集群中存储多个作为订单号头部的字符串以及多个作为订单号中部的字符串,且每个可作为订单号头部的字符串对应多个可作为订单号中部的字符串;
[0027]根据所述第一字符串和所述第二字符串,随机字符以及步长,生成订单号:
[0028]将生成的订单号缓存在所述订单号队列中。
[0029]在一种具体实施方式中,所述根据所述第一字符串和所述第二字符串,随机字符以及步长,生成订单号,包括:
[0030]对所述步长增加随机增量,得到第三字符串;所述随机增量为正整数;
[0031]根据预设的随机字符长度,生成所述随机字符;
[0032]按照所述第一字符串,所述第二字符串,所述随机字符以及所述第三字符串的顺序进行字符串组合,得到所述订单号。
[0033]在一种具体实施方式中,所述方法还包括:
[0034]若所述第二字符串加1大于预设的中部字符串阈值,则从所述数据库集群重新获取新的第一字符串和新的第二字符串。
[0035]在一种具体实施方式中,所述方法还包括:
[0036]若所述步长大于或者等于预先设置的最大步长,则从所述数据库集群重新获取新的第一字符串和新的第二字符串,并将所述服务器中的步长重置为0。
[0037]第三方面,本申请实施例提供一种订单号的生成装置,包括:
[0038]接收模块,用于接收订单服务器发送的订单号获取请求;
[0039]处理模块,用于根据所述订单号获取请求,确定本次订单生成服务的步长,所述步长根据采用当前的第一字符串和第二字符串生成的订单号数量确定;其中,所述第一字符串和所述第二字符串分别为预先从数据库集群中获取的作为订单号的头部和中部的字符序列;
[0040]所述处理模块还用于根据所述第一字符串和所述第二字符串,随机字符以及所述步长,生成订单号;
[0041]发送模块,用于将所述订单号返回所述订单服务器。
[0042]第四方面,本申请实施例提供一种订单号的生成装本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种订单号的生成方法,其特征在于,应用于生成订单号的服务器,所述方法包括:接收订单服务器发送的订单号获取请求;根据所述订单号获取请求,确定本次订单生成服务的步长,所述步长根据采用当前的第一字符串和第二字符串生成的订单号数量确定;其中,所述第一字符串和所述第二字符串分别为预先从数据库集群中获取的作为订单号的头部和中部的字符序列;根据所述第一字符串和所述第二字符串,随机字符以及所述步长,生成订单号;将所述订单号返回所述订单服务器。2.根据权利要求1所述的方法,其特征在于,所述根据所述第一字符串和所述第二字符串,随机字符以及所述步长,生成订单号,包括:对所述步长增加随机增量,得到第三字符串;所述随机增量为正整数;根据预设的随机字符长度,生成所述随机字符;按照所述第一字符串,所述第二字符串,所述随机字符以及所述第三字符串的顺序进行字符串组合,得到所述订单号。3.根据权利要求1或2所述的方法,其特征在于,所述接收订单服务器发送的订单号获取请求之前,所述方法包括:从所述数据库集群中获取所述第一字符串和所述第二字符串;所述数据库集群中存储多个作为订单号头部的字符串以及多个作为订单号中部的字符串,且每个可作为订单号头部的字符串对应多个可作为订单号中部的字符串。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:若所述第二字符串加1大于预设的中部字符串阈值,则从所述数据库集群重新获取新的第一字符串和新的第二字符串。5.根据权利要求3所述的方法,其特征在于,所述方法还包括:若所述步长大于或者等于预先设置的最大步长,则从所述数据库集群重新获取新的第一字符串和新的第二字符串,并将所述服务器中的步长重置为0。6.一种订单号的生成方法,其特征在于,应用于生成订单号的服务器,所述方法包括:接收订单服务器发送的订单号获取请求;根据所述订单号获取请求,从订单号队列中获取订单号,其中,所述订单号队列中缓存有多个根据第一字符串,第二字符串以及步长生成的订单号,所述第一字符串和所述第二字符串分别为从数据库集群中获取的作为订单号的头部和中部的字符序列,所述步长根据采用同样的第一字符串和第二字符串生成的订单号的数量确定;将所述订单号返回所述订单服务器。7.根据权利要求6所述的方法,其特征在于,所述根据所述订单号获取请求,从订单号队列中获取订单号之前,所述方法还包括:从所述数据库集群中获取第一字符串和第二字符串,所述数据库集群中存储多个作为订单号头部的字符串以及多个作为订单号中部的字符串,且每个可作为订单...
【专利技术属性】
技术研发人员:石国栋,
申请(专利权)人:北京京东世纪贸易有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。