CN111353772A - 单号的生成方法和装置、存储介质、电子装置 - Google Patents

单号的生成方法和装置、存储介质、电子装置 Download PDF

Info

Publication number
CN111353772A
CN111353772A CN202010113386.2A CN202010113386A CN111353772A CN 111353772 A CN111353772 A CN 111353772A CN 202010113386 A CN202010113386 A CN 202010113386A CN 111353772 A CN111353772 A CN 111353772A
Authority
CN
China
Prior art keywords
identifier
sequence segment
single number
target
preset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010113386.2A
Other languages
English (en)
Other versions
CN111353772B (zh
Inventor
肖雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chinabank Payments Beijing Technology Co Ltd
Original Assignee
Chinabank Payments Beijing Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chinabank Payments Beijing Technology Co Ltd filed Critical Chinabank Payments Beijing Technology Co Ltd
Priority to CN202010113386.2A priority Critical patent/CN111353772B/zh
Publication of CN111353772A publication Critical patent/CN111353772A/zh
Application granted granted Critical
Publication of CN111353772B publication Critical patent/CN111353772B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/108Remote banking, e.g. home banking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2291User-Defined Types; Storage management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/385Payment protocols; Details thereof using an alias or single-use codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Technology Law (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种单号的生成方法和装置、存储介质、电子装置。其中,该方法包括:接收到单号请求,其中,所述单号请求用于请求生成单号;从目标标识序列段中查找未被使用过的第一标识,其中,所述目标标识序列段是从预设标识序列中选取的一个序列段;响应于所述单号请求,返回根据查找到的所述第一标识生成的单号。本申请解决了相关技术中心的单号存在安全隐患的技术问题。

Description

单号的生成方法和装置、存储介质、电子装置
技术领域
本申请涉及互联网领域,具体而言,涉及一种单号的生成方法和装置、存储介质、电子装置。
背景技术
随着银行的业务发展、互联网技术的发展、社会消费的不断升级以及业务的复杂程度越来越高,依赖传统线下的交易方式已经无法满足现在的需求。同时,也随着银行、公司业务与互联网之间的融合不断提高,基于互联网的交易已经逐渐成为主流。
在交易过程中,需要生成各种单号(如银行订单号、交易流水号等),为了确保单号全局唯一,当前生成单号有两种常见的方法:一种方法是在关系型数据库(如Mysql数据库)中存储已使用的单号,通过从关系型数据库中读取已生成的单号并采用自增序列方式来生成新的单据号,或者依赖于redis的自增算法来实现,例如,当前数据库中记录的被使用到的单号是00001,当发生新的查询时,00002被作为新的单号,相当于数据库中记录的最新被使用的单号更新至00002。
在实现本发明的过程中,发明人发现依赖数据库自增序列和redis的自增函数,存在一个共性的问题,生成的单号是从0开始自增有序的,这样竞争对手可以通过早晚各下一单交易,来推断出一天的业务单量,也存在变向信息泄露的风险。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种单号的生成方法和装置、存储介质、电子装置,以至少解决相关技术中心的单号存在安全隐患的技术问题。
根据本申请实施例的一个方面,提供了一种单号的生成方法,包括:接收到单号请求,其中,所述单号请求用于请求生成单号;从目标标识序列段中查找未被使用过的第一标识,其中,所述目标标识序列段是从预设标识序列中选取的一个序列段;响应于所述单号请求,返回根据查找到的所述第一标识生成的单号。
根据本申请实施例的另一方面,还提供了一种单号的生成装置,包括:接收单元,用于接收到单号请求,其中,所述单号请求用于请求生成单号;查找单元,用于从目标标识序列段中查找未被使用过的第一标识,其中,所述目标标识序列段是从预设标识序列中选取的一个序列段;返回单元,用于响应于所述单号请求,返回根据查找到的所述第一标识生成的单号。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
在本申请实施例中,利用本地设备生成单号,即使在本地设备发生故障时也不会影响其他服务器的运行,另外,由于不需要与远程数据库进行交互,提高并发处理能力的同时也降低了时延,且由于不可能每次使用的标识序列段都相同,进而能够根据下单的单号来推断订单总量,可以解决相关技术中心的单号存在安全隐患的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的单号的生成方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的单号的生成方法的流程图;
图3是根据本申请实施例的一种可选的单号的生成装置的示意图;
以及
图4是根据本申请实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
Redis(全称:Remote Dictionary Server远程字典服务)是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
MySQL:是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address),MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。
相关技术中的单号生成方案存在如下缺陷:
1)存在核心单点瓶颈,单号生成过程往往存在核心单点服务瓶颈,如数据库、缓存等,由于每次生成单号都需要本地服务器与数据库、缓存等交互,故障时往往会造成单号生成服务全局不可用,故障影响比较大;另外,数据存储中间件也存在瓶颈,以mysql数据库为例,单数据库服务器数据库链接数的瓶颈在几千左右,关闭数据库半同步的情况下,能够最多将数据库链接数增大2-3倍左右,并且不可能无限扩大,如果应用在强依赖于数据库的情况下,应用的并发处理能力就会受限于数据库的处理能力,使得数据库的瓶颈成为了应用的处理瓶颈,依赖缓存生成也同样存在类似的情况。
2)单号有序,依赖数据库自增序列和redis的自增函数,都有一个共性的问题,生成的单号是有序的,这样竞争对手可以通过早晚各下一单交易,来推断出一天的业务单量,也存在变向信息泄露的风险。
3)耗时较长,如果将单号服务作为一个公共服务供业务系统来调用,需要一次RPC操作,这样会有至少2毫秒以上的耗时,如果各个业务系统连接自己的业务库来生成的话,将与业务公用一个数据库并发连接数,这样也会影响业务系统的数据库并发量。
为了克服以上问题,根据本申请实施例的一方面,提供了一种单号的生成方法的方法实施例。
可选地,在本实施例中,上述单号的生成方法可以应用于如图1所示的由终端101和本地设备103(可以为本地服务器)所构成的硬件环境中。如图1所示,本地设备103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如订单生成服务等),可在服务器上或独立于服务器设置数据库105,用于为本地设备103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC、手机、平板电脑等。
本申请实施例的单号的生成方法可以由本地设备103来执行,也可以由本地设备103和终端101共同执行。图2是根据本申请实施例的一种可选的单号的生成方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,本地设备接收到单号请求,单号请求用于请求生成单号。
例如,在终端发起一笔购买交易或者取消一笔交易时,会在本地设备上触发上述单号请求,以生成用于唯一标识购买交易或者交易取消的单号上述本地设备是指与终端位于相同网络(如相同的局域网)的设备,具体可以是本地服务器、本地计算机等。
步骤S204,本地设备从目标标识序列段中查找未被使用过的第一标识,目标标识序列段是从预设标识序列中选取的一个序列段。
上述第一标识可以是从目标标识序列段中顺序取出的,也可以随机取出的未被使用过的标识。
步骤S206,响应于单号请求,本地设备返回根据查找到的第一标识生成的单号。
所生成的单号是基于第一标识生成的,换言之,该单号可以仅仅包括第一标识,也可以包括除第一标识以外的其他信息。
在本申请的技术方案中,对于位于任意局域网的终端,在终端需要获取单号(如交易单号)时生成上述单号请求,并发送给所在局域网的服务器(即本地设备),服务器从所分配的目标标识序列段为其选取一个标识,利用该标识生成终端所需的单号,在该方案中,终端仅需与本地的服务器交互,而不需要像相关方案那样依赖于远程数据库来生成单号,由于每个局域网的服务器仅为本地的终端提供单号生成服务,即使在一个服务器发生故障时也仅仅只会影响本地的单号生成服务,不会像相关技术中远程数据库发生故障那样造成大面积的服务故障。
通过上述步骤,利用本地设备生成单号,即使在本地设备发生故障时也不会影响其他服务器的运行,另外,由于不需要与远程数据库进行交互,提高并发处理能力的同时也降低了时延,且由于不可能每次使用的标识序列段都相同,进而能够根据下单的单号来推断订单总量,可以解决相关技术中心的单号存在安全隐患的技术问题。
在本申请的技术方案中,不采用分布式应用,而采用本地单机实例,相当于把分布式的复杂算法降维为单机本地运算,从而实现高可应用的单号生成器,其主要特点包括:去掉单点服务,去中心化的单号生成策略,故障出现影响范围可控,甚至没有影响;单号无序化,整体无序的生成策略,让竞争对手无规律可寻,提升外露数据的安全性;本地化,完全本地化生成,减少一次RPC调用,属于纳秒级的单号生成方案,性能提升至少上百倍于分布式应用;突破吞吐量、并发量瓶颈,采用去中心化,采用本地化的方案后,不再有瓶颈,在长度允许的情况下可以无限扩容,19位的单号,最多支持1亿的TPS。下面结合图2所示的步骤进一步详述本申请的技术方案。
在步骤S202提供的技术方案中,接收到单号请求。
可选地,在接收到单号请求之前,可在本地设备上运行用于生成单号的实例;以便于在从目标标识序列段中查找未被使用过的第一标识之后,通过实例,利用本地设备的设备信息和第一标识生成单号。
例如,一个业务应用可以具有多个实例,在业务的实例上线部署的时候,到统一的实例注册中心去获取实例的唯一标识ID,如果获取失败,当前实例启动失败,不对外提供服务,这样不会对线上业务产生任何影响。每个实例都会获取到一个应用内的唯一ID,这个ID的长度可以按照当前应用需要的实例个数来定义。
在步骤S204提供的技术方案中,从目标标识序列段中查找未被使用过的第一标识。
可选地,在从目标标识序列段中查找未被使用过的第一标识之前,在第一时间周期结束的情况下,按照预设方式(可以为随机算法)从预设标识序列中选取第三标识,并将目标标识的值从第四标识切换为第三标识,其中,第四标识为第一时间周期内目标标识的取值,任意两次按照预设方式选取的标识允许不同;在第二时间周期内,按照第三标识将预设标识序列划分为第一标识序列段和第二标识序列段,例如预设标识序列为0至9999,被目标标识6657分成了第一标识序列段6657至9999和第二标识序列段0至6656。
可选地,从目标标识序列段中查找未被使用过的第一标识包括:获取前一次被使用的第二标识;在第二标识是第一标识序列段中的预设类型的标识情况下,从第一标识序列段中获取第一标识,目标标识序列段包括第一标识序列段,第一标识序列段以目标标识为起始标识、以预设标识序列的最后一个标识为结束标识,目标标识为预设标识序列中的一个标识,预设类型的标识是第一标识序列段中位于最后结束标识之前的标识;在第二标识不是第一标识序列段中的预设类型的标识情况下,从第二标识序列段中获取第一标识,目标标识序列段包括第二标识序列段,第二标识序列段以预设标识序列的第一个标识为起始标识、以目标标识的前一个标识为结束标识。
在上述实施例中,从第一标识序列段中获取第一标识包括:从第一标识序列段中获取第二标识的下一个标识为第一标识,继续以上述第一标识序列段6657至9999、第二标识序列段0至6656为例,如第二标识为8000,那么第一标识就是8001。
在上述实施例中,在第二标识不是第一标识序列段中的预设类型的标识情况下,从第二标识序列段中获取第一标识包括:在第二标识是第一标识序列段中的结束标识情况下,从第二标识序列段中获取起始标识为第一标识,例如第二标识为9999,那么第一标识就是0;在第二标识是第二标识序列段中的标识情况下,从第二标识序列段中获取第二标识的下一个标识为第一标识,例如第二标识为1233,那么第一标识就是1234。
在上述实施例中,在利用本地设备的设备信息和第一标识生成单号时,可获取本地设备的设备物理地址、实例在本地设备的部署位置信息;将实例的实例标识、本地设备的设备物理地址、实例在本地设备的部署位置信息、生成时间以及第一标识拼接成单号。
在步骤S206提供的技术方案中,响应于单号请求,返回根据查找到的第一标识生成的单号。
作为一种可选的实施例,下面结合具体的实施方式进一步详述本申请的技术方案。
在单号生成的过程中,为了不依赖于外部第三方组件,并且将分布式的复杂算法降维为单机本地运算,从而实现高可应用的单号生成器。
采用分布式复杂算法降维为单机本地运算方案:
每台机器都有全球唯一的mac地址,并且应用部署的磁盘位置在当前机器下也是唯一的地址路径;这样“mac地址+应用部署路径”就能唯一的确定一个实例;另外,再加上这个实例部署的是什么应用的应用标识,这样,“应用标记+mac地址+应用部署路径”,就能唯一的标记一个应用下的一个唯一的部署实例单元。
按照上面说的,就可以在实例第一次上线部署的时候,启动的过程中到统一的实例注册中心去获取实例的唯一ID,如果获取失败,当前实例启动失败,不对外提供服务,这样不会对线上业务产生任何影响。这样,每个实例都会获取到一个应用内的唯一ID,这个ID的长度,可以按照当前应用需要的实例个数来定义,比如A应用需要几十台机器即可,那就可以设置为2位;这样生成的ID就是两位的,如:00、01、02。
单号生成策略:
示例性地,应用的每个部署梳理都获取到了一个唯一的ID,将这个ID拼接到单号中去,即可实现必然不同的每个实例生成的单号,即做到将分布式多实例降维到单实例算法。
单机下为了生成的单号唯一,又不依赖外部组件的话,将当前时间(例如到秒级)放到单号的前10位(如果是全日期格式就是14位),这样单号的生成就变成单实例下的秒级的唯一了。剩下的就是依赖JAVA中的线程安全组件来自增生成了;为了更加模糊化生成规律,这个自增序列的起始位置是每秒随机获取的;然后在这一秒内,通过这随机获取到的值再自增,如自增序列为4位长度,随机获取的开始点为0789,那这一秒内序列就是0789->9999->0000->0788。其中,一秒内自动到对应序列的最大值时(如上边的9999),自动转到0000再自增使用;如果业务设置的这个自增序列的长度不够,即并发量大于XXXXX(如10000),出现又到0789单号时,会抛出异常,此时需要例如扩容或增加这个单号序列的位数。
另外,为了解决重启前后单号重复的可能,实例重启时,至少会等1秒对外提供服务,从而保证服务重启前后同一个实例内的单号不重复。
长度允许的情况下TPS无瓶颈:上文中说的自增序列是支持TPS的关键,如上边说的4位,那单机支持的tps就是1万,5位就是10万,加一位就支持10倍的TPS。
一种可选的单号生成样例如表1所示:
表1
时间(10/14位) 实例号 循环序列
20190823101000 01 6666
时间可以采用10位或者14位,10位时间标识从1970年以来的秒数值;14位的时间格式:yyyy(年)+MM(月份)+dd(日期)+HH(时)+mm(分)+ss(秒)。
循环序列:每个实例每秒随机获取循环序列起始位,然后按照起始位->9999->(起始位-1)进行使用,每秒都会随机计算一次起始位。单号还可以添加一些其他的含义位。如:两位的业务位,01:消费,02:退款。业务路由标记位,业务数据可能存在了分库分表的数据库中,也可以将分库分表标记位存到单号中。这些业务标记为,都不影响单号的唯一性,因为上边的单号生成策略已经保证单号的唯一性了。
采用本申请的技术方案,通过将分布式应用降维到本地,从而避免外部服务导致的故障。本地化高可用的单号生成策略,百台机器(机器可以是服务器、刀片机、PC机等计算机设备)的应用集群,以20位的单号长度,10位的时间,3位的实例号为例,即为7位的循环序列,即单机支持1000万的tps,整个集群支持100亿的tps,且tps随机器单号位数即机器数量增多而增加;整个单号生成时耗小于1毫秒。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述单号的生成方法的单号的生成装置。图3是根据本申请实施例的一种可选的单号的生成装置的示意图,如图3所示,该装置可以包括:
接收单元301,用于接收到单号请求,其中,所述单号请求用于请求生成单号;
查找单元303,用于从目标标识序列段中查找未被使用过的第一标识,其中,所述目标标识序列段是从预设标识序列中选取的一个序列段;
返回单元305,用于响应于所述单号请求,返回根据查找到的所述第一标识生成的单号。
需要说明的是,该实施例中的接收单元301可以用于执行本申请实施例中的步骤S202,该实施例中的查找单元303可以用于执行本申请实施例中的步骤S204,该实施例中的返回单元305可以用于执行本申请实施例中的步骤S206。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,利用本地设备生成单号,即使在本地设备发生故障时也不会影响其他服务器的运行,另外,由于不需要与远程数据库进行交互,提高并发处理能力的同时也降低了时延,且由于不可能每次使用的标识序列段都相同,进而能够根据下单的单号来推断订单总量,可以解决相关技术中心的单号存在安全隐患的技术问题。
可选地,查找单元还可用于:获取前一次被使用的第二标识;在所述第二标识是第一标识序列段中的预设类型的标识情况下,从所述第一标识序列段中获取所述第一标识,其中,所述目标标识序列段包括所述第一标识序列段,所述第一标识序列段以目标标识为起始标识、以所述预设标识序列的最后一个标识为结束标识,所述目标标识为所述预设标识序列中的一个标识,所述预设类型的标识是所述第一标识序列段中位于最后结束标识之前的标识;在所述第二标识不是所述第一标识序列段中的预设类型的标识情况下,从第二标识序列段中获取所述第一标识,其中,所述目标标识序列段包括所述第二标识序列段,所述第二标识序列段以所述预设标识序列的第一个标识为起始标识、以所述目标标识的前一个标识为结束标识。
可选地,查找单元还可用于:在所述第二标识是所述第一标识序列段中的结束标识情况下,从所述第二标识序列段中获取起始标识为所述第一标识;在所述第二标识是所述第二标识序列段中的标识情况下,从所述第二标识序列段中获取所述第二标识的下一个标识为所述第一标识。
可选地,查找单元还可用于:从所述第一标识序列段中获取所述第二标识的下一个标识为所述第一标识。
可选地,本申请的装置还可包括:随机单元,用于在从目标标识序列段中查找未被使用过的第一标识之前,在第一时间周期结束的情况下,按照预设方式从所述预设标识序列中选取第三标识,并将目标标识的值从第四标识切换为所述第三标识,其中,所述第四标识为所述第一时间周期内所述目标标识的取值,任意两次按照所述预设方式选取的标识允许不同;在第二时间周期内,按照所述第三标识将所述预设标识序列划分为第一标识序列段和第二标识序列段。
可选地,本申请的装置还可包括:运行单元,用于在接收到单号请求之前,在本地设备上运行用于生成单号的实例;生成单元,用于在从目标标识序列段中查找未被使用过的第一标识之后,通过所述实例,利用所述本地设备的设备信息和所述第一标识生成所述单号。
可选地,上述生成单元还可用于:获取所述本地设备的设备物理地址、所述实例在所述本地设备的部署位置信息;将所述实例的实例标识、所述本地设备的设备物理地址、所述实例在所述本地设备的部署位置信息、生成时间以及所述第一标识拼接成所述单号。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的另一个方面,还提供了一种用于实施上述单号的生成方法的服务器或终端。
图4是根据本申请实施例的一种终端的结构框图,如图4所示,该终端可以包括:一个或多个(图4中仅示出一个)处理器401、存储器403、以及传输装置405,如图4所示,该终端还可以包括输入输出设备407。
其中,存储器403可用于存储软件程序以及模块,如本申请实施例中的单号的生成方法和装置对应的程序指令/模块,处理器401通过运行存储在存储器403内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的单号的生成方法。存储器403可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器403可进一步包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置405用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置405包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置405为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器403用于存储应用程序。
处理器401可以通过传输装置405调用存储器403存储的应用程序,以执行下述步骤:
接收到单号请求,其中,单号请求用于请求生成单号;
从目标标识序列段中查找未被使用过的第一标识,其中,目标标识序列段是从预设标识序列中选取的一个序列段;
响应于单号请求,返回根据查找到的第一标识生成的单号。
处理器401还用于执行下述步骤:
获取前一次被使用的第二标识;
在第二标识是第一标识序列段中的预设类型的标识情况下,从第一标识序列段中获取第一标识,其中,目标标识序列段包括第一标识序列段,第一标识序列段以目标标识为起始标识、以预设标识序列的最后一个标识为结束标识,目标标识为预设标识序列中的一个标识,预设类型的标识是第一标识序列段中位于最后结束标识之前的标识;
在第二标识不是第一标识序列段中的预设类型的标识情况下,从第二标识序列段中获取第一标识,其中,目标标识序列段包括第二标识序列段,第二标识序列段以预设标识序列的第一个标识为起始标识、以目标标识的前一个标识为结束标识。
采用本申请实施例,提供了一种“接收到单号请求,其中,所述单号请求用于请求生成单号;从目标标识序列段中查找未被使用过的第一标识,其中,所述目标标识序列段是从预设标识序列中选取的一个序列段;响应于所述单号请求,返回根据查找到的所述第一标识生成的单号”的方案。利用本地设备生成单号,即使在本地设备发生故障时也不会影响其他服务器的运行,另外,由于不需要与远程数据库进行交互,提高并发处理能力的同时也降低了时延,且由于不可能每次使用的标识序列段都相同,进而能够根据下单的单号来推断订单总量,可以解决相关技术中心的单号存在安全隐患的技术问题。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图4所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图4其并不对上述电子装置的结构造成限定。例如,终端还可包括比图4中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图4所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行单号的生成方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
接收到单号请求,其中,单号请求用于请求生成单号;
从目标标识序列段中查找未被使用过的第一标识,其中,目标标识序列段是从预设标识序列中选取的一个序列段;
响应于单号请求,返回根据查找到的第一标识生成的单号。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
获取前一次被使用的第二标识;
在第二标识是第一标识序列段中的预设类型的标识情况下,从第一标识序列段中获取第一标识,其中,目标标识序列段包括第一标识序列段,第一标识序列段以目标标识为起始标识、以预设标识序列的最后一个标识为结束标识,目标标识为预设标识序列中的一个标识,预设类型的标识是第一标识序列段中位于最后结束标识之前的标识;
在第二标识不是第一标识序列段中的预设类型的标识情况下,从第二标识序列段中获取第一标识,其中,目标标识序列段包括第二标识序列段,第二标识序列段以预设标识序列的第一个标识为起始标识、以目标标识的前一个标识为结束标识。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种单号的生成方法,其特征在于,包括:
接收到单号请求,其中,所述单号请求用于请求生成单号;
从目标标识序列段中查找未被使用过的第一标识,其中,所述目标标识序列段是从预设标识序列中选取的一个序列段;
响应于所述单号请求,返回根据查找到的所述第一标识生成的单号。
2.根据权利要求1所述的方法,其特征在于,从目标标识序列段中查找未被使用过的第一标识包括:
获取前一次被使用的第二标识;
在所述第二标识是第一标识序列段中的预设类型的标识情况下,从所述第一标识序列段中获取所述第一标识,其中,所述目标标识序列段包括所述第一标识序列段,所述第一标识序列段以目标标识为起始标识、以所述预设标识序列的最后一个标识为结束标识,所述目标标识为所述预设标识序列中的一个标识,所述预设类型的标识是所述第一标识序列段中位于最后结束标识之前的标识;
在所述第二标识不是所述第一标识序列段中的预设类型的标识情况下,从第二标识序列段中获取所述第一标识,其中,所述目标标识序列段包括所述第二标识序列段,所述第二标识序列段以所述预设标识序列的第一个标识为起始标识、以所述目标标识的前一个标识为结束标识。
3.根据权利要求2所述的方法,其特征在于,在所述第二标识不是所述第一标识序列段中的预设类型的标识情况下,从第二标识序列段中获取所述第一标识包括:
在所述第二标识是所述第一标识序列段中的结束标识情况下,从所述第二标识序列段中获取起始标识为所述第一标识;
在所述第二标识是所述第二标识序列段中的标识情况下,从所述第二标识序列段中获取所述第二标识的下一个标识为所述第一标识。
4.根据权利要求2所述的方法,其特征在于,从所述第一标识序列段中获取所述第一标识包括:
从所述第一标识序列段中获取所述第二标识的下一个标识为所述第一标识。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,在从目标标识序列段中查找未被使用过的第一标识之前,所述方法还包括:
在第一时间周期结束的情况下,按照预设方式从所述预设标识序列中选取第三标识,并将目标标识的值从第四标识切换为所述第三标识,其中,所述第四标识为所述第一时间周期内所述目标标识的取值,任意两次按照所述预设方式选取的标识允许不同;
在第二时间周期内,按照所述第三标识将所述预设标识序列划分为第一标识序列段和第二标识序列段,其中,所述第二时间周期为所述第一时间周期的下一时间周期。
6.根据权利要求1至4中任意一项所述的方法,其特征在于,
在接收到单号请求之前,所述方法还包括:在本地设备上运行用于生成单号的实例;
在从目标标识序列段中查找未被使用过的第一标识之后,通过所述实例,利用所述本地设备的设备信息和所述第一标识生成所述单号。
7.根据权利要求6所述的方法,其特征在于,利用所述本地设备的设备信息和所述第一标识生成所述单号包括:
获取所述本地设备的设备物理地址、所述实例在所述本地设备的部署位置信息;
将所述实例的实例标识、所述本地设备的设备物理地址、所述实例在所述本地设备的部署位置信息、生成时间以及所述第一标识拼接成所述单号。
8.一种单号的生成装置,其特征在于,包括:
接收单元,用于接收到单号请求,其中,所述单号请求用于请求生成单号;
查找单元,用于从目标标识序列段中查找未被使用过的第一标识,其中,所述目标标识序列段是从预设标识序列中选取的一个序列段;
返回单元,用于响应于所述单号请求,返回根据查找到的所述第一标识生成的单号。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至7任一项中所述的方法。
CN202010113386.2A 2020-02-24 2020-02-24 单号的生成方法和装置、存储介质、电子装置 Active CN111353772B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010113386.2A CN111353772B (zh) 2020-02-24 2020-02-24 单号的生成方法和装置、存储介质、电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010113386.2A CN111353772B (zh) 2020-02-24 2020-02-24 单号的生成方法和装置、存储介质、电子装置

Publications (2)

Publication Number Publication Date
CN111353772A true CN111353772A (zh) 2020-06-30
CN111353772B CN111353772B (zh) 2024-01-16

Family

ID=71195708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010113386.2A Active CN111353772B (zh) 2020-02-24 2020-02-24 单号的生成方法和装置、存储介质、电子装置

Country Status (1)

Country Link
CN (1) CN111353772B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949666A (zh) * 2020-08-31 2020-11-17 平安国际智慧城市科技股份有限公司 标识生成方法、装置、电子设备及存储介质
CN113408246A (zh) * 2021-06-30 2021-09-17 商盟商务服务有限公司 获取单号的方法、装置及系统

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013097716A1 (zh) * 2011-12-31 2013-07-04 华为技术有限公司 媒体内容提供与获取方法、服务器及用户终端
CN103944908A (zh) * 2014-04-25 2014-07-23 天地融科技股份有限公司 数据更新方法和系统
US20150278309A1 (en) * 2012-09-29 2015-10-01 Gopivotal, Inc. Random number generator in a parallel processing database
US20150356558A1 (en) * 2014-06-09 2015-12-10 Cubic Corporation Customer authentication based on action the user has done within a transit system
US20160364729A1 (en) * 2015-06-15 2016-12-15 Tata Consultancy Services Limited Method and system for performing secure banking transactions
EP3346379A1 (en) * 2017-01-09 2018-07-11 Sap Se Database management system with dynamic allocation of database requests
CN108509433A (zh) * 2017-02-23 2018-09-07 北京京东金融科技控股有限公司 基于分布式系统的生成序列号的方法、装置及电子设备
CN109656920A (zh) * 2018-10-19 2019-04-19 中国建设银行股份有限公司 序列号处理方法及系统、装置和存储介质
CN109670975A (zh) * 2018-12-17 2019-04-23 泰康保险集团股份有限公司 计算机系统中生成单号的方法、介质及电子设备
CN110196860A (zh) * 2018-04-12 2019-09-03 腾讯科技(深圳)有限公司 唯一标识分配方法及装置、电子设备、存储介质
CN110580305A (zh) * 2018-05-22 2019-12-17 北京京东尚科信息技术有限公司 生成标识符的方法、装置、系统和介质
CN110598068A (zh) * 2019-09-19 2019-12-20 京东数字科技控股有限公司 全局标识生成方法和装置
CN110636097A (zh) * 2018-06-25 2019-12-31 马上消费金融股份有限公司 一种标识生成与管理方法及节点、系统和存储装置
CN110674187A (zh) * 2019-09-24 2020-01-10 神州数码融信软件有限公司 一种全局唯一序列号的生成方法
WO2020019437A1 (zh) * 2018-07-25 2020-01-30 平安科技(深圳)有限公司 终端运行数据的监控方法、装置、终端设备及介质

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013097716A1 (zh) * 2011-12-31 2013-07-04 华为技术有限公司 媒体内容提供与获取方法、服务器及用户终端
US20150278309A1 (en) * 2012-09-29 2015-10-01 Gopivotal, Inc. Random number generator in a parallel processing database
CN103944908A (zh) * 2014-04-25 2014-07-23 天地融科技股份有限公司 数据更新方法和系统
US20150356558A1 (en) * 2014-06-09 2015-12-10 Cubic Corporation Customer authentication based on action the user has done within a transit system
US20160364729A1 (en) * 2015-06-15 2016-12-15 Tata Consultancy Services Limited Method and system for performing secure banking transactions
EP3346379A1 (en) * 2017-01-09 2018-07-11 Sap Se Database management system with dynamic allocation of database requests
CN108509433A (zh) * 2017-02-23 2018-09-07 北京京东金融科技控股有限公司 基于分布式系统的生成序列号的方法、装置及电子设备
CN110196860A (zh) * 2018-04-12 2019-09-03 腾讯科技(深圳)有限公司 唯一标识分配方法及装置、电子设备、存储介质
CN110580305A (zh) * 2018-05-22 2019-12-17 北京京东尚科信息技术有限公司 生成标识符的方法、装置、系统和介质
CN110636097A (zh) * 2018-06-25 2019-12-31 马上消费金融股份有限公司 一种标识生成与管理方法及节点、系统和存储装置
WO2020019437A1 (zh) * 2018-07-25 2020-01-30 平安科技(深圳)有限公司 终端运行数据的监控方法、装置、终端设备及介质
CN109656920A (zh) * 2018-10-19 2019-04-19 中国建设银行股份有限公司 序列号处理方法及系统、装置和存储介质
CN109670975A (zh) * 2018-12-17 2019-04-23 泰康保险集团股份有限公司 计算机系统中生成单号的方法、介质及电子设备
CN110598068A (zh) * 2019-09-19 2019-12-20 京东数字科技控股有限公司 全局标识生成方法和装置
CN110674187A (zh) * 2019-09-24 2020-01-10 神州数码融信软件有限公司 一种全局唯一序列号的生成方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HARICHARAN RENGAMANI ,ET AL: "the unique identification number project:challenges and recommendations", 《ETHICS AND POLICY OF BIOMETRICS》 *
王正军: "商品条码印刷资格认定管理系统的设计与实现", 《信息科技》 *
田英爱等: "持久对象标识的生成方法", 《制造业自动化》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949666A (zh) * 2020-08-31 2020-11-17 平安国际智慧城市科技股份有限公司 标识生成方法、装置、电子设备及存储介质
CN111949666B (zh) * 2020-08-31 2023-12-05 深圳赛安特技术服务有限公司 标识生成方法、装置、电子设备及存储介质
CN113408246A (zh) * 2021-06-30 2021-09-17 商盟商务服务有限公司 获取单号的方法、装置及系统

Also Published As

Publication number Publication date
CN111353772B (zh) 2024-01-16

Similar Documents

Publication Publication Date Title
US10212563B2 (en) Updating web resources
US10282191B2 (en) Updating web resources
CN107133234B (zh) 缓存数据更新的方法、装置及系统
CN111353773B (zh) 标识的处理方法和装置、存储介质、电子装置
CN109542529B (zh) 基于函数名称的埋点方法、装置、计算机设备及存储介质
CN107181686B (zh) 路由表的同步方法、装置及系统
CN103826215A (zh) 一种在终端设备上进行Root权限管理的方法和装置
CN103152390B (zh) 分布式存储系统的节点配置方法、装置、节点及系统
CN105095313A (zh) 一种数据访问方法和设备
US11018860B2 (en) Highly available and reliable secret distribution infrastructure
CN111353772A (zh) 单号的生成方法和装置、存储介质、电子装置
CN110895472A (zh) 一种识别业务变更的方法和装置
CN111125175A (zh) 业务数据的查询方法和装置、存储介质、电子装置
CN106657433B (zh) 一种多网卡环境下物理网卡的命名方法和装置
CN110489138A (zh) 一种应用更新方法、装置和存储介质
CN110740155B (zh) 分布式系统中的请求处理方法及装置
CN107967279A (zh) 分布式数据库的数据更新方法及装置
CN109992279A (zh) 配置数据更新方法、装置、计算设备及存储介质
CN106130751B (zh) 一种升级状态数据管理装置、系统和方法
CN111338689A (zh) 文件调用方法、装置及设备
CN107277087B (zh) 数据处理方法及装置
JP6233846B2 (ja) 可変長ノンスの生成
CN107623580B (zh) 内容分发网络中的任务处理方法、装置和系统
CN107402785A (zh) 一种配置方法与装置
CN112527652A (zh) 测试信息更新方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant