CN109491772A - 业务序号生成方法、装置、计算机设备和存储介质 - Google Patents
业务序号生成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109491772A CN109491772A CN201811137140.8A CN201811137140A CN109491772A CN 109491772 A CN109491772 A CN 109491772A CN 201811137140 A CN201811137140 A CN 201811137140A CN 109491772 A CN109491772 A CN 109491772A
- Authority
- CN
- China
- Prior art keywords
- serial number
- business
- host node
- gencration
- request
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种业务序号生成方法、装置、计算机设备和存储介质。所述方法包括:获取业务序号生成请求;根据所述业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号;记录当前系统时间;根据所述业务序号生成请求中的业务前缀、所述当前系统时间、所述进程序号和所述前次生成的内部序号,生成业务序号。在业务序号生成过程中,从主节点获取保证全局唯一的进程序号,没有使用数据库,避免了因为数据库故障而无法获得业务序号,提高了业务序号的生成效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种业务序号生成方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了业务序号生成技术,可以在短时间内生成较多业务序号,提供给各类业务系统使用。
然而,传统的业务序号生成技术,通常借助系统外部的数据库获取业务序号,需要技术人员对数据库进行维护。当数据库出现故障时,无法稳定地生成业务序号,从而降低了业务序号的生成效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够高效提供全局唯一的业务序号生成方法、装置、计算机设备和存储介质。
一种业务序号生成方法,所述方法包括:
获取业务序号生成请求;
根据所述业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号;
记录当前系统时间;
根据所述业务序号生成请求中的业务前缀、所述当前系统时间、所述进程序号和所述前次生成的内部序号,生成业务序号。
一种业务序号生成装置,其特征在于,所述装置包括:
请求获取模块,用于获取业务序号生成请求;
序号提取模块,用于根据所述业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号;
时间记录模块,用于记录当前系统时间;
序号生成模块,用于根据所述业务序号生成请求中的业务前缀、所述当前系统时间、所述进程序号和所述前次生成的内部序号,生成业务序号。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取业务序号生成请求;
根据所述业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号;
记录当前系统时间;
根据所述业务序号生成请求中的业务前缀、所述当前系统时间、所述进程序号和所述前次生成的内部序号,生成业务序号。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取业务序号生成请求;
根据所述业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号;
记录当前系统时间;
根据所述业务序号生成请求中的业务前缀、所述当前系统时间、所述进程序号和所述前次生成的内部序号,生成业务序号。
上述业务序号生成方法、装置、计算机设备和存储介质,获取业务序号生成请求,根据业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号,记录当前系统时间,根据业务序号生成请求中的业务前缀、当前系统时间、进程序号和前次生成的内部序号,生成业务序号。在业务序号生成过程中,从主节点获取保证全局唯一的进程序号,,没有使用数据库,避免了因为数据库故障而无法获得业务序号,提高了业务序号的生成效率。
附图说明
图1为一个实施例中序号生成方法的应用环境图;
图2为一个实施例中序号生成方法的流程示意图;
图3为一个实施例中提取内部序号和进程序号的步骤的流程示意图;
图4为一个实施例中进程序号的结构示意图;
图5为一个实施例中发送进程序号申请请求的步骤的流程示意图;
图6为一个实施例中发送等待主节点响应的步骤的流程示意图;
图7为一个实施例中检测前次生成的内部序号的步骤的流程示意图;
图8为一个实施例中生成业务序号的步骤的流程示意图;
图9为一个实施例中业务序号的结构示意图;
图10为一个实施例中业务序号生成装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的业务序号生成方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机和平板电脑,服务器104属于多个服务器组成的服务器集群。
在一个实施例中,如图2所示,提供了一种业务序号生成方法,以该方法应用于图1中的服务器104为例进行说明,本方法具体包括以下步骤:
步骤202,获取业务序号生成请求。
具体地,终端获取用户触发的业务生成请求,将业务生成请求发送至服务器。服务器接收业务生成请求,提取业务生成请求中的业务序号生成请求。
在一个实施例中,终端安装有业务程序,终端接收到业务程序页面中触发的业务生成请求时,将业务生成请求发送至服务器。服务器接收业务生成请求,提取业务生成请求中的业务序号生成请求。
步骤204,根据业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号。
其中,内部序号为业务序号的组成部分。进程序号为业务序号的组成部分,用于保障业务序号的唯一性。主节点为服务器集群中向各节点发送进程序号的服务器。
具体地,服务器根据获取到的业务序号生成请求,查询主节点分配的进程序号,查询到的进程序号用于生成当次业务序号。服务器根据业务序号生成请求,提取内部序号分配记录,从提取到的内部序号分配记录中查询前次生成的内部序号,前次生成的内部序号用于生成当次业务序号。
步骤206,记录当前系统时间。
具体地,服务器获取时间记录指令,根据时间记录指令获取当前的系统时间,记录获取到的系统时间。
在一个实施例中,当接收到业务序号生成请求后,服务器触发时间记录指令,根据时间记录指令获取当前的系统时间,记录获取到的系统时间。
举例说明,服务器通过代码获取当前系统时间,部分代码如下:
Java.util.Date current=new java.util.Date()
通过上述代码获取到的当前系数时间的格式可以是年月日格式,如20180920,表示2018年9月20日。
步骤208,根据业务序号生成请求中的业务前缀、当前系统时间、进程序号和前次生成的内部序号,生成业务序号。
其中,业务前缀为业务序号生成请求中标识业务种类的字符串。
具体地,服务器提取业务序号生成请求中的业务前缀,获取记录的当前系统时间,按照预设的格式将记录的当前系统时间转换为时间标签。服务器获取拼接指令,根据拼接指令拼接业务前缀、时间标签、进程序号和前次生成的内部序号,生成业务序号。
本实施例中,服务器获取业务序号生成请求,根据业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号,记录当前系统时间,根据业务序号生成请求中的业务前缀、当前系统时间、进程序号和前次生成的内部序号,生成业务序号。在业务序号生成过程中,从主节点获取保证全局唯一的进程序号,没有使用数据库,避免了因为数据库故障而无法获得业务序号,提高了业务序号的生成效率。
如图3所示,在一个实施例中,步骤204具体还包括提取前次生成的内部序号和主节点分配的进程序号的步骤,该步骤具体包括如下步骤:
步骤302,根据业务序号生成请求,查询主节点分配的进程序号。
具体地,服务器根据获取到的业务序号生成请求,在数据库中查询主节点分配的进程序号。
在一个实施例中,服务器中设置有进程序号表,进程序号表中存储着主节点发送的进程序号。服务器根据业务序号生成请求,在进程序号表中查询主节点分配的进程序号。
步骤304,当未查询到主节点分配的进程序号时,向主节点发送进程序号申请请求。
具体地,当服务器没有查询到主节点分配的进程序号时,生成进程序号申请请求。服务器查询保存的主节点标识,将进程序号申请请求发送到与主节点标识对应的节点。主节点标识可以是主节点的物理地址。
在一个实施例中,主节点和申请节点都是分布式系统中的节点,服务器可以是分布式系统中的节点。
在一个实施例中,服务器既可以是主节点,也可以是申请节点。主节点和申请节点也可以是分布式系统中不同的服务器。
步骤306,接收主节点根据进程序号申请请求返回的进程序号。
具体地,主节点接收服务器发送的进程序号申请请求后,根据当前时间计算当前时间的区间序号,获取全局进程序号。全局进程序号由主节点生成,在相同的时间标签下,全局进程序号在各节点中具有唯一性。主节点将区间序号和全局进程序号进行拼接,生成进程序号,将拼接得到的进程序号发送到服务器。服务器接收主节点根据进程序号申请请求返回的进程序号。
在一个实施例中,各节点中设置有预设时间段时间长度。主节点接收到服务器发送的进程序号申请请求后,获取当前时间,根据当前时间和当天零点时间计算当前时间区间长度。主节点获取当前时间区间长度和预设时间段时间长度的比值,将得到的比值作为当前时间的区间序号。
举例说明,进程序号结构如图4所示,主节点将区间序号保存在12比特的存储空间中,将全局进程序号保存在20比特的存储空间中。12比特的存储空间可以表示的最大十进制整数为4096。一天时间共有86400秒,故预设时间段时间长度为86400/4096≈21秒。主节点接收到服务器发送的进程序号申请请求后,获取当前时间秒数与当天零点秒数,则当前时间的区间序号=(当前时间秒数-当天零点秒数)/21。如果计算得到的结果为10,则当前时间的区间序号为10。
步骤308,提取内部序号分配记录。
具体地,服务器获取到进程序号后,提取内部序号分配记录。内部序号分配记录存储着服务器在历次业务序号生成过程中生成的内部序号。
步骤310,从内部序号分配记录获取前次生成的内部序号。
具体地,服务器从获取到的内部序号分配记录中,查询前次生成的内部序号。
在一个实施例中,当服务器没有查询到主节点分配的进程序号时,向主节点发送进程序号申请请求,提取内部序号分配记录。服务器从内部序号分配记录中获取前次生成的内部序号,将前次生成的内部序号置0。当服务器接收到主节点根据进程序号申请请求返回的进程序号后,从0开始获取进程序号。
本实施例中,根据业务序号生成请求查询主节点分配的进程序号,当未查询到主节点分配的进程序号时,向主节点发送进程序号申请请求,接收主节点返回的进程序号。服务器获取进程序号后,从内部序号分配记录中获取前次生成的内部序号。通过从主节点获取具有唯一性的进程序号,提高了进程序号的可靠性。
如图5所示,在一个实施例中,步骤304具体还包括向主节点发送进程序号申请请求的步骤,该步骤具体包括如下步骤:
步骤502,当未查询到主节点分配的进程序号、且未查询到主节点时,向各节点发送主节点选取通知。
其中,主节点选取通知是服务器发送的申请成为主节点的信息。主节点选取通知可以是广播报文,包括服务器标识,服务器标识可以是服务器的物理地址。
具体地,当服务器没有查询到主节点分配的进程序号、也没有查询到保存的主节点标识时,查询服务器物理地址,根据服务器物理地址生成服务器标识。服务器根据服务器标识生成主节点选取通知,获取各节点的节点标识,将主节点选取通知发送到与获取到的节点标识对应的各节点。节点标识可以是各节点的物理地址。
步骤504,接收各节点根据主节点选取通知返回的主节点选取信息。
其中,主节点选取信息是各节点申请成为主节点的信息,由各节点根据接收到的服务器发送的主节点选取通知生成。主节点选取信息可以是广播报文,包括各节点的节点标识,节点标识可以是各节点的物理地址。
具体地,各节点接收服务器发送的主节点选取通知后,获取节点的物理地址,根据节点的物理地址生成节点标识,根据节点标识生成主节点选取信息。各节点从主节点选取通知中提取服务器标识,根据服务器标识将主节点选取信息返回至服务器。
步骤506,根据主节点选取信息确定主节点。
具体地,服务器接收各节点返回的主节点选取信息,从接收到的主节点选取信息中提取各节点物理地址,按照预设的主节点选取条件,从各节点物理地址中选取符合主节点选取条件的物理地址,将与选取的物理地址对应的节点作为主节点。
在一个实施例中,服务器接收各节点返回的主节点选取信息,从主节点选取信息中提取各节点的物理地址,获取服务器物理地址。服务器获取预设的主节点选取条件,对各节点物理地址和服务器物理地址进行比较,选取最大的物理地址。服务器查询最大物理地址对应的节点,将最大物理地址对应的节点作为主节点。预设的主节点选取条件也可以是选取最小物理地址的节点作为主节点。
步骤508,向确定的主节点发送进程序号申请请求。
具体地,服务器根据各节点返回的主节点选取信息确定主节点后,生成进程序号申请请求,获取主节点标识,将生成的进程序号申请请求发送到与主节点标识对应的主节点。
在一个实施例中,服务器第一次通过网络进入分布式系统,生成主节点选取通知,获取各节点的节点标识,将主节点选取通知发送到与节点标识对应的各节点。当主节点存在时,主节点接收服务器发送的主节点选取通知,获取主节点标识,根据主节点标识生成主节点身份信息。主节点从主节点选取通知中提取服务器标识,根据服务器标识将生成的主节点身份信息发送至服务器。服务器接收主节点身份信息,从主节点身份信息中提取主节点标识,接受与主节点标识对应的节点作为主节点。当主节点不存在或服务器在预设等待时间段后未收到主节点发送的主节点身份信息,服务器向各节点发送主节点选取通知,接收各节点返回的主节点选取信息,根据主节点选取信息确认主节点。
本实施例中,当未查询到主节点分配的进程序号、且未查询到主节点时,向各节点发送主节点选取通知,接收各节点根据主节点选取通知返回的主节点选取信息,根据主节点选取信息确定主节点后,向确定的主节点发送进程序号申请请求。主节点可由任意节点担任,避免了使用数据库获取进程序号时,因数据库故障无法获得进程序号的情况,提高了获取进程序号的稳定性。
如图6所示,在一个实施例中,步骤304之后还包括等待主节点响应的步骤,该步骤具体包括如下步骤:
步骤602,当主节点处于启动状态时,接收主节点发送的启动状态通知信息。
其中,启动状态通知信息是主节点向服务器发送的主节点处于启动状态的信息。
具体地,当主节点接收到服务器发送的进程序号申请请求时,如果主节点处于启动状态,生成启动状态通知信息,提取进程序号申请请求中的服务器标识,将启动状态通知信息发送到与服务器标识对应的服务器。
步骤604,根据启动通知信息在预设时间段后再次向主节点发送进程序号申请请求。
具体地,服务器接收主节点发送的启动通知信息后开始计时,在预设时间段后再次向主节点发送进程序号申请请求。
在一个实施例中,主节点接收到服务器发送的主节点申请请求时,如果主节点处于启动状态,将向服务器发送启动状态通知信息。经过预设时间段后,当前时间的区间序号更新,主节点再次接收到服务器发送的进程序号申请请求,根据区间序号和全局进程序号生成进程序号,将进程序号发送到服务器。
步骤606,当主节点处于运行状态时,接收主节点根据进程序号申请请求返回的进程序号。
具体地,主节点接收服务器发送的进程序号申请请求时,如果主节点处于运行状态,向服务器发送进程序号。服务器接收主节点根据进程序号申请请求返回的进程序号。本实施例中,向主节点发送进程序号申请请求后,如果主节点处于启动状态,接收主节点发送的启动状态通知信息,在预设时间段后再次向主节点发送进程序号申请请求,使得接收到的进程序号中的区间序号得以更新,避免了进程序号的重复,保证了进程序号的唯一性。
如图7所示,在一个实施例中,步骤310之后还包括检测前次生成的内部序号的步骤,该步骤具体包括如下步骤:
步骤702,当前次生成的内部序号不满足预设分配条件时,从主节点获取进程序号。
其中,预设分配条件用于检测前次生成的内部序号是否可被使用。
具体地,服务器存储着预设分配条件,服务器从内部序号分配记录中获取到前次生成的内部序号后,按照预设的内部序号变化方式,对前次生成的内部序号进行处理,得到当前内部序号。服务器获取预设分配条件,对当前内部序号进行检测,如果当前内部序号不满足预设分配条件,服务器生成进程序号申请请求,将进程序号申请请求发送到主节点,接收主节点根据进程序号申请请求返回的进程序号。
举例说明,服务器使用四位字符表示内部序号,则内部序号阈值为9999,内部序号阈值保存在预设分配条件中。预设的内部序号变化方式为内部序号从0开始,每生成一个内部序号,内部序号自增长1。服务器获取到前次生成的内部序号后,根据预设的内部序号变化方式,将前次生成的内部序号加1得到当前内部序号。如果服务器获取到的前次生成的内部序号为9999,对9999加1后超出内部序号阈值9999,生成内部序号溢出信息。服务器根据内部序号溢出信息生成进程序号申请请求,将进程序号申请请求发送至主节点,将前次生成的内部序号9999置0。如果服务器获取到的前次生成的内部序号为9998,对9998加1后得到9999,没有超出内部序号阈值9999,服务器将记录当前系统时间。
步骤704,将前次生成的内部序号置0。
具体地,当前次分配的内部序号不满足预设分配条件时,服务器向主节点发送进程序号申请请求,将内部序号分配记录中的前次生成的内部序号置0,准备从0生成内部序号。
步骤706,当前次生成的内部序号满足预设分配条件时,记录当前系统时间。
具体地,当服务器检测到前次生成的内部序号满足预设分配条件时,服务器将记录当前系统时间。本实施例中,当前次生成的内部序号不满足预设分配条件时,从主节点获取进程序号,将前次生成的内部序号置0,从0开始计算内部序号。通过设置内部序号预设分配条件,只有前次生成的内部序号不满足预设分配条件时,才从主节点获取进程序号,减少了节点之间的网络交互,提高了获取业务序号的效率。
如图8所示,在一个实施例中,步骤208具体还包括生成业务序号的步骤,该步骤具体包括如下步骤:
步骤802,提取业务序号生成请求中的业务前缀。
其中,业务前缀是业务序号生成请求中用于标识业务类型的字符串。
具体地,业务序号生成请求中包括标识用户触发的业务类型的业务前缀。服务器获取业务前缀提取指令,从业务序号生成请求中提取业务前缀。
举例说明,当用户触发的业务类型为用户服务时,服务器获取业务前缀提取指令,从业务序号生成请求中提取到业务前缀YH。
步骤804,按照预设格式对当前系统时间进行处理得到时间标签。
其中,时间标签是标识服务器生成业务序号的时间的字符串。
具体地,服务器获取标签转换指令,对记录的当前系统时间进行处理,得到指定格式的时间标签。
举例说明,服务器通过代码对记录的当前系统时间进行转换,得到指定的YYMMDD格式时间标签,部分代码如下:
SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd");
String time=sdf.format(current);
服务器对记录的当前系统时间进行转换得到名字为time的字符串,将字符串代表的数字作为生成的业务序号的时间标签。通过上述代码对获取到的当前系统时间进行格式转换,得到预设格式的时间标签,例如当前系统时间为20180920,经过格式转换所得到的时间标签为180920。
步骤806,将业务前缀、时间标签、进程序号和前次生成的内部序号进行拼接,生成业务序号。
具体地,服务器获取拼接指令,对业务前缀、时间标签、进程序号和前次生成的内部序号进行拼接,得到业务序号。
在一个实施例中,服务器根据业务序号生成业务报告,将业务报告发送至终端。终端接收服务器发送的业务报告,将接收到的业务报告进行显示。
举例说明,服务器获取业务序号生成请求,通过业务序号获取函数StringgetUUID(String ServiceType)生成业务序号。其中String ServiceType表示业务前缀。服务器通过业务序号获取函数生成的业务序号结构如图9所示。业务序号可以是20个字符的字符串,其中业务前缀可以是2个字符的字符串,时间标签可以是6个字符的字符串,进程序号可以是8个字符的字符串,内部序号可以是4个字符的字符串。
步骤808,根据前次生成的内部序号生成新的内部序号。
具体地,服务器在生成业务序号后,按照内部序号变化方式对前次生成的内部序号进行处理,生成新的内部序号。服务器更新内部序号分配记录,将生成的新的内部序号写入内部序号分配记录。
本实施例中,对业务前缀、时间标签、进程序号和前次生成的内部序号进行拼接生成业务序号。通过提取业务序号生成请求中的业务前缀,按照预设格式对当前系统时间进行处理得到时间标签,使得生成的业务序号的不同字段代表不同的意义,增强了业务序号的可读性。
应该理解的是,虽然图2-3、5-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3、5-8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图10所示,提供了一种业务序号生成装置1000,包括:请求获取模块1002、序号提取模块1004、时间记录模块1006和序号生成模块1008,其中:
请求获取模块1002,用于获取业务序号生成请求。
序号提取模块1004,用于根据业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号。
时间记录模块1006,用于记录当前系统时间。
序号生成模块1008,用于根据业务序号生成请求中的业务前缀、当前系统时间、进程序号和前次生成的内部序号,生成业务序号。
本实施例中,服务器获取业务序号生成请求,根据业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号,记录当前系统时间,根据业务序号生成请求中的业务前缀、当前系统时间、进程序号和前次生成的内部序号,生成业务序号。在业务序号生成过程中,从主节点获取保证全局唯一的进程序号,没有使用数据库,避免了因为数据库故障而无法获得业务序号,提高了业务序号的生成效率。
在一个实施例中,序号提取模块1004还用于根据业务序号生成请求,查询主节点分配的进程序号;当未查询到主节点分配的进程序号时,向主节点发送进程序号申请请求;接收主节点根据进程序号申请请求返回的进程序号;提取内部序号分配记录;从内部序号分配记录获取前次生成的内部序号。
本实施例中,根据业务序号生成请求查询主节点分配的进程序号,当未查询到主节点分配的进程序号时,向主节点发送进程序号申请请求,接收主节点返回的进程序号。服务器获取进程序号后,从内部序号分配记录中获取前次生成的内部序号。通过从主节点获取具有唯一性的进程序号,提高了进程序号的可靠性。
在一个实施例中,序号提取模块1004还用于当未查询到主节点分配的进程序号、且未查询到主节点时,向各节点发送主节点选取通知;接收各节点根据所述主节点选取通知返回的主节点选取信息;根据主节点选取信息确定主节点;向确定的主节点对应的主节点发送进程序号申请请求。
本实施例中,当未查询到主节点分配的进程序号、且未查询到主节点时,向各节点发送主节点选取通知,接收各节点根据主节点选取通知返回的主节点选取信息,根据主节点选取信息确定主节点后,向确定的主节点发送进程序号申请请求。主节点可由任意节点担任,避免了使用数据库获取进程序号时,因数据库故障无法获得进程序号的情况,提高了获取进程序号的稳定性。
在一个实施例中,序号提取模块1004还用于当主节点处于启动状态时,接收主节点发送的启动状态通知信息;根据启动通知信息在预设时间段后再次向主节点发送进程序号申请请求;当主节点处于运行状态时,执行接收主节点根据进程序号申请请求返回的进程序号的步骤。
本实施例中,本实施例中,向主节点发送进程序号申请请求后,如果主节点处于启动状态,接收主节点发送的启动状态通知信息,在预设时间段后再次向主节点发送进程序号申请请求,通过延时再次向主节点发送进程序号申请请求,使得接收到的进程序号中区间序号得以更新,避免了进程序号的重复,保证了进程序号的唯一性。
在一个实施例中,序号提取模块1004还用于当前次生成的内部序号不满足预设分配条件时,从主节点获取进程序号;将前次生成的内部序号置0;当前次生成的内部序号满足预设分配条件时,执行记录当前系统时间的步骤。
本实施例中,当前次生成的内部序号不满足预设分配条件时,从主节点获取进程序号,将前次生成的内部序号置0,从0开始计算内部序号。通过设置内部序号预设分配条件,只有前次生成的内部序号不满足预设分配条件时,才从主节点获取进程序号,减少了节点之间的网络交互,提高了获取业务序号的效率。
在一个实施例中,序号生成模块还用于提取业务序号生成请求中的业务前缀;按照预设格式对当前系统时间进行处理得到时间标签;将业务前缀、时间标签、进程序号和前次生成的内部序号进行拼接,生成业务序号;根据前次生成的内部序号生成新的内部序号。
本实施例中,对业务前缀、时间标签、进程序号和前次生成的内部序号进行拼接生成业务序号。通过提取业务序号生成请求中的业务前缀,按照预设格式对当前系统时间进行处理得到时间标签,使得生成的业务序号的不同字段代表不同的意义,增强了业务序号的可读性。
关于业务序号生成装置的具体限定可以参见上文中对于业务序号生成方法的限定,在此不再赘述。上述业务序号生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储用于生成业务序号的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种序号生成方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取业务序号生成请求;根据业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号;记录当前系统时间;根据业务序号生成请求中的业务前缀、当前系统时间、进程序号和前次生成的内部序号,生成业务序号。
在一个实施例中,根据业务生成请求,提取前次生成的内部序号和主节点分配的进程序号包括:根据业务序号生成请求,查询主节点分配的进程序号;当未查询到主节点分配的进程序号时,向主节点发送进程序号申请请求;接收主节点根据进程序号申请请求返回的进程序号;提取内部序号分配记录;从内部序号分配记录获取前次生成的内部序号。
在一个实施例中,当未查询到主节点分配的进程序号时,向主节点发送进程序号申请请求包括:当未查询到主节点分配的进程序号、且未查询到主节点时,向各节点发送主节点选取通知;接收各节点根据主节点选取通知返回的主节点选取信息;根据主节点选取信息确定主节点;向确定的主节点发送进程序号申请请求。
在一个实施例中,当未查询到主节点分配的进程序号时,向主节点发送进程序号申请请求之后,处理器执行计算机程序时还实现以下步骤:当主节点处于启动状态时,接收主节点发送的启动状态通知信息;根据启动通知信息在预设时间段后再次向主节点发送进程序号申请请求;当主节点处于运行状态时,执行接收主节点根据进程序号申请请求返回的进程序号的步骤。
在一个实施例中,从内部序号分配记录获取前次生成的内部序号之后,处理器执行计算机程序时还实现以下步骤:当前次生成的内部序号不满足预设分配条件时,从主节点获取进程序号;将前次生成的内部序号置0;当前次生成的内部序号满足预设分配条件时,执行记录当前系统时间的步骤。
在一个实施例中,根据业务序号生成请求中的业务前缀、当前系统时间、进程序号和前次生成的内部序号,生成业务序号包括:提取业务序号生成请求中的业务前缀;按照预设格式对当前系统时间进行处理得到时间标签;将业务前缀、时间标签、进程序号和前次生成的内部序号进行拼接,生成业务序号;根据前次生成的内部序号生成新的内部序号。
本实施例中,服务器获取业务序号生成请求,根据业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号,记录当前系统时间,根据业务序号生成请求中的业务前缀、当前系统时间、进程序号和前次生成的内部序号,生成业务序号。在业务序号生成过程中,从主节点获取保证全局唯一的进程序号,没有使用数据库,避免了因为数据库故障而无法获得业务序号,提高了业务序号的生成效率。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取业务序号生成请求;根据业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号;记录当前系统时间;根据业务序号生成请求中的业务前缀、当前系统时间、进程序号和前次生成的内部序号,生成业务序号。
在一个实施例中,根据所述业务生成请求,提取前次生成的内部序号和主节点分配的进程序号包括:根据业务序号生成请求,查询主节点分配的进程序号;当未查询到主节点分配的进程序号时,向主节点发送进程序号申请请求;接收主节点根据进程序号申请请求返回的进程序号;提取内部序号分配记录;从内部序号分配记录获取前次生成的内部序号。
在一个实施例中,当未查询到主节点分配的进程序号时,向主节点发送进程序号申请请求包括:当未查询到主节点分配的进程序号、且未查询到主节点时,向各节点发送主节点选取通知;接收各节点根据主节点选取通知返回的主节点选取信息;根据主节点选取信息确定主节点;向确定的主节点发送进程序号申请请求。
在一个实施例中,当未查询到主节点分配的进程序号时,向主节点发送进程序号申请请求之后,计算机程序被处理器执行时还实现以下步骤:当主节点处于启动状态时,接收主节点发送的启动状态通知信息;根据启动通知信息在预设时间段后再次向主节点发送进程序号申请请求;当主节点处于运行状态时,执行接收主节点根据进程序号申请请求返回的进程序号的步骤。
在一个实施例中,从内部序号分配记录获取前次生成的内部序号之后,计算机程序被处理器执行时还实现以下步骤:当前次生成的内部序号不满足预设分配条件时,从主节点获取进程序号;将前次生成的内部序号置0;当前次生成的内部序号满足预设分配条件时,执行记录当前系统时间的步骤。
在一个实施例中,根据业务序号生成请求中的业务前缀、当前系统时间、进程序号和前次生成的内部序号,生成业务序号包括:提取业务序号生成请求中的业务前缀;按照预设格式对当前系统时间进行处理得到时间标签;将业务前缀、时间标签、进程序号和前次生成的内部序号进行拼接,生成业务序号;根据前次生成的内部序号生成新的内部序号。
本实施例中,服务器获取业务序号生成请求,根据业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号,记录当前系统时间,根据业务序号生成请求中的业务前缀、当前系统时间、进程序号和前次生成的内部序号,生成业务序号。在业务序号生成过程中,从主节点获取保证全局唯一的进程序号,没有使用数据库,避免了因为数据库故障而无法获得业务序号,提高了业务序号的生成效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种业务序号生成方法,所述方法包括:
获取业务序号生成请求;
根据所述业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号;
记录当前系统时间;
根据所述业务序号生成请求中的业务前缀、所述当前系统时间、所述进程序号和所述前次生成的内部序号,生成业务序号。
2.根据权利要求1所述的方法,其特征在于,所述根据所述业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号包括:
根据所述业务序号生成请求,查询主节点分配的进程序号;
当未查询到主节点分配的进程序号时,向所述主节点发送进程序号申请请求;
接收所述主节点根据所述进程序号申请请求返回的进程序号;
提取内部序号分配记录;
从所述内部序号分配记录获取前次生成的内部序号。
3.根据权利要求2所述的方法,其特征在于,所述当未查询到主节点分配的进程序号时,向所述主节点发送进程序号申请请求包括:
当未查询到主节点分配的进程序号、且未查询到主节点时,向各节点发送主节点选取通知;
接收所述各节点根据所述主节点选取通知返回的主节点选取信息;
根据所述主节点选取信息确定主节点;
向确定的主节点对应的主节点发送进程序号申请请求。
4.根据权利要求2所述的方法,其特征在于,所述当未查询到主节点分配的进程序号时,向所述主节点发送进程序号申请请求之后,还包括:
当所述主节点处于启动状态时,接收所述主节点发送的启动状态通知信息;
根据所述启动通知信息在预设时间段后再次向所述主节点发送进程序号申请请求;
当所述主节点处于运行状态时,执行所述接收所述主节点根据所述进程序号申请请求返回的进程序号的步骤。
5.根据权利要求2所述的方法,其特征在于,所述从所述内部序号分配记录获取前次生成的内部序号之后,还包括:
当所述前次生成的内部序号不满足预设分配条件时,从所述主节点获取进程序号;
将所述前次生成的内部序号置0;
当所述前次生成的内部序号满足预设分配条件时,执行所述记录当前系统时间的步骤。
6.根据权利要求1所述的方法,其特征在于,所述根据所述业务序号生成请求中的业务前缀、所述当前系统时间、所述进程序号和所述前次生成的内部序号,生成业务序号包括:
提取所述业务序号生成请求中的业务前缀;
按照预设格式对所述当前系统时间进行处理得到时间标签;
将所述业务前缀、所述时间标签、所述进程序号和所述前次生成的内部序号进行拼接,生成所述业务序号;
根据前次生成的内部序号生成新的内部序号。
7.一种业务序号生成装置,其特征在于,所述装置包括:
请求获取模块,用于获取业务序号生成请求;
序号提取模块,用于根据所述业务序号生成请求,提取前次生成的内部序号和主节点分配的进程序号;
时间记录模块,用于记录当前系统时间;
序号生成模块,用于根据所述业务序号生成请求中的业务前缀、所述当前系统时间、所述进程序号和所述前次生成的内部序号,生成业务序号。
8.根据权利要求7所述的装置,其特征在于,所述序号生成模块具体还包括:
前缀提取模块,用于提取所述业务序号生成请求中的业务前缀;
时间处理模块,用于对所述当前系统时间进行处理,得到时间标签;
拼接模块,用于将所述业务前缀、所述时间标签、所述进程序号和所述前次生成的内部序号进行拼接,生成所述业务序号;
内部序号生成模块,用于根据前次生成的内部序号生成新的内部序号。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811137140.8A CN109491772B (zh) | 2018-09-28 | 2018-09-28 | 业务序号生成方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811137140.8A CN109491772B (zh) | 2018-09-28 | 2018-09-28 | 业务序号生成方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109491772A true CN109491772A (zh) | 2019-03-19 |
CN109491772B CN109491772B (zh) | 2020-10-27 |
Family
ID=65690056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811137140.8A Expired - Fee Related CN109491772B (zh) | 2018-09-28 | 2018-09-28 | 业务序号生成方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109491772B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110046192A (zh) * | 2019-04-22 | 2019-07-23 | 广州荔支网络技术有限公司 | 请求信息的序号生成系统和方法 |
CN110677511A (zh) * | 2019-09-29 | 2020-01-10 | 北京三快在线科技有限公司 | 分布式系统中的标识生成方法、装置、设备及存储介质 |
CN111917897A (zh) * | 2020-07-15 | 2020-11-10 | 深圳市腾讯网域计算机网络有限公司 | 标识生成方法、装置、设备及存储介质 |
CN113515557A (zh) * | 2021-04-26 | 2021-10-19 | 中国工商银行股份有限公司 | 分布式短序列号生成方法及装置 |
CN113626410A (zh) * | 2021-08-11 | 2021-11-09 | 北京神州数字科技有限公司 | 分布式去中心化序列生成方法、装置及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004055675A1 (ja) * | 2002-12-18 | 2004-07-01 | Fujitsu Limited | ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム |
CN102937931A (zh) * | 2012-09-25 | 2013-02-20 | 北京奇虎科技有限公司 | 一种日志数据传输的方法和系统 |
US20130138883A1 (en) * | 2011-11-30 | 2013-05-30 | International Business Machines Corporation | Optimizing Migration/Copy of De-Duplicated Data |
CN105072160A (zh) * | 2015-07-17 | 2015-11-18 | 联动优势科技有限公司 | 一种流水号生成方法、装置及服务器 |
CN107707528A (zh) * | 2017-09-04 | 2018-02-16 | 北京京东尚科信息技术有限公司 | 一种用户信息隔离的方法和装置 |
CN107786628A (zh) * | 2017-07-24 | 2018-03-09 | 上海壹账通金融科技有限公司 | 业务编号分配方法、装置、计算机设备和存储介质 |
CN108280134A (zh) * | 2017-12-26 | 2018-07-13 | 上海数据交易中心有限公司 | 基于账户额度控制的数据流通系统及方法、存储介质、终端 |
-
2018
- 2018-09-28 CN CN201811137140.8A patent/CN109491772B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004055675A1 (ja) * | 2002-12-18 | 2004-07-01 | Fujitsu Limited | ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム |
US20130138883A1 (en) * | 2011-11-30 | 2013-05-30 | International Business Machines Corporation | Optimizing Migration/Copy of De-Duplicated Data |
CN102937931A (zh) * | 2012-09-25 | 2013-02-20 | 北京奇虎科技有限公司 | 一种日志数据传输的方法和系统 |
CN105072160A (zh) * | 2015-07-17 | 2015-11-18 | 联动优势科技有限公司 | 一种流水号生成方法、装置及服务器 |
CN107786628A (zh) * | 2017-07-24 | 2018-03-09 | 上海壹账通金融科技有限公司 | 业务编号分配方法、装置、计算机设备和存储介质 |
CN107707528A (zh) * | 2017-09-04 | 2018-02-16 | 北京京东尚科信息技术有限公司 | 一种用户信息隔离的方法和装置 |
CN108280134A (zh) * | 2017-12-26 | 2018-07-13 | 上海数据交易中心有限公司 | 基于账户额度控制的数据流通系统及方法、存储介质、终端 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110046192A (zh) * | 2019-04-22 | 2019-07-23 | 广州荔支网络技术有限公司 | 请求信息的序号生成系统和方法 |
CN110046192B (zh) * | 2019-04-22 | 2021-08-20 | 广州荔支网络技术有限公司 | 请求信息的序号生成系统和方法 |
CN110677511A (zh) * | 2019-09-29 | 2020-01-10 | 北京三快在线科技有限公司 | 分布式系统中的标识生成方法、装置、设备及存储介质 |
CN110677511B (zh) * | 2019-09-29 | 2021-01-01 | 北京三快在线科技有限公司 | 分布式系统中的标识生成方法、装置、设备及存储介质 |
CN111917897A (zh) * | 2020-07-15 | 2020-11-10 | 深圳市腾讯网域计算机网络有限公司 | 标识生成方法、装置、设备及存储介质 |
CN111917897B (zh) * | 2020-07-15 | 2024-03-05 | 深圳市腾讯网域计算机网络有限公司 | 标识生成方法、装置、设备及存储介质 |
CN113515557A (zh) * | 2021-04-26 | 2021-10-19 | 中国工商银行股份有限公司 | 分布式短序列号生成方法及装置 |
CN113626410A (zh) * | 2021-08-11 | 2021-11-09 | 北京神州数字科技有限公司 | 分布式去中心化序列生成方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109491772B (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491772A (zh) | 业务序号生成方法、装置、计算机设备和存储介质 | |
CN110647438B (zh) | 事件监控方法、装置、计算机设备和存储介质 | |
CN110290212B (zh) | 服务调用记录方法、装置、计算机设备和存储介质 | |
CN110209652A (zh) | 数据表迁移方法、装置、计算机设备和存储介质 | |
CN106375458B (zh) | 服务调用系统、方法及装置 | |
CN109803005A (zh) | 业务断点处理方法、装置、计算机设备和存储介质 | |
CN108965383B (zh) | 文件同步方法、装置、计算机设备和存储介质 | |
CN110245505A (zh) | 数据表访问方法、装置、计算机设备和存储介质 | |
CN108959384B (zh) | 网页数据获取方法、装置、计算机设备和存储介质 | |
CN109542635A (zh) | 配置信息更新方法、装置、计算机设备和存储介质 | |
CN110795171B (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN107888444A (zh) | 服务监控方法、服务监控装置、计算机设备和存储介质 | |
CN108924043A (zh) | 系统监控方法、网关通信、网关装置、业务处理设备 | |
CN113660359B (zh) | 域名解析记录的管理方法及装置、存储介质及电子设备 | |
CN109218131B (zh) | 网络监控方法、装置、计算机设备和存储介质 | |
CN110933192A (zh) | 局域网ip地址分配方法、装置、系统、计算机设备 | |
CN109857344B (zh) | 基于共享内存的心跳状态判断方法、装置和计算机设备 | |
CN111339173A (zh) | 数据共享方法、服务器及可读存储介质 | |
CN110377292A (zh) | 服务配置方法、装置、计算机设备及存储介质 | |
CN110944037B (zh) | 客户端缓存更改配置的方法、计算机设备和存储介质 | |
CN109408547B (zh) | 一种sam注册表的读取方法、读取系统及相关装置 | |
KR102066178B1 (ko) | 웹 모니터링 시스템 및 이를 이용한 응답시간 분포 정보 생성 방법 | |
CN107528797B (zh) | 数据处理方法、装置及系统 | |
CN117544938B (zh) | 无线麦克风的配对方法、装置、设备及存储介质 | |
CN113923176B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201027 |