CN105072160A - 一种流水号生成方法、装置及服务器 - Google Patents
一种流水号生成方法、装置及服务器 Download PDFInfo
- Publication number
- CN105072160A CN105072160A CN201510424282.2A CN201510424282A CN105072160A CN 105072160 A CN105072160 A CN 105072160A CN 201510424282 A CN201510424282 A CN 201510424282A CN 105072160 A CN105072160 A CN 105072160A
- Authority
- CN
- China
- Prior art keywords
- serial number
- application node
- time
- node
- present system
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种流水号生成方法、装置及服务器,流水号生成方法包括接收流水号分配请求,获取接收该流水号分配请求的应用节点的节点编号,以及应用节点所在服务器的当前系统时间,生成与流水号分配请求关联的时间序列值,对节点编号、当前系统时间和时间序列值的二进制数进行位或运算,生成单个长整型LONG数据结构类型的流水号。该方法可实现分布式集群中任两个应用节点可并行执行生成流水号的操作,且分布式集群中任两个应用节点生成的流水号不同,使得分布式集群中生成流水号的服务具有更高的并发处理能力,而且生成的流水号的数据格式为LONG类型,便于存储和检索。
Description
技术领域
本发明涉及计算机数据结构领域,尤其涉及一种流水号生成方法、装置及服务器。
背景技术
目前,基于数据库系统生成流水号的方案中,需要依赖集中式的数据库,当多个应用访问同一数据库获取流水号时,数据库的压力过大。而且依赖单一的数据库,存在集中式单点,单点发生故障的时候会波及到整个系统或者网络,从而导致整个系统或者网络的瘫痪。因此,依赖数据库生成流水号的方案存在集中式单点,系统性能存在瓶颈。
现有方案中往往通过增加外部数据库进行分布式改造来解决上述集中式问题,如,通过跨机房数据库双活来进行跨IDC机房的分布式改造,但是交替访问不同数据库会存在交互效率慢的劣势,而且按照此方案获取到的流水号无法保证唯一。
在目前“互联网+”的大环境下,电子商务和O2O应用的井喷式增长,对后端业务处理能力有了更高的要求。需要后端应用能够提供分布式处理的能力,支持分布式集群部署,尤其是跨IDC机房的分布部署。
在分布式集群环境中,要求生成流水号的服务的应用端具有更高的并发处理能力,更好的可扩展性。目前在已有的方案中对以上都没有较好的解决。
发明内容
本发明实施例提供一种流水号生成方法、装置及服务器,用以实现分布式集群环境中的应用端不依赖数据库生成流水号,生成流水号的服务具有更高的并发处理能力。
本发明实施例提供一种流水号生成方法,该方法包括:
接收流水号分配请求;
获取接收该流水号分配请求的应用节点的节点编号,其中,在所述应用节点所属的分布式集群中任两个应用节点的节点编号不同;
获取所述应用节点所在服务器的当前系统时间;
根据所述流水号分配请求,生成与所述流水号分配请求关联的时间序列值,其中,所述应用节点在所述当前系统时间的时间精度内生成的任两个时间序列值不同;
对所述节点编号、所述当前系统时间和所述时间序列值的二进制数进行位或运算,生成单个长整型LONG数据结构类型的流水号。
上述方法流程实现了分布式集群中的单个应用节点不依赖外部数据库,单个应用节点自身就可以实时的根据流水号分配请求生成一个流水号,进而解决了依赖单一的数据库获取流水号导致数据库压力过大的问题。进一步的,分布式集群中单个应用节点在最小单位时间长度内生成的任两个时间序列值不同,使得单个应用节点在最小单位时间长度内可以为接收多个流水号分配请求,以及生成与这多个流水号分配请求关联的流水号,因此,单个应用节点在最小单位时间长度内就能生成若干多个流水号,使得分布式集群中的后端应用生成流水号的服务具有效率高,可扩展性好的特点。在应用节点所属的分布式集群中任两个应用节点的节点编号不同,可实现同一个分布式集群中的多个应用节点并发执行生成流水号的操作,使得分布式集群环境中生成流水号的服务具有更高的并发处理能力。应用节点生成的流水号可保存为单个LONG类型,流水号的长度仅为8字节,在计算机组成结构、计算机编程语言和数据库中,都对LONG类型有很好的支持,存储和检索都很方便,而且效率高。
进一步地,所述流水号分配请求是来自所述应用节点所在服务器的流水号分配请求,或者是外部服务器发送的流水号分配请求,其中,所述外部服务器与所述应用节点所在的服务器从属于同一个分布式集群。
上述方法流程中,能够实现从属于同一分布式集群中的不同服务器的应用节点所生成的流水号都是唯一的。
进一步地,获取所述应用节点所在服务器的当前系统时间,包括:
通过时间同步服务获取所述应用节点所在服务器的当前系统时间。时间同步服务可以保证在同一个分布式集群中的所有机器的时间是一致的,使得应用节点所在服务器的当前系统时间与同一个分布式集群中的其他服务器的当前系统时间同步。
进一步地,根据所述流水号分配请求,生成与所述流水号分配请求关联的时间序列值,包括:
根据所述流水号分配请求,查找内存中是否存在当前系统时间的时间精度内的计数,若有,则将所述计数标记为与所述流水号分配请求关联的时间序列值,将所述计数自增后保存在内存中;若否,则将初始值标记为与所述流水号分配请求关联的时间序列值,将所述初始值自增后的计数保存在内存中。
该实施方式将自增后的计数保存在内存中,与保存在本地文件中相比,能够提高应用节点生成时间序列值的效率,可以节省存储时间。
进一步地,在所述单个LONG数据结构类型的流水号中,
所述当前系统时间的二进制数存储在所述单个LONG数据结构的高位。将当前系统时间的二进制数存储在单个LONG数据结构的高位,便于检索一段时间长度内的流水号。如果当前系统时间的二进制数存储在单个LONG数据结构的有效存储位数不够用时,可将最高位原来置零的bit也用来存储当前系统时间的二进制数,增加当前系统时间的二进制数的存储长度,进而实现在更长的时间段内生成的流水号都是唯一的。
基于相同的发明构思,本发明实施例还提供一种流水号生成装置,所述装置包括用于根据流水号分配请求执行生成流水号操作的应用节点,所述应用节点包括:
接收单元,用于接收流水号分配请求;
第一获取单元,用于获取所述应用节点的节点编号,其中,在所述应用节点所属的分布式集群中任两个应用节点的节点编号不同;
第二获取单元,用于获取所述应用节点所在服务器的当前系统时间;
第一生成单元,用于根据所述流水号分配请求,生成与所述流水号分配请求关联的时间序列值,其中,所述应用节点在所述当前系统时间的时间精度内生成的任两个时间序列值不同;
第二生成单元,用于对所述节点编号、所述当前系统时间和所述时间序列值的二进制数进行位或运算,生成单个长整型LONG数据结构类型的流水号。
进一步地,所述流水号分配请求是来自所述应用节点所在服务器的流水号分配请求,或者是外部服务器发送的流水号分配请求,其中,所述外部服务器与所述应用节点所在的服务器从属于同一个分布式集群。
进一步地,所述第二获取单元具体用于:
通过时间同步服务获取所述应用节点所在服务器的当前系统时间。
进一步地,所述第一生成单元具体用于:
根据所述流水号分配请求,查找内存中是否存在当前系统时间的时间精度内的计数,若有,则将所述计数标记为与所述流水号分配请求关联的时间序列值,将所述计数自增后保存在内存中;若否,则将初始值标记为与所述流水号分配请求关联的时间序列值,将所述初始值自增后的计数保存在内存中。
进一步地,在所述单个LONG数据结构类型的流水号中,
所述当前系统时间的二进制数存储在所述单个LONG数据结构的高位。
基于相同的发明构思,本发明实施例还提供一种服务器,所述服务器包括M个上述实施例中的流水号生成装置,其中,M为大于或等于1的正整数。单个服务器中包括多个上述实施例中的生成流水号装置,可实现同一个分布式集群中的多个应用节点并发执行生成流水号的操作,使得分布式集群环境中生成流水号的服务具有更高的并发处理能力。
上述实施例中,应用节点根据接收到的流水号分配请求,获取该应用节点的节点编号,以及接收到该流水号分配请求时该应用节点所在服务器的当前系统时间,并生成与该流水号分配请求关联的时间序列值,通过对所述节点编号、所述当前系统时间和所述时间序列值的二进制数进行位或运算,生成单个长整型LONG数据结构类型的流水号,实现了分布式集群中的单个应用节点不依赖外部数据库,单个应用节点自身就可以实时的根据流水号分配请求生成一个流水号,进而解决了依赖单一的数据库获取流水号导致数据库压力过大的问题。进一步的,分布式集群中单个应用节点在最小单位时间长度内生成的任两个时间序列值不同,使得单个应用节点在最小单位时间长度内可以为接收多个流水号分配请求,以及生成与这多个流水号分配请求关联的流水号,因此,上述实施例中的单个应用节点在最小单位时间长度内就能生成若干多个流水号,使得分布式集群中的后端应用生成流水号的服务具有效率高,可扩展性好的特点。上述实施例中,在应用节点所属的分布式集群中任两个应用节点的节点编号不同,可实现同一个分布式集群中的多个应用节点并发执行生成流水号的操作,使得分布式集群环境中生成流水号的服务具有更高的并发处理能力。上述实施例中,应用节点生成的流水号可保存为单个LONG类型,流水号的长度仅为8字节,在计算机组成结构(例如在X64架构中,CPU的单个寄存器就可完整保存LONG值)、计算机编程语言和数据库中,都对LONG类型有很好的支持,存储和检索都很方便,而且效率高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为发明实施例提供的一种流水号生成方法的流程图;
图2为本发明实施例提供的一种分布式集群的结构示意图;
图3为本发明实施例提供的另一种分布式集群的结构示意图;
图4为本发明实施例提供的一种存储为单个LONG类型的流水号的结构示意图;
图5为本发明实施例提供的一种流水号生成装置的结构示意图;
图6为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了实现分布式环境中的后端应用不依赖外部数据库的情况下得到业务处理过程所需要的流水号,以及分布式集群中生成流水号的服务具有更高的并发处理能力,本发明实施例提供了一种流水号生成方法、装置及服务器,该方法可实现分布式集群中任两个应用节点可并行执行生成流水号的操作,且分布式集群中任两个应用节点生成的流水号不同,使得分布式集群中生成流水号的服务具有更高的并发处理能力,而且生成的流水号的数据格式为LONG类型,便于存储和检索。
下面将结合附图对本发明作进一步地详细描述。
如图1所示的本发明实施例提供一种流水号生成方法,该方法包括:
步骤101,接收流水号分配请求;
步骤102,获取接收该流水号分配请求的应用节点的节点编号,其中,在应用节点所属的分布式集群中任两个应用节点的节点编号不同;
步骤103,获取应用节点所在服务器的当前系统时间;
步骤104,根据流水号分配请求,生成与流水号分配请求关联的时间序列值,其中,应用节点在当前系统时间的时间精度内生成的任两个时间序列值不同;
步骤105,对节点编号、当前系统时间和时间序列值的二进制数进行位或运算,生成单个长整型LONG数据结构类型的流水号。
上述方法流程的步骤102至步骤104并不局限于上述时序。
上述方法流程步骤101中,流水号分配请求是来自应用节点所在服务器的流水号分配请求,或者是外部服务器发送的流水号分配请求。当流水号分配请求是外部服务器发送的流水号分配请求时,如果要求外部服务器所请求生成的流水号与该应用节点所在服务器请求生成的流水号不同,则外部服务器与该应用节点所在的服务器从属于同一个分布式集群,能够实现从属于同一分布式集群中的不同服务器的应用节点所生成的流水号都是唯一的。
如果外部服务器所请求生成的流水号与该应用节点所在服务器请求生成的流水号可以相同,则外部服务器与该应用节点所在的服务器可以从属于不同的分布式集群。流水号分配请求可以是用户端触发业务订单生成时所产生的为该业务订单分配流水号的请求。
上述方法流程102中,应用节点是主机、服务器或者终端中的一个功能模块,用于接收流水号分配请求,并根据流水号分配请求执行生成流水号的操作。
流水号是指单一业务的业务编号,本发明上述方法流程的实施中,流水号分配请求中可携带有单一业务的业务标识,应用节点执行流水号生成操作所生成的唯一流水号与该业务标识关联,只要生成的流水号唯一,就能实现每一笔业务具有唯一的业务编号。
上述方法流程中,分布式集群可以有多种构架,分布式集群中可以包含至少一个服务器,服务器中至少包括一个应用节点。比如,如图2所示的分布式集群,在单个主机或单个服务器中部署A个相同功能的应用节点,包括第一应用节点,第二应用节点,…,第A应用节点,其中,A为大于1的正整数,这些应用节点能够并发执行任务,即每个应用节点都能够实时的接收流水号分配请求,并根据流水号分配请求,按照上述方法流程执行生成流水号的操作,这些应用节点构成一个分布式集群。再例如,如图3所示的分布式集群中,B个服务器构成一个分布式集群,包括第一服务器,第二服务器,…,第B服务器,其中,B为大于1的正整数,每一个服务器中都可部署多个具有相同功能的应用节点,每个应用节点都能够实时的接收流水号分配请求,并根据流水号分配请求,按照上述方法流程执行生成流水号的操作。上述方法流程102中,在应用节点所属的分布式集群中任两个应用节点的节点编号不同,无论上述应用节点从属于哪种构架的分布式集群,同一个分布式集群中任两个应用节点的节点编号不同。
上述方法流程102中,获取接收该流水号分配请求的应用节点的节点编号,包括但不限于以下方式:
方式一:访问本地配置数据,获取该应用节点的节点编号;
方式二:调用分布式协调服务器服务,获取应用节点的节点编号。
上述方式一的实施中,本地配置数据包括为每个应用节点分配的节点编号,例如,如果节点编号的二进制数在一个流水号的LONG数据结构中占用10bits,那么为每个应用节点配置的节点编号是0至1023范围内的唯一数值,这保证了在该应用节点所属的分布式集群中任两个应用节点的节点编号不同。分配给每个应用节点的节点编号可以是预先配置好的,也可以是根据步骤101中主机接收到的流水号分配请求,确定为应用节点分配节点编号时所分配的节点编号。本地配置为应用节点分配节点编号可按照递增顺序进行编号。
上述方式二的实施中,通过分布式协调服务器服务来获取应用节点的节点编号,例如,如果节点编号的二进制数在一个流水号的LONG数据结构中占用10bits,那么分布式协调服务器为每个应用节点配置的节点编号是0至1023范围内的唯一数值,这保证了在该应用节点所属的分布式集群中任两个应用节点的节点编号不同。分布式协调器主要通过分布式一致性算法为应用节点提供节点编号,并能保证分布式环境下数据的一致性。在同一个分布式集群中,所有应用节点通过同一个分布式协调器获取节点编号,以使每个应用节点获取到的节点编号在同一个分布式集群中是唯一的,分布式协调器可以位于应用节点所在主机上,也可以位于其他主机上。
除了上述两种方式外,还提供一种可选的实施方式,应用节点也可以通过访问数据库得到该应用节点的节点编号,但这种方式不是最佳的实施方式。可由数据库为每个应用节点分配节点编号,分配给同一分布式集群中的每个应用节点的节点编号是唯一的。数据库分配给每个应用节点的节点编号可以是预先配置好的,也可以是根据步骤101中接收到的流水号分配请求,确定为应用节点分配节点编号时分配给应用节点的。数据库为应用节点分配节点编号可按照递增顺序进行编号。该数据库可以是应用节点所在主机的内部数据库,也可以是与主机相连的外部数据库。
上述方法流程103中,应用节点所在服务器的当前系统时间的时间精度是指当前系统时间的最小单位时间长度,例如秒或者毫秒。应用节点所在服务器的当前系统时间可精确到毫秒或秒。优选的,应用节点通过时间同步服务获取应用节点所在服务器的当前系统时间,所调用的时间同步服务可以保证在同一个分布式集群中的所有机器(主机、终端或服务器)的时间是一致的,应用节点所在服务器的当前系统时间与同一个分布式集群中的其他服务器的当前系统时间同步。同一个分布式集群中的所有应用节点通过同一个时间同步服务获取应用节点所在服务器的当前系统时间。时间同步服务可以位于应用节点所在主机上,也可以位于其他主机上。
应用节点除了通过时间同步服务获取该应用节点所在服务器的当前系统时间,还可通过调用该应用节点所在主机、移动终端或者服务器的主机时间模块,获取该应用节点所在服务器的当前系统时间。例如通过调用应用层的主机时间模块,通过物理层接口获得应用节点所在主机当前精确的系统时间。另外一种可选的实施方式是通过访问数据库,获取该应用节点所在服务器的当前系统时间。
优选的,上述方法流程步骤104中,根据流水号分配请求,查找内存中是否存在当前系统时间的时间精度内的计数,若有,则将计数标记为与流水号分配请求关联的时间序列值,将计数自增后保存在内存中;若否,则将初始值标记为与流水号分配请求关联的时间序列值,将初始值自增后的计数保存在内存中,保存在内存中的还包括当前系统时间的时间精度与自增后的计数的对应关系。具体可以通过自增计数器实现上述方法流程的计数自增操作,上述方法流程中的初始值为自增计数器配置的初始值,自增计数器每次执行计数自增操作后,计数器的计数会被更新,更新为自增后的计数,若自增后的计数达到自增计数器的设定上限值,则将自增计数器的计数更新为初始值。如在应用节点所在服务器的当前系统时间(2015-07-0214:24:20.001)内,应用节点接收到一个流水号分配请求,那么应用节点查找内存中是否存在这一时间戳的计数,若存在这一时间戳的计数为127,则返回计数,将计数标记为与流水号分配请求关联的时间序列值,根据这一时间戳,通过调用自增计数器将返回的计数自增,然后将自增后的计数保存在内存中。该实施方式将自增后的计数保存在内存中,与存储在本地文件相比,能够提高应用节点生成时间序列值的效率,也可以节省存储时间。
在实际应用中,单个应用节点可能在单位时间长度内接收到多个流水号分配请求,此时,单个应用节点每接收一个流水号分配请求,就会在当前时间生成一个与该流水号分配请求对应的时间序列值,而且单个应用节点在单位时间长度内生成的任两个时间序列值不同,其中,单位时间长度与该单个应用节点所在服务器的当前系统时间的时间精度一致。例如,在一个流水号的LONG数据结构中,应用节点所在服务器的当前系统时间的二进制数存储后占用12bits,当前系统时间的时间精度是1毫秒,则单个应用节点可在1毫秒内可生成4096个不同的时间序列值,也就是说,单个应用节点可以在1毫秒内生成4096笔不同业务的流水号。
上述方法流程步骤104的一种可选的实施方式是通过访问本地文件,得到与该流水号分配请求对应的时间序列值。例如,应用节点所在主机的本地文件实时记录了自增计数器每一次执行计数自增操作时的时间精度内的时间戳以及自增后的计数,应用节点接收到流水号分配请求时,根据当前系统时间的时间精度内的时间戳查找内存中是否存在当前系统时间的时间精度内的计数,若有,则将计数标记为与流水号分配请求关联的时间序列值,将计数自增后保存在本地文件中;若否,则将初始值标记为与流水号分配请求关联的时间序列值,将初始值自增后的计数保存在本地文件中。具体通过自增计数器实现上述方法流程的计数自增操作,上述方法流程中初始值为自增计数器配置的初始值。自增计数器每次执行计数自增操作后,计数器的计数会被更新,更新为自增后的计数,若自增后的计数达到自增计数器的设定上限值,则将自增计数器的计数更新为初始值。如果应用节点接收到多个流水号分配请求,可通过多次访问本地文件生成与每一个流水号分配请求关联的时间序列值。
上述方法流程步骤105中,在生成的单个LONG数据结构类型的流水号中,节点编号、当前系统时间和时间序列值的二进制数的在LONG数据结构中的存储可以有多种存储方式,比如时间序列值放在高位,节点编号放在中位,当前系统时间放在低位。节点编号、当前系统时间和时间序列值的二进制数的在LONG数据结构中所占的字节数也可以根据实际使用情况发生变化,比如,对于应用节点数量较多的分布式集群,生成LONG数据结构的流水号时可以按照节点编号所占字节数略多,时间序列值所占字节数略少的策略来存储。
优选的,上述方法流程中,在单个LONG数据结构类型的流水号中,当前系统时间的二进制数存储在单个LONG数据结构的高位。一个LONG数据结构占用8字节,共64位,如果要求生成的流水号为一个正整数,最高位的bit必须为零,因此,去掉个LONG数据结构的高位,还剩63位可以用来存储流水号。如果不要求流水号为正整数,最高位可以使用非0值,即可使用单个LONG数据结构的64位来存储流水号,得到的整个流水号可占用64位。
例如,应用节点所在服务器的当前系统时间是从1970-01-0100:00:00开始,到当前这一刻的毫秒数,当前系统时间的时间精度是1毫秒。如果当前系统时间的二进制数进行位或运算后在单个LONG数据中存储所占用的有效位数是41位,从1970-01-0100:00:00开始到2039-09-0700:00:00之间的毫秒数均能够不重复的存储在LONG数据的41位(如61-22位)中,可以保证69年间的每个毫秒内产生的时间序列值不重复。
如果当前系统时间的二进制数存储在单个LONG数据结构的有效存储位数不够用时,可将最高位原来置零的bit也用来存储当前系统时间的二进制数,增加当前系统时间的二进制数的存储长度,进而实现在更长的时间段内生成的流水号都是唯一的。例如,将LONG数据中当前系统时间的二进制数的有效存储位数设置为42位,可保证从1970-01-0100:00:00开始到2109-05-1500:00:00之间的每个时间精度内产生的时间序列值不重复,使得这139年之间的每个毫秒内产生的时间序列值所对应的流水号都是唯一的。
此外,将当前系统时间的二进制数存储在单个LONG数据结构的高位,还便于检索一段时间长度内的流水号。例如,比如检索某个待检索流水号是否为t1到t2时间段的流水号,本发明实施例提供了两种方案:
第一种:将t1的二进制数左移22位再右移22位得到t1',将t2的二进制数左移22位再右移22位后得到t2',待检索流水号右移22位后与t1'和t2'进行比较,在t1'和t2'范围内都是符合条件的。
第二种:将t1的二进制数左移22位得到t1',将t2的二进制数左移22位后与1111111111111111111111(十进制:4194303)或运算得到t2',待检索流水号在t1'和t2'范围内都是符合条件的。
上述实施例中,通过对节点编号、当前系统时间和时间序列值对应的二进制数执行位或运算得到一个LONG数据格式的流水号,这种基于内存的位运算生成流水号的方案具有速度快的特点。
上述实施例中,应用节点生成一个数据结构为长整型LONG的流水号,因流水号的长度占用8字节,共64位,在计算机组成结构(例如在X64架构中,CPU的单个寄存器就可完整保存LONG值)、计算机编程语言和数据库中,都对LONG类型有很好的。一种根据当前日期和时间、时钟序列、全局唯一的IEEE机器识别号在一台机器上由算法生成的二进制长度为128位的数字标识符,UUID(UniversallyUniqueIdentifier,全局唯一标识))或者GUID(GloballyUniqueIdentifier,全球唯一标识符),可以作为流水号使用,但是UUID或GUID类型的流水号过长,不便于存储、检索。这是因为UUID或者GUID类型的流水号如果采用二进制数组来存储,流水号的长度至少占16个字节,如果采用字符串存储,占用的空间更大。因此,与UUID或GUID类型的流水号相比,本发明的方案生成的数据结构为长整型LONG的流水号更容易存储和检索单个LONG类型的流水号,而且效率高。
下面结合如图4所示的一种LONG类型流水号的存储结构为例,对上述方法流程步骤105中生成并存储流水号的方案进行详细介绍。
如图4所示,在该LONG数据中,当前系统时间的二进制数值占用41位,存储在LONG数据结构的61-22位;节点编号的二进制数值占用10位,存储在LONG数据结构的21-12位;时间序列值的二进制数值占用12位,存储在LONG数据结构的11-0位。
应用节点执行生成流水号操作的待执行任务列表中存储有长整型LONG数据结构,待执行任务列表的单个LONG类型数据结构关联三个子列表,应用节点将步骤103获得的应用节点所在服务器的当前系统时间放入第一子列表中,将步骤102获得的应用节点的节点编号放入第二子列表中,将步骤104生成的与流水号分配请求关联的时间序列值放入第三子列表中。其中,待执行任务列表以及待执行任务列表中的单个LONG类型数据结构关联三个子列表可按照该流水号分配请求或者该流水号分配请求中携带的业务标识进行命名。应用节点确定执行生成流水号操作时,分别提取上述三个子列表中的数值,并对其进行如下的位或运算,生成与流水号分配请求关联的流水号。
具体的,第一步:将第一子列表中的当前系统时间转换成二进制数,并向左移动22位,存储在任务列表中的一个LONG数据结构的61-22位,在LONG中占用41位bits;
例如,节点时间为2015-07-0214:24:20.001,那么转换为二进制为10100111001001101011011111111011000100001,左移22位存储在LONG中的61-22位为:10100111001001101011011111111011000100001,共占用41位bits。
第二步:将第二子列表中的节点编号转换成二进制数,并向左移动12位,存储在上述第一步中LONG数据结构的21-12位,在LONG中占用10位bits;
比如节点编号为10,那么转换为二进制为1010,左移12位后存储在LONG中的21-12位为0000001010,共占用10位bits。
第三步:将第三子列表中的时间序列值转换成二进制数,存储在上述第一步中LONG数据结构的11-0位,在LONG中占用12位bits。
如生成时间序列值为128,转换成二进制为10000000,那么在LONG中的11-0位的序列是000010000000,占用12位bits。
上述三个步骤生成的LONG数据,即为与流水号分配请求关联的流水号,例如,按照上述三步骤生成的LONG类型流水号为:
||0/10100111001001101011011111111011000100001/0000001010/000010000000||。
上述方法流程中,应用节点所在服务器的当前系统时间部分在LONG数据中占用的有效位数是41位,使得单个应用节点在时间上全局唯一,本发明的上述方案可使从1970年到2039年的时间范围内生成的流水号具有唯一性。
上述方法流程中,节点编号部分在LONG数据中占用的有效位数是10位(如在1个LONG中的21-12位),最多可以保存1024个不同值,因此,本发明的上述方案可支持多达1024个应用节点的分布式集群。
上述方法流程中,时间序列值部分在LONG数据中占用的有效位数是12位(如在1个LONG中的11-0位),保证在单位时间精度(秒或者毫秒)内最多可以保存4096个不同值。单个应用节点在1毫秒内,按照上述方法流程最多可以生成4096个不重复的时间序列值。也就是说,在1毫秒内,单个应用节点最多可以支持每秒409.6万笔交易的业务量。
上述方法流程中,可实现同一个分布式集群中的1024个应用节点并列执行生成流水号的操作,而且,单个应用节点在69年间的单位时间长度内的时间序列值是唯一的例如在1毫秒内,单个应用节点能够生成4096个不同的流水号,保证单个应用节点在1毫秒内并行处理4096笔业务。
上述方法流程中,一个LONG类型流水号中,时间序列值的二进制数值存储在低位,因时间序列值一般是通过自增计数器获得,一个机器节点在同一单位时间内生成的时间序列值是递增的,使得总体上生成的流水号按时间(毫秒)递增,以便于对某个时间范围内的流水号进行检索。
按照上述节点编号的二进制数、当前系统时间、时间序列值在LONG数据中存储的实施方式,单个应用节点在1毫秒内可以生成4096个时间序列值,每个时间序列值关联一个唯一的流水号,则单个应用节点在1毫秒内可生成4096个唯一的流水号,那么一个分布式集群中的1024个节点在1毫秒内可以生成4194304个不同的流水号,也就是在1个毫秒内可以支持4194304个业务同时进行。因此,本发明生成流水号的方案可支持大型业务的高并发处理。采用本发明的上述方案,单个应用节点最大可支持409.6万笔/秒的处理能力,1024个节点的集群最大可支持419亿笔/秒的处理能力。以淘宝应用在双十一峰值每秒创建8万笔订单估算,本方案用于此类业务场景都绰绰有余。
上述方法流程中,生成流水的应用节点最多支持1024个,也就是在整个分布式集群部署中,最多包括1024个应用节点用来生成流水号。但是根据本发明的发明构思,在一个分布式集群部署中并不局限于这些应用节点,可以将生成流水号作为一个独立的服务模块,这个独立的服务模块中包含若干多个应用节点用来生成流水号,最多支持1024个应用节点生成流水号,如果分布式集群部署中应用端的节点需要获取流水号时,直接调用这个独立的服务模块即可,其中,应用端的节点并不局限于1024个。
上述实施例中,应用节点根据接收到的流水号分配请求,获取该应用节点的节点编号,以及接收到该流水号分配请求时该应用节点所在服务器的当前系统时间,并生成与该流水号分配请求关联的时间序列值,通过对节点编号、当前系统时间和时间序列值的二进制数进行位或运算,生成单个长整型LONG数据结构类型的流水号,实现了分布式集群中的单个应用节点不依赖外部数据库,单个应用节点自身就可以实时的根据流水号分配请求生成一个流水号,进而解决了依赖单一的数据库获取流水号导致数据库压力过大的问题。进一步的,分布式集群中单个应用节点在最小单位时间长度内生成的任两个时间序列值不同,使得单个应用节点在最小单位时间长度内可以为接收多个流水号分配请求,以及生成与这多个流水号分配请求关联的流水号,因此,上述实施例中的单个应用节点在最小单位时间长度内就能生成若干多个流水号,使得分布式集群中的后端应用生成流水号的服务具有效率高,可扩展性好的特点。上述实施例中,在应用节点所属的分布式集群中任两个应用节点的节点编号不同,可实现同一个分布式集群中的多个应用节点并发执行生成流水号的操作,使得分布式集群环境中生成流水号的服务具有更高的并发处理能力。上述实施例中,应用节点生成的流水号可保存为单个LONG类型,流水号的长度仅为8字节,在计算机组成结构(例如在X64架构中,CPU的单个寄存器就可完整保存LONG值)、计算机编程语言和数据库中,都对LONG类型有很好的支持,存储和检索都很方便,而且效率高。
针对上述方法流程,本发明实施例还提供一种流水号生成装置,这些装置的具体内容可以参照上述方法实施,在此不再赘述。
本发明实施例提供的一种如图5所示的流水号生成装置,该流水号生成装置包括用于根据流水号分配请求执行生成流水号操作的应用节点,应用节点包括:
接收单元501,用于接收流水号分配请求;
第一获取单元502,用于获取应用节点的节点编号,其中,在应用节点所属的分布式集群中任两个应用节点的节点编号不同;
第二获取单元503,用于获取应用节点所在服务器的当前系统时间;
第一生成单元504,用于根据流水号分配请求,生成与流水号分配请求关联的时间序列值,其中,应用节点在当前系统时间的时间精度内生成的任两个时间序列值不同;
第二生成单元505,用于对节点编号、当前系统时间和时间序列值的二进制数进行位或运算,生成单个长整型LONG数据结构类型的流水号。
进一步地,流水号分配请求是来自应用节点所在服务器的流水号分配请求,或者是外部服务器发送的流水号分配请求,其中,外部服务器与应用节点所在的服务器从属于同一个分布式集群。
进一步地,第二获取单元503具体用于:
通过时间同步服务获取应用节点所在服务器的当前系统时间。
进一步地,第一生成单元504具体用于:
根据所述流水号分配请求,查找内存中是否存在当前系统时间的时间精度内的计数,若有,则将所述计数标记为与所述流水号分配请求关联的时间序列值,将所述计数自增后保存在内存中;若否,则将初始值标记为与所述流水号分配请求关联的时间序列值,将所述初始值自增后的计数保存在内存中。
进一步地,在单个LONG数据结构类型的流水号中,当前系统时间的二进制数存储在单个LONG数据结构的高位。
上述实施例中,应用节点根据接收到的流水号分配请求,获取该应用节点的节点编号,以及接收到该流水号分配请求时该应用节点所在服务器的当前系统时间,并生成与该流水号分配请求关联的时间序列值,通过对节点编号、当前系统时间和时间序列值的二进制数进行位或运算,生成单个长整型LONG数据结构类型的流水号,实现了分布式集群中的单个应用节点不依赖外部数据库,单个应用节点自身就可以实时的根据流水号分配请求生成一个流水号,进而解决了依赖单一的数据库获取流水号导致数据库压力过大的问题。进一步的,分布式集群中单个应用节点在最小单位时间长度内生成的任两个时间序列值不同,使得单个应用节点在最小单位时间长度内可以为接收多个流水号分配请求,以及生成与这多个流水号分配请求关联的流水号,因此,上述实施例中的单个应用节点在最小单位时间长度内就能生成若干多个流水号,使得分布式集群中的后端应用生成流水号的服务具有效率高,可扩展性好的特点。上述实施例中,在应用节点所属的分布式集群中任两个应用节点的节点编号不同,可实现同一个分布式集群中的多个应用节点并发执行生成流水号的操作,使得分布式集群环境中生成流水号的服务具有更高的并发处理能力。上述实施例中,应用节点生成的流水号可保存为单个LONG类型,流水号的长度仅为8字节,在计算机组成结构(例如在X64架构中,CPU的单个寄存器就可完整保存LONG值)、计算机编程语言和数据库中,都对LONG类型有很好的支持,存储和检索都很方便,而且效率高。
基于相同的发明构思,本发明实施例还提供一种如图6所示的服务器,包括M个如图5所示的流水号生成装置,其中,M为大于或等于1的正整数。单个服务器中包括多个上述实施例中的生成流水号装置,可实现同一个分布式集群中的多个应用节点并发执行生成流水号的操作,使得分布式集群环境中生成流水号的服务具有更高的并发处理能力。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种流水号生成方法,其特征在于,包括:
接收流水号分配请求;
获取接收该流水号分配请求的应用节点的节点编号,其中,在所述应用节点所属的分布式集群中任两个应用节点的节点编号不同;
获取所述应用节点所在服务器的当前系统时间;
根据所述流水号分配请求,生成与所述流水号分配请求关联的时间序列值,其中,所述应用节点在所述当前系统时间的时间精度内生成的任两个时间序列值不同;
对所述节点编号、所述当前系统时间和所述时间序列值的二进制数进行位或运算,生成单个长整型LONG数据结构类型的流水号。
2.如权利要求1所述的方法,其特征在于,所述流水号分配请求是来自所述应用节点所在服务器的流水号分配请求,或者是外部服务器发送的流水号分配请求,其中,所述外部服务器与所述应用节点所在的服务器从属于同一个分布式集群。
3.如权利要求1所述的方法,其特征在于,获取所述应用节点所在服务器的当前系统时间,包括:
通过时间同步服务获取所述应用节点所在服务器的当前系统时间。
4.如权利要求1所述的方法,其特征在于,根据所述流水号分配请求,生成与所述流水号分配请求关联的时间序列值,包括:
根据所述流水号分配请求,查找内存中是否存在当前系统时间的时间精度内的计数,若有,则将所述计数标记为与所述流水号分配请求关联的时间序列值,将所述计数自增后保存在内存中;若否,则将初始值标记为与所述流水号分配请求关联的时间序列值,将所述初始值自增后的计数保存在内存中。
5.如权利要求1所述的方法,其特征在于,在所述单个LONG数据结构类型的流水号中,
所述当前系统时间的二进制数存储在所述单个LONG数据结构的高位。
6.一种流水号生成装置,其特征在于,所述装置包括用于根据流水号分配请求执行生成流水号操作的应用节点,所述应用节点包括:
接收单元,用于接收流水号分配请求;
第一获取单元,用于获取所述应用节点的节点编号,其中,在所述应用节点所属的分布式集群中任两个应用节点的节点编号不同;
第二获取单元,用于获取所述应用节点所在服务器的当前系统时间;
第一生成单元,用于根据所述流水号分配请求,生成与所述流水号分配请求关联的时间序列值,其中,所述应用节点在所述当前系统时间的时间精度内生成的任两个时间序列值不同;
第二生成单元,用于对所述节点编号、所述当前系统时间和所述时间序列值的二进制数进行位或运算,生成单个长整型LONG数据结构类型的流水号。
7.如权利要求6所述的流水号生成装置,其特征在于,所述流水号分配请求是来自所述应用节点所在服务器的流水号分配请求,或者是外部服务器发送的流水号分配请求,其中,所述外部服务器与所述应用节点所在的服务器从属于同一个分布式集群。
8.如权利要求6所述的流水号生成装置,其特征在于,所述第二获取单元具体用于:
通过时间同步服务获取所述应用节点所在服务器的当前系统时间。
9.如权利要求6所述的流水号生成装置,其特征在于,所述第一生成单元具体用于:
根据所述流水号分配请求,查找内存中是否存在当前系统时间的时间精度内的计数,若有,则将所述计数标记为与所述流水号分配请求关联的时间序列值,将所述计数自增后保存在内存中;若否,则将初始值标记为与所述流水号分配请求关联的时间序列值,将所述初始值自增后的计数保存在内存中。
10.如权利要求6所述的流水号生成装置,其特征在于,在所述单个LONG数据结构类型的流水号中,
所述当前系统时间的二进制数存储在所述单个LONG数据结构的高位。
11.一种服务器,其特征在于,所述服务器包括M个如权利要求6至10所述的流水号生成装置,其中,M为大于或等于1的正整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510424282.2A CN105072160A (zh) | 2015-07-17 | 2015-07-17 | 一种流水号生成方法、装置及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510424282.2A CN105072160A (zh) | 2015-07-17 | 2015-07-17 | 一种流水号生成方法、装置及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105072160A true CN105072160A (zh) | 2015-11-18 |
Family
ID=54501439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510424282.2A Pending CN105072160A (zh) | 2015-07-17 | 2015-07-17 | 一种流水号生成方法、装置及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105072160A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105608208A (zh) * | 2015-12-28 | 2016-05-25 | 上海瀚之友信息技术服务有限公司 | 一种大数据并发存储系统及方法 |
CN106412035A (zh) * | 2016-09-14 | 2017-02-15 | 联动优势电子商务有限公司 | 一种流水号的生成方法及终端 |
CN106657216A (zh) * | 2016-09-19 | 2017-05-10 | 腾讯征信有限公司 | 序列号生成方法和装置 |
CN107045445A (zh) * | 2017-04-18 | 2017-08-15 | 北京思特奇信息技术股份有限公司 | 一种基于java链表生成分布式序列号的轻量级方法及系统 |
CN107622102A (zh) * | 2017-09-11 | 2018-01-23 | 平安科技(深圳)有限公司 | 实体卡号生成方法及终端设备 |
CN109491772A (zh) * | 2018-09-28 | 2019-03-19 | 深圳财富农场互联网金融服务有限公司 | 业务序号生成方法、装置、计算机设备和存储介质 |
CN110245335A (zh) * | 2019-07-15 | 2019-09-17 | 黑龙江蓝智科技有限公司 | 一种时间序列流水号的生成方法及装置 |
CN110619114A (zh) * | 2019-09-26 | 2019-12-27 | 北京明略软件系统有限公司 | 流水号生成方法及系统 |
WO2020019893A1 (zh) * | 2018-07-27 | 2020-01-30 | 阿里巴巴集团控股有限公司 | 一种数据对象标识生成方法及装置 |
CN111225073A (zh) * | 2018-11-26 | 2020-06-02 | 北京京东尚科信息技术有限公司 | 业务编码分配方法及装置、存储介质、计算机系统 |
CN111291424A (zh) * | 2020-02-19 | 2020-06-16 | 望海康信(北京)科技股份公司 | 标识号生成方法、装置、计算机设备及存储介质 |
CN111639936A (zh) * | 2020-05-24 | 2020-09-08 | 中信银行股份有限公司 | 交易信息的获取方法、装置、电子设备及可读存储介质 |
CN112182005A (zh) * | 2020-10-10 | 2021-01-05 | 中国银联股份有限公司 | 一种流水号生成方法及装置 |
CN112445800A (zh) * | 2020-11-20 | 2021-03-05 | 北京思特奇信息技术股份有限公司 | 一种数据流水号的生成方法、系统及电子设备 |
CN112559558A (zh) * | 2020-12-07 | 2021-03-26 | 北京理房通支付科技有限公司 | 一种流水号生成方法和装置、计算设备和存储介质 |
CN112667685A (zh) * | 2020-12-29 | 2021-04-16 | 北京先进数通信息技术股份公司 | 一种流水号配置方法、装置、设备及存储介质 |
US11416313B2 (en) | 2018-01-05 | 2022-08-16 | Beijing Kingsoft Cloud Network Technology Co., Ltd. | Equipment control method, cluster system , electronic device and readable storage medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880705A (zh) * | 2012-09-28 | 2013-01-16 | 用友软件股份有限公司 | 数据库主键生成装置和数据库主键生成方法 |
CN103399945A (zh) * | 2013-08-15 | 2013-11-20 | 成都博云科技有限公司 | 一种基于云计算数据库系统的数据结构 |
CN103823810A (zh) * | 2012-11-19 | 2014-05-28 | 中国电信股份有限公司 | 一种在分布式系统中生成唯一键的方法、装置及系统 |
EP2778984A1 (en) * | 2013-03-15 | 2014-09-17 | Wal-Mart Stores, Inc. | Incrementally updating a large key-value store |
CN104090738A (zh) * | 2014-06-09 | 2014-10-08 | 中国建设银行股份有限公司 | 一种序列号转换方法和装置 |
-
2015
- 2015-07-17 CN CN201510424282.2A patent/CN105072160A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880705A (zh) * | 2012-09-28 | 2013-01-16 | 用友软件股份有限公司 | 数据库主键生成装置和数据库主键生成方法 |
CN103823810A (zh) * | 2012-11-19 | 2014-05-28 | 中国电信股份有限公司 | 一种在分布式系统中生成唯一键的方法、装置及系统 |
EP2778984A1 (en) * | 2013-03-15 | 2014-09-17 | Wal-Mart Stores, Inc. | Incrementally updating a large key-value store |
CN103399945A (zh) * | 2013-08-15 | 2013-11-20 | 成都博云科技有限公司 | 一种基于云计算数据库系统的数据结构 |
CN104090738A (zh) * | 2014-06-09 | 2014-10-08 | 中国建设银行股份有限公司 | 一种序列号转换方法和装置 |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105608208A (zh) * | 2015-12-28 | 2016-05-25 | 上海瀚之友信息技术服务有限公司 | 一种大数据并发存储系统及方法 |
CN105608208B (zh) * | 2015-12-28 | 2019-04-02 | 上海瀚之友信息技术服务有限公司 | 一种大数据并发存储系统及方法 |
CN106412035A (zh) * | 2016-09-14 | 2017-02-15 | 联动优势电子商务有限公司 | 一种流水号的生成方法及终端 |
CN106657216A (zh) * | 2016-09-19 | 2017-05-10 | 腾讯征信有限公司 | 序列号生成方法和装置 |
CN106657216B (zh) * | 2016-09-19 | 2020-07-24 | 腾讯征信有限公司 | 序列号生成方法和装置 |
CN107045445A (zh) * | 2017-04-18 | 2017-08-15 | 北京思特奇信息技术股份有限公司 | 一种基于java链表生成分布式序列号的轻量级方法及系统 |
CN107045445B (zh) * | 2017-04-18 | 2020-09-08 | 北京思特奇信息技术股份有限公司 | 一种基于java链表生成分布式序列号的轻量级方法及系统 |
CN107622102A (zh) * | 2017-09-11 | 2018-01-23 | 平安科技(深圳)有限公司 | 实体卡号生成方法及终端设备 |
CN107622102B (zh) * | 2017-09-11 | 2019-04-19 | 平安科技(深圳)有限公司 | 实体卡号生成方法及终端设备 |
US11416313B2 (en) | 2018-01-05 | 2022-08-16 | Beijing Kingsoft Cloud Network Technology Co., Ltd. | Equipment control method, cluster system , electronic device and readable storage medium |
WO2020019893A1 (zh) * | 2018-07-27 | 2020-01-30 | 阿里巴巴集团控股有限公司 | 一种数据对象标识生成方法及装置 |
CN109491772A (zh) * | 2018-09-28 | 2019-03-19 | 深圳财富农场互联网金融服务有限公司 | 业务序号生成方法、装置、计算机设备和存储介质 |
CN109491772B (zh) * | 2018-09-28 | 2020-10-27 | 深圳财富农场互联网金融服务有限公司 | 业务序号生成方法、装置、计算机设备和存储介质 |
CN111225073A (zh) * | 2018-11-26 | 2020-06-02 | 北京京东尚科信息技术有限公司 | 业务编码分配方法及装置、存储介质、计算机系统 |
CN110245335A (zh) * | 2019-07-15 | 2019-09-17 | 黑龙江蓝智科技有限公司 | 一种时间序列流水号的生成方法及装置 |
CN110619114A (zh) * | 2019-09-26 | 2019-12-27 | 北京明略软件系统有限公司 | 流水号生成方法及系统 |
CN110619114B (zh) * | 2019-09-26 | 2022-10-25 | 北京明略软件系统有限公司 | 流水号生成方法及系统 |
CN111291424A (zh) * | 2020-02-19 | 2020-06-16 | 望海康信(北京)科技股份公司 | 标识号生成方法、装置、计算机设备及存储介质 |
CN111639936A (zh) * | 2020-05-24 | 2020-09-08 | 中信银行股份有限公司 | 交易信息的获取方法、装置、电子设备及可读存储介质 |
CN111639936B (zh) * | 2020-05-24 | 2023-08-25 | 中信银行股份有限公司 | 交易信息的获取方法、装置、电子设备及可读存储介质 |
CN112182005A (zh) * | 2020-10-10 | 2021-01-05 | 中国银联股份有限公司 | 一种流水号生成方法及装置 |
CN112445800A (zh) * | 2020-11-20 | 2021-03-05 | 北京思特奇信息技术股份有限公司 | 一种数据流水号的生成方法、系统及电子设备 |
CN112559558A (zh) * | 2020-12-07 | 2021-03-26 | 北京理房通支付科技有限公司 | 一种流水号生成方法和装置、计算设备和存储介质 |
CN112559558B (zh) * | 2020-12-07 | 2024-04-09 | 北京理房通支付科技有限公司 | 一种流水号生成方法和装置、计算设备和存储介质 |
CN112667685A (zh) * | 2020-12-29 | 2021-04-16 | 北京先进数通信息技术股份公司 | 一种流水号配置方法、装置、设备及存储介质 |
CN112667685B (zh) * | 2020-12-29 | 2024-04-16 | 北京先进数通信息技术股份公司 | 一种流水号配置方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105072160A (zh) | 一种流水号生成方法、装置及服务器 | |
CN109344172B (zh) | 一种高并发数据处理方法、装置及客户端服务器 | |
CN109063196B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN109040337B (zh) | 一种信息查询方法、边缘服务器及信息查询系统 | |
CN111046057B (zh) | 服务器集群的数据处理方法、装置、计算机设备和介质 | |
JP2021500649A (ja) | シャード・データベースのシャード・テーブルにレコードを記憶するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、シャード・データベースのシャード・テーブルからレコードを検索するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、ならびにシャード・データベースを記憶するためのシステム | |
CN106886371B (zh) | 缓存数据处理方法及装置 | |
CN105468720A (zh) | 集成分布式数据处理系统的方法、相应系统及其数据处理方法 | |
TW201800967A (zh) | 分布式流式資料處理的方法和裝置 | |
CN113900810A (zh) | 分布式图处理方法、系统及存储介质 | |
CN110083627B (zh) | 数据处理方法、系统、计算机设备和存储介质 | |
CN111797091A (zh) | 数据库中数据查询的方法、装置、电子设备和存储介质 | |
CN111061680A (zh) | 一种数据检索的方法和装置 | |
CN107844488B (zh) | 数据查询方法和装置 | |
CN113704245A (zh) | 一种数据库主键生成方法、分表定位方法和装置 | |
CN110830567A (zh) | 一种数据传输方法及装置 | |
CN111400301B (zh) | 一种数据查询方法、装置及设备 | |
CN104239376A (zh) | 数据存储方法和装置 | |
JP6233846B2 (ja) | 可変長ノンスの生成 | |
CN110109919B (zh) | 确定逻辑信息的方法和装置 | |
US11947490B2 (en) | Index generation and use with indeterminate ingestion patterns | |
CN112699149B (zh) | 目标数据获取方法、装置和存储介质及电子装置 | |
US10193965B2 (en) | Management server and operation method thereof and server system | |
CN110935168B (zh) | 用于全球同服架构的分布式id生成方法、装置及设备 | |
CN113535781A (zh) | 一种时序库的数据查询方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151118 |
|
RJ01 | Rejection of invention patent application after publication |