CN112328598A - Id生成方法、装置、电子设备及存储介质 - Google Patents

Id生成方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112328598A
CN112328598A CN202011239173.0A CN202011239173A CN112328598A CN 112328598 A CN112328598 A CN 112328598A CN 202011239173 A CN202011239173 A CN 202011239173A CN 112328598 A CN112328598 A CN 112328598A
Authority
CN
China
Prior art keywords
generation
target
service
data
services
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
CN202011239173.0A
Other languages
English (en)
Other versions
CN112328598B (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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202011239173.0A priority Critical patent/CN112328598B/zh
Publication of CN112328598A publication Critical patent/CN112328598A/zh
Application granted granted Critical
Publication of CN112328598B publication Critical patent/CN112328598B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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/2282Tablespace storage structures; 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

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)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开关于一种ID生成方法、装置、电子设备及存储介质。所述方法包括:根据所接收的ID生成请求,从已建立的多个ID生成服务中调用目标ID生成服务;获取目标ID生成服务根据预先配置的ID生成机制所得到的目标数据;获取对目标数据进行加工所对应的关联因子参数;根据目标数据以及关联因子参数,生成全局ID。根据本公开的方案,一方面,通过采用多个ID生成服务,增加了全局ID生成系统的可扩展性,从而能够支持任意并发的ID生成请求;另一方面,通过采用多个ID生成服务,增强了全局ID生成系统的高可用性,避免了单一服务故障导致的整体服务不可用。

Description

ID生成方法、装置、电子设备及存储介质
技术领域
本公开涉及互联网技术领域,尤其涉及一种ID生成方法、装置、电子设备及存储介质。
背景技术
在各类网络业务系统中,往往需要使用全局唯一ID(Identity document,身份标识号)对大量的数据和消息等进行标识。例如,业务系统可以为电商、支付、视频等系统。当业务系统获取新账户的ID生成请求时,响应于该新账户的ID生成请求,为新账户生成新的全局唯一ID。
相关技术中,全局唯一ID可采用数据库自增ID机制。在业务系统接收到ID生成请求后,通过向单数据库的单张数据表插入新的数据,生成全局唯一ID。但是基于单个数据库、单张数据表的自增ID机制,每次只能处理一条ID生成请求,当出现高并发的ID生成请求时,存在响应超时的问题。
发明内容
本公开提供一种ID生成方法、装置、电子设备及存储介质,以至少解决相关技术中采用单数据库、单张数据表的方式生成全局ID存在响应超时的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种ID生成方法,包括:
根据所接收的ID生成请求,从已建立的多个ID生成服务中调用目标ID生成服务;获取所述目标ID生成服务根据预先配置的ID生成机制所得到的目标数据;获取对所述目标数据进行加工所对应的关联因子参数;根据所述目标数据以及所述关联因子参数,生成全局ID。
在其中一个实施例中,所述关联因子参数包括目标ID生成服务对应的目标服务序号,以及所述多个ID生成服务的服务数量;所述根据所述目标数据以及所述关联因子参数,生成全局ID,包括:获取所述目标数据和所述服务数量的乘积,再获取所述乘积与所述目标服务序号之和,将所述和作为所述全局ID。
在其中一个实施例中,所述获取所述目标ID生成服务根据预先配置的ID生成机制所得到的目标数据,包括:获取所述目标ID生成服务在对应的数据库的目标数据表中插入的数据,作为所述目标数据,所述目标ID生成服务对应的数据库中包含多张数据表,所述多张数据表是将已创建的若干数据表均匀划分至所述多个ID生成服务得到的。
在其中一个实施例中,所述获取所述目标ID生成服务根据预先配置的ID生成机制所得到的目标数据,包括:获取所述目标ID生成服务在对应的缓存服务的目标键中插入的键值,作为所述目标数据,所述目标ID生成服务对应的缓存服务中包含多个键,所述多个键是将已创建的若干键均匀划分至所述多个ID生成服务得到的。
在其中一个实施例中,所述目标数据为采用自增方式得到的数据。
在其中一个实施例中,所述从已建立的多个ID生成服务中调用目标ID生成服务,包括:随机从预先建立的所述多个ID生成服务中调用所述目标生成服务。
在其中一个实施例中,所述从已建立的多个ID生成服务中调用目标ID生成服务,包括:通过预先配置的负载均衡策略从所述多个ID生成服务中调用所述目标生成服务。
根据本公开实施例的第二方面,提供一种ID生成装置,包括:
服务调用模块,被配置为执行根据所接收的ID生成请求,从已建立的多个ID生成服务中调用目标ID生成服务;数据生成模块,被配置为执行获取所述目标ID生成服务根据预先配置的ID生成机制所得到的目标数据;获取模块,被配置为执行获取对所述目标数据进行加工所对应的关联因子参数;ID生成模块,被配置为执行根据所述目标数据以及所述关联因子参数,生成全局ID。
在其中一个实施例中,所述关联因子参数包括目标ID生成服务对应的目标服务序号,以及所述多个ID生成服务的服务数量;所述ID生成模块,被配置为执行获取所述目标数据和所述服务数量的乘积,再获取所述乘积与所述目标服务序号之和,将所述和作为所述全局ID。
在其中一个实施例中,所述数据生成模块,被配置为执行获取所述目标ID生成服务在对应的数据库的目标数据表中插入的数据,作为所述目标数据,所述目标ID生成服务对应的数据库中包含多张数据表,所述多张数据表是将已创建的若干数据表均匀划分至所述多个ID生成服务得到的。
在其中一个实施例中,所述数据生成模块,被配置为执行获取所述目标ID生成服务在对应的缓存服务的目标键中插入的键值,作为所述目标数据,所述目标ID生成服务对应的缓存服务中包含多个键,所述多个键是将已创建的若干键均匀划分至所述多个ID生成服务得到的。
在其中一个实施例中,所述目标数据为采用自增方式得到的数据。
在其中一个实施例中,所述服务调用模块,被配置为执行随机从预先建立的所述多个ID生成服务中调用所述目标生成服务。
在其中一个实施例中,所述服务调用模块,被配置为执行通过预先配置的负载均衡策略从所述多个ID生成服务中调用所述目标生成服务。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现第一方面的任一项实施例中所述的ID生成方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行第一方面的任一项实施例中所述的ID生成方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得设备执行第一方面的任一项实施例中所述的ID生成方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
预先建立多个ID生成服务。在接收到ID生成请求后,从已建立的多个ID生成服务中调用目标ID生成服务;通过目标ID生成服务根据预先配置的ID生成机制得到目标数据;获取对目标数据进行加工所对应的关联因子参数;根据预先配置的数据加工方式对目标数据进行加工,生成唯一性的全局ID。一方面,通过采用多个ID生成服务,增加了全局ID生成系统的可扩展性,从而能够支持任意并发的ID生成请求;另一方面,通过采用多个ID生成服务,增强了全局ID生成系统的高可用性,避免了单一服务故障导致的整体服务不可用。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1示出了一种相关技术中生成全局ID的示意图。
图2是根据一示例性实施例示出的一种ID生成方法的应用环境图。
图3是根据一示例性实施例示出的一种ID生成方法的流程图。
图4是根据一示例性实施例示出的一种本公开生成全局ID的示意图。
图5是根据一示例性实施例示出的一种ID生成方法的流程图。
图6是根据一示例性实施例示出的一种ID生成装置的框图。
图7是根据一示例性实施例示出的一种电子设备的内部结构图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
以下对相关技术中生成全局ID的方式进行说明。图1示出了通过单数据库的单张数据表生成全局ID的示意图。其中,应用服务是指发起ID生成请求的服务。针对不同的业务场景,应用服务可以部署在与每个业务场景对应的业务服务器中。当业务服务器接收到ID生成请求后,通过对应的应用服务在已建立的数据库的数据表global_id中插入数据,将所插入的数据作为全局ID。其中,单数据库的单数据表的建立,可以通过如下建表语句实现:
Figure BDA0002767800550000041
Figure BDA0002767800550000051
上述使用单数据库的单数据表获取全局ID的方案,受单个数据库、单张数据表的限制,无法处理高并发的ID生成请求。若数据库发生故障,还会导致业务不可用,从而无法保证高可用。
本公开所提供的ID生成方法,可以应用于如图1所示的应用环境中。其中,终端110通过网络与业务服务器120进行交互,业务服务器120通过网络与ID生成服务器130进行交互。在一个可能性实施例中,业务服务器120和ID生成服务器130可以是相同的服务器,即应用服务和ID生成服务部署在同一个服务器中;也可以是不同的服务器,即,应用服务和ID生成服务分别部署在不同的服务器中。不同的业务服务器120接收到ID生成请求后,向ID生成服务器130发送ID生成请求,以使ID生成服务器130生成全局ID。具体地,终端110获取ID生成请求。ID生成请求可以通过多种业务场景发起。例如,可以是针对新注册用户账户的注册场景、优惠券的发放场景等。终端110向与业务场景对应的业务服务器120发送ID生成请求。与业务场景对应的业务服务器120响应于所接收到的ID生成请求,向ID生成服务器130发送ID生成请求。ID生成服务器130中的预先部署有多个具体相同功能的ID生成服务。ID生成服务器130根据所接收的ID生成请求,从已建立的多个ID生成服务中调用目标ID生成服务;获取目标ID生成服务根据预先配置的ID生成机制所得到的目标数据;获取对目标数据进行加工所对应的关联因子参数;根据目标数据以及关联因子参数,生成全局ID。ID生成服务器130将所生成的全局ID通过业务服务器120发送至终端110。
其中,终端110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。业务服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。ID生成服务器130可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
图3是根据一示例性实施例示出的一种ID生成方法的流程图,如图3所示,ID生成方法用于ID生成服务器中,包括以下步骤。
在步骤S310中,根据所接收的ID生成请求,从已建立的多个ID生成服务中调用目标ID生成服务。
其中,目标ID生成服务是指从多个ID生成服务中选择的ID生成服务。图4示例性示出了本公开ID生成的示意图。图4中的应用服务组可以是部署在至少一个业务服务器中的服务。ID生成服务部署在ID生成服务器中。业务服务器和ID生成服务器可以是同一个服务器,也可以是不同的服务器。具体地,终端获取ID生成请求。终端向与业务场景对应的业务服务器发送ID生成请求,以使业务服务器向ID生成服务器发送ID生成请求。ID生成服务器响应于ID生成请求,根据预先配置的服务调用机制从已建立的多个ID生成服务中调用目标ID生成服务。预先配置的服务调用机制可以依实际的使用需求而定,例如,可以是随机调用、循环调用等。
在步骤S320中,获取目标ID生成服务根据预先配置的ID生成机制所得到的目标数据。
其中,ID生成机制是指得到目标数据的实现方式,例如,可以是数据库MySQL(关系型数据库管理系统)方式、缓存Redis(REmote DIctionary Server,远程字典服务)方式、UUID(Universally Unique Identifier,通用唯一识别码)等。目标数据是指目标ID生成服务通过预先配置的ID生成机制所生成的数据。具体地,预先在ID生成服务器中配置至少一种ID生成机制。在ID生成服务器根据服务调用机制确定目标ID生成服务后,通过目标ID生成服务根据预先配置的ID生成机制得到目标数据。示例性地,ID生成机制为数据库MySQL方式,目标数据可以是目标ID生成服务在对应的数据表中按照预设步长插入的数据。
在步骤S330中,获取对目标数据进行加工所对应的关联因子参数。
在步骤S340中,根据目标数据以及关联因子参数,生成全局ID。
其中,关联因子参数可以是指多个ID生成服务的共性参数。关联因子参数可以通过多次统计分析确定,可以是常量,也可以是变量。本公开中,为了确保全局ID的唯一性,通过引入关联因子参数对目标ID生成服务得到的目标数据进行进一步加工。具体地,在得到目标数据后,ID生成服务器获取预先配置的关联因子参数。通过预设的数据加工方式对目标数据以及关联因子参数加工,将所得到的数据作为全局ID。其中,预设的数据加工方式不限于是加、减、乘、除等运算。
上述ID生成方法中,预先建立多个ID生成服务。在接收到ID生成请求后,从已建立的多个ID生成服务中调用目标ID生成服务;通过目标ID生成服务根据预先配置的ID生成机制得到目标数据;获取对目标数据进行加工所对应的关联因子参数;根据预先配置的数据加工方式对目标数据进行加工,生成唯一性的全局ID。一方面,通过采用多个ID生成服务,增加了全局ID生成系统的可扩展性,从而能够支持任意并发的ID生成请求;另一方面,通过采用多个ID生成服务,增强了全局ID生成系统的高可用性,避免了单一服务故障导致的整体服务不可用。
在一示例性实施例中,关联因子参数包括目标ID生成服务对应的目标服务序号,以及多个ID生成服务的服务数量;在步骤S340中,根据目标数据以及关联因子参数,生成全局ID,包括:获取目标数据和服务数量的乘积,再获取乘积与目标服务序号之和,将和作为全局ID。
其中,服务序号可以是指数字序号。具体地,针对已建立的每个ID生成服务,预先配置对应的唯一性服务序号。在获取目标数据后,ID生成服务器获取目标ID生成服务对应的目标服务序号以及多个ID生成服务的服务数量。计算目标数据和服务数量的乘积,再获取该乘积与目标服务序号之和,将所得到的和作为全局ID。
示例性地,通过目标ID得到目标数据是M。若多个ID生成服务的服务数量为N,目标ID生成服务的目标服务序号为X,可以通过以下公式得到全局ID:G=M*N+X。其中,G为所生成的全局ID。
本实施例中,通过对单个ID生成服务进行进一步加工,可以确保在采用多个ID生成服务处理ID生成请求的情况下,所得到全局ID的唯一性。
在一个实施例中,ID生成机制为数据库MySQL方式。在步骤S320中,获取目标ID生成服务根据预先配置的ID生成机制所得到的目标数据,包括:获取目标ID生成服务在对应的数据库的目标数据表中插入的数据,作为目标数据,目标ID生成服务对应的数据库中包含多张数据表,多张数据表是将已创建的若干数据表均匀划分至多个ID生成服务得到的。
具体地,预先创建若干数据表。例如,创建100张数据表:global_id_1,global_id_2,global_id_3,…,global_id_100。可以通过以下建表语句创建:
Figure BDA0002767800550000081
对于基于数据库MySQL方式的ID生成机制,可以将所创建的若干数据表均匀划分至每个ID生成服务对应的数据库中。例如,若存在10个数据库,所创建的数据表数量为100张,那么可以将数据表1~数据表10划分至数据库1,数据表11~数据20划分至数据库2,依次类推。
数据库MySQL可以通过设置每张数据表的数据起始值和自动增长值确保数据的唯一性。例如,所创建的数据表数量为100张,那么可以将每张数据表的起始值设置依次设置为1,2,3,…,100,自动增长值设置为100。在确定目标ID生成服务后,通过目标ID生成服务在对应的数据库的任一张数据表中按照自动增长值插入数据,得到目标数据。其中,向目标数据表中插入数据可以通过以下程序语言实现:
insert into global_id_[X](stub)VALUES("")//向目标数据表global_id_[X]插入数据
本实施例中,通过基于数据库MySQL方式生成全局ID,使得ID生成服务能够更加稳定地运行;通过采用数据库MySQL方式,实现过程较为简便、易于后期对数据库进行维护。
在一个实施例中,ID生成机制为缓存Redis方式。在步骤S320中,获取目标ID生成服务根据预先配置的ID生成机制所得到的目标数据,包括:获取目标ID生成服务在对应的缓存服务的目标键中插入的键值,作为目标数据,目标ID生成服务对应的缓存服务中包含多个键,多个键是将已创建的若干键均匀划分至多个ID生成服务得到的。
其中,Redis是一个开源的使用C语言编写的基于内存亦可持久化的日志型、key-value(键-值)数据库。Redis提供了多种语言。Redis通常被称为数据结构服务器,因为值可以是string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)。其中,字符串可以是简单的字符串、复杂的字符串(例如JSON,JavaScript Object Notation,JS对象简谱)、数字(整数、浮点数)等。Redis采用了单线程架构和I/O(“Input output system,输入输出系统)多路复用模型来实现高性能的内存数据库服务,执行命令的速度非常快。
具体地,预先创建若干键。例如,创建100个键:globalID1,globalID2,globalID3,…,globalID100。对于基于缓存Redis方式的ID生成机制,可以将所创建的若干键均匀划分至每个ID生成服务对应的缓存服务中。例如,若存在10个缓存服务,所创建的键的数量为100个,那么可以将键1~键10划分至缓存服务1,键11~键20划分至缓存服务2,依次类推。
缓存Redis可以通过设置每个键的起始值和自动增长值确保数据的唯一性。例如,所创建的键的数量为100个,那么可以将每个键的起始值依次设置为1,2,3,…,100,自动增长值设置为100。在确定目标ID生成服务后,通过目标ID生成服务在对应的缓存服务的任一个键中按照自动增长值插入数据,得到目标数据。其中,向目标键中插入数据可以通过以下程序语言实现:
INC globalID[X]//向目标键globalID[X]插入数据
本实施例中,由于Redis的所有数据是存放在内存中的,且Redis使用了单线程架构,预防了多线程可能产生的竞争问题,从而有助于提高全局ID的生成效率。
在一个实施例中,目标数据为采用自增方式得到的数据。
其中,自增是指每处理一次ID生成请求,目标ID服务对应的目标数据自动加1。即,在获取ID生成请求并确定目标ID生成服务后,目标ID生成服务返回比该目标ID生成服务上一次处理ID生成请求加1的目标数据。例如,当前得到的目标数据是M,则该目标ID生成服务下一次处理请求ID生成请求将返回M+1。通过采用自增方式得到目标数据,使ID生成服务可扩展;通过采用预先配置的关联因子参数对目标数据进行加工,在多个ID生成服务采用自增方式的情况下,可以确保能够得到唯一性的全局ID。
在一个实施例中,在步骤S310中,从已建立的多个ID生成服务中调用目标ID生成服务,包括:随机从预先建立的多个ID生成服务中调用目标生成服务。
具体地,终端获取ID生成请求。终端向与业务场景对应的业务服务器发送ID生成请求,以使业务服务器向ID生成服务器发送ID生成请求。ID生成服务器响应于ID生成请求,从已建立的多个ID生成服务中随机调用目标ID生成服务。本实施例中,通过配置随机调用ID生成服务的服务调用机制,通过分散ID生成请求达到均衡的目的,同时不需要配置和维持负载均衡因子,因此实施过程较为简便,且可以加快生成全局ID的速度。
在一个实施例中,在步骤S310中,从已建立的多个ID生成服务中调用目标ID生成服务,包括:通过预先配置的负载均衡策略从多个ID生成服务中调用目标生成服务。
具体地,终端获取ID生成请求。终端向与业务场景对应的业务服务器发送ID生成请求,以使业务服务器向ID生成服务器发送ID生成请求。ID生成服务器响应于ID生成请求,根据预先配置的负载均衡算法从已建立的多个ID生成服务中调用目标ID生成服务。负载均衡算法可以采用静态负载均衡算法和动态负载均衡算法中的任一种。静态负载均衡算法是指以固定的概率分配任务,如轮循、加权轮循等;动态负载均衡算法是指以实时负载状态信息来决定任务的分配,如最小连接法等。
本实施例中,通过采用基于负载均衡算法的服务调用机制,可以优化ID生成请求在多个ID生成服务之间的分配,从而提高了ID生成服务的反应速度与总体性能;通过采用负载均衡算法还可以对ID生成服务的执行情况进行监控,及时发现出现故障的ID生成服务,并将ID生成请求转移至其它正常的ID生成服务上,从而提高了ID生成服务的可靠性。
图5是根据一示例性实施例示出的一种ID生成方法的交互图。ID生成方法应用于ID生成系统中,ID生成系统包括用户终端、业务服务器和ID生成服务器。如图5所示,包括以下步骤。
步骤S501,用户终端将所获取的ID生成请求发送至业务服务器。其中,ID生成请求可以通过多种业务场景发起。例如,可以是针对新注册游戏账户的注册场景,需要为新的游戏账户分配唯一性的全局ID。
步骤S502,ID生成服务器接收业务服务器发送的ID生成请求。
步骤S503,ID生成服务器根据预先配置的服务调用机制,从已建立的多个ID生成服务中调用目标ID生成服务。
其中,服务调用机制可以基于随机调用、负载均衡中的任一种实现。当服务调用机制为随机调用时,则从多个ID生成服务中随机调用目标ID生成服务。当服务调用机制为负载均衡机制时,则根据实际配置的负载均衡算法调用目标ID生成服务。
步骤S504,ID生成服务器通过目标ID生成服务根据预先配置的ID生成机制得到目标数据。
其中,ID生成机制可以是数据库MySQL方式、缓存Redis方式中的任一种。目标数据可以通过自增方式得到。若采用数据库MySQL方式,则可以在目标ID生成服务对应的任一张数据表中按照自增方式插入数据,得到目标数据。若采用缓存Redis方式,则可以在目标ID生成服务对应的任一个键中按照自增方式插入数据,得到目标数据。
步骤S505,ID生成服务器获取对目标数据进行加工的关联因子参数。其中,关联因子参数为多个ID生成服务的服务数量,以及目标ID生成服务的服务序号。
步骤S506,ID生成服务器根据目标数据、多个ID生成服务的服务数量以及目标ID生成服务的服务序号,生成全局ID。
具体地,可以通过以下公式得到全局ID:G=M*N+X。其中,G为所生成的全局ID,M为目标数据,N为多个ID生成服务的服务数量,X为目标ID生成服务的目标服务序号为。
步骤S507,ID生成服务器将全局ID发送至对应的业务服务器。
步骤S508,业务服务器将全局ID发送至用户终端。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
图6是根据一示例性实施例示出的一种ID生成装置600框图。参照图6,该装置包括服务调用模块601、数据生成模块602、获取模块603和ID生成模块604。
服务调用模块601,被配置为执行根据所接收的ID生成请求,从已建立的多个ID生成服务中调用目标ID生成服务;数据生成模块602,被配置为执行获取目标ID生成服务根据预先配置的ID生成机制所得到的目标数据;获取模块603,被配置为执行获取对目标数据进行加工所对应的关联因子参数;ID生成模块604,被配置为执行根据目标数据以及关联因子参数,生成全局ID。
在一个实施例中,关联因子参数包括目标ID生成服务对应的目标服务序号,以及多个ID生成服务的服务数量;ID生成模块604,被配置为执行获取目标数据和服务数量的乘积,再获取乘积与目标服务序号之和,将和作为全局ID。
在一个实施例中,数据生成模块602,被配置为执行获取目标ID生成服务在对应的数据库的目标数据表中插入的数据,作为目标数据,目标ID生成服务对应的数据库中包含多张数据表,多张数据表是将已创建的若干数据表均匀划分至多个ID生成服务得到的。
在一个实施例中,数据生成模块602,被配置为执行获取目标ID生成服务在对应的缓存服务的目标键中插入的键值,作为目标数据,目标ID生成服务对应的缓存服务中包含多个键,多个键是将已创建的若干键均匀划分至多个ID生成服务得到的。
在一个实施例中,目标数据为采用自增方式得到的数据。
在一个实施例中,服务调用模块601,被配置为执行随机从预先建立的多个ID生成服务中调用目标生成服务。
在一个实施例中,服务调用模块601,被配置为执行通过预先配置的负载均衡策略从多个ID生成服务中调用目标生成服务。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种用于生成全局ID的设备600的框图。例如,设备600可以为一服务器。参照图6,设备600包括处理组件620,其进一步包括一个或多个处理器,以及由存储器622所代表的存储器资源,用于存储可由处理组件620的执行的指令,例如应用程序。存储器622中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件620被配置为执行指令,以执行上述ID生成方法。
设备600还可以包括一个电源组件624被配置为执行设备600的电源管理,一个有线或无线网络接口626被配置为将设备600连接到网络,和一个输入输出(I/O)接口628。设备600可以操作基于存储在存储器622的操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD或类似。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器622,上述指令可由设备600的处理器执行以完成上述方法。存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种ID生成方法,其特征在于,包括:
根据所接收的ID生成请求,从已建立的多个ID生成服务中调用目标ID生成服务;
获取所述目标ID生成服务根据预先配置的ID生成机制所得到的目标数据;
获取对所述目标数据进行加工所对应的关联因子参数;
根据所述目标数据以及所述关联因子参数,生成全局ID。
2.根据权利要求1所述的ID生成方法,其特征在于,所述关联因子参数包括目标ID生成服务对应的目标服务序号,以及所述多个ID生成服务的服务数量;
所述根据所述目标数据以及所述关联因子参数,生成全局ID,包括:
获取所述目标数据和所述服务数量的乘积,再获取所述乘积与所述目标服务序号之和,将所述和作为所述全局ID。
3.根据权利要求1所述的ID生成方法,其特征在于,所述获取所述目标ID生成服务根据预先配置的ID生成机制所得到的目标数据,包括:
获取所述目标ID生成服务在对应的数据库的目标数据表中插入的数据,作为所述目标数据;
所述目标ID生成服务对应的数据库中包含多张数据表,所述多张数据表是将已创建的若干数据表均匀划分至所述多个ID生成服务得到的。
4.根据权利要求1所述的ID生成方法,其特征在于,所述获取所述目标ID生成服务根据预先配置的ID生成机制所得到的目标数据,包括:
获取所述目标ID生成服务在对应的缓存服务的目标键中插入的键值,作为所述目标数据,
所述目标ID生成服务对应的缓存服务中包含多个键,所述多个键是将已创建的若干键均匀划分至所述多个ID生成服务得到的。
5.根据权利要求3或4所述的ID生成方法,其特征在于,所述目标数据为采用自增方式得到的数据。
6.根据权利要求1所述的ID生成方法,其特征在于,所述从已建立的多个ID生成服务中调用目标ID生成服务,包括:
随机从预先建立的所述多个ID生成服务中调用所述目标生成服务。
7.根据权利要求1所述的ID生成方法,其特征在于,所述从已建立的多个ID生成服务中调用目标ID生成服务,包括:
通过预先配置的负载均衡策略从所述多个ID生成服务中调用所述目标生成服务。
8.一种ID生成装置,其特征在于,包括:
服务调用模块,被配置为执行根据所接收的ID生成请求,从已建立的多个ID生成服务中调用目标ID生成服务;
数据生成模块,被配置为执行获取所述目标ID生成服务根据预先配置的ID生成机制所得到的目标数据;
获取模块,被配置为执行获取对所述目标数据进行加工所对应的关联因子参数;
ID生成模块,被配置为执行根据所述目标数据以及所述关联因子参数,生成全局ID。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的ID生成方法。
10.一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至7中任一项所述的ID生成方法。
CN202011239173.0A 2020-11-09 2020-11-09 Id生成方法、装置、电子设备及存储介质 Active CN112328598B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011239173.0A CN112328598B (zh) 2020-11-09 2020-11-09 Id生成方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011239173.0A CN112328598B (zh) 2020-11-09 2020-11-09 Id生成方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112328598A true CN112328598A (zh) 2021-02-05
CN112328598B CN112328598B (zh) 2024-01-09

Family

ID=74316472

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011239173.0A Active CN112328598B (zh) 2020-11-09 2020-11-09 Id生成方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112328598B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113204441A (zh) * 2021-05-07 2021-08-03 郑州信大捷安信息技术股份有限公司 一种多应用id生成方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856540B1 (en) * 2010-12-29 2014-10-07 Amazon Technologies, Inc. Customized ID generation
CN106911780A (zh) * 2017-02-28 2017-06-30 北京三快在线科技有限公司 业务id生成方法、装置及系统
CN109376155A (zh) * 2018-11-06 2019-02-22 泰康保险集团股份有限公司 Id生成方法及装置、存储介质及电子设备
CN109936642A (zh) * 2019-01-28 2019-06-25 中国银行股份有限公司 一种分布式系统中生成机器id的方法、装置及系统
CN111126537A (zh) * 2019-12-17 2020-05-08 北京达佳互联信息技术有限公司 标识码id的生成方法及相关产品
CN111163186A (zh) * 2019-12-31 2020-05-15 南京领行科技股份有限公司 一种id生成方法、装置、设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856540B1 (en) * 2010-12-29 2014-10-07 Amazon Technologies, Inc. Customized ID generation
CN106911780A (zh) * 2017-02-28 2017-06-30 北京三快在线科技有限公司 业务id生成方法、装置及系统
CN109376155A (zh) * 2018-11-06 2019-02-22 泰康保险集团股份有限公司 Id生成方法及装置、存储介质及电子设备
CN109936642A (zh) * 2019-01-28 2019-06-25 中国银行股份有限公司 一种分布式系统中生成机器id的方法、装置及系统
CN111126537A (zh) * 2019-12-17 2020-05-08 北京达佳互联信息技术有限公司 标识码id的生成方法及相关产品
CN111163186A (zh) * 2019-12-31 2020-05-15 南京领行科技股份有限公司 一种id生成方法、装置、设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113204441A (zh) * 2021-05-07 2021-08-03 郑州信大捷安信息技术股份有限公司 一种多应用id生成方法及系统
CN113204441B (zh) * 2021-05-07 2022-04-05 郑州信大捷安信息技术股份有限公司 一种多应用id生成方法及系统

Also Published As

Publication number Publication date
CN112328598B (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
US11146502B2 (en) Method and apparatus for allocating resource
CN107402956B (zh) 大任务的数据处理方法、设备和计算机可读存储介质
CN107682391B (zh) 电子装置、服务器分配控制方法和计算机可读存储介质
EP4060496A2 (en) Method, apparatus, device and storage medium for running inference service platform
RU2759330C2 (ru) Отсрочка запросов вызова для удаленных объектов
CN111885184A (zh) 高并发场景下热点访问关键字处理方法和装置
CN114036031B (zh) 一种企业数字中台中资源服务应用的调度系统和方法
CN110764688A (zh) 对数据进行处理的方法和装置
CN112328598B (zh) Id生成方法、装置、电子设备及存储介质
CN109582439B (zh) Dcn部署方法、装置、设备及计算机可读存储介质
CN114979286A (zh) 容器服务的访问控制方法、装置、设备及计算机存储介质
EP3672203A1 (en) Distribution method for distributed data computing, device, server and storage medium
CN113220432B (zh) 多云互联方法、装置、设备、存储介质及产品
CN111400051A (zh) 一种资源调度方法、装置及系统
CN109614242B (zh) 一种计算能力共享方法、装置、设备及介质
CN110245027B (zh) 一种进程间通信的方法和设备
CN108616576B (zh) 一种调度应用服务器的方法和装置
CN114070820B (zh) 一种域名重定向方法、装置、介质及电子设备
CN111124635B (zh) 任务处理方法、装置、电子设备和存储介质
CN111782364A (zh) 服务调用方法、装置、电子设备及存储介质
CN113556370A (zh) 一种服务调用方法和装置
CN112463748A (zh) 一种存储系统文件锁标识方法、系统、终端及存储介质
CN110704026A (zh) 软件开发工具包的调用方法、装置、终端及可读介质
CN113179308B (zh) 服务请求处理方法、装置、电子设备及存储介质
US10303531B2 (en) Console application through web service

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