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

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

Info

Publication number
CN113254449A
CN113254449A CN202110582513.8A CN202110582513A CN113254449A CN 113254449 A CN113254449 A CN 113254449A CN 202110582513 A CN202110582513 A CN 202110582513A CN 113254449 A CN113254449 A CN 113254449A
Authority
CN
China
Prior art keywords
generation
serial number
service system
character string
distributed cluster
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
CN202110582513.8A
Other languages
English (en)
Other versions
CN113254449B (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.)
Hangzhou Jianjing Technology Co ltd
Shenzhen Lian Intellectual Property Service Center
Original Assignee
Ping An Puhui Enterprise Management 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 Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN202110582513.8A priority Critical patent/CN113254449B/zh
Publication of CN113254449A publication Critical patent/CN113254449A/zh
Application granted granted Critical
Publication of CN113254449B publication Critical patent/CN113254449B/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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种开发辅助技术,揭露了一种ID生成方法、装置、设备及存储介质,ID生成方法包括:在接收到ID生成指令后,基于所述ID生成指令向预定的分布式集群设备发送第一ID生成请求;接收所述分布式集群设备根据所述第一ID生成请求返回的第一字符串,获取第一ID参数,利用所述第一字符串及所述第一ID参数生成调用命令,向所述分布式集群设备发送所述调用命令,所述第一ID参数中包括预设的第一步长;接收所述分布式集群设备根据所述调用命令调用预设的ID生成脚本后得到的基础流水号,获取预设的全局变量,利用所述基础流水号、所述全局变量及所述第一步长批量生成ID。本发明能够在本地快速生成批量的ID,减少网络消耗。

Description

ID生成方法、装置、设备及存储介质
技术领域
本发明涉及开发辅助技术领域,尤其涉及一种ID生成方法、装置、设备及存储介质。
背景技术
随着信息技术的发展,在很多领域都涉及使用ID,例如订单号、商品ID、消息ID等等。通过ID,可以迅速定位到实体,为对象之间建立关联。目前ID生成策略包括单体应用生成ID,这种ID生成策略单体只管理自身生成的ID,但在实际使用中,ID的需求是巨大的,需要大量的单体应用生成ID,这样导致不同单体应用生成的ID可能有冲突,因此为了避免这一缺陷,基于redis递增功能的ID生成策略(使用INCR命令)就应运而生了,基于redis递增功能的ID生成策略每次生成一个ID都需要请求一次redis,导致网络消耗必然十分严重,且生成ID速度慢。
发明内容
本发明的目的在于提供一种ID生成方法、装置、设备及存储介质,旨在实现在本地快速生成批量的ID,避免过于频繁地请求redis造成的网络请求消耗。
本发明提供一种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,避免过于频繁地请求redis造成的网络请求消耗,由于是统一在分布式集群中得到统一基础流水号,因此本地生成的ID不会冲突,此外,本发明直接使用分布式集群的内存进行脚本运算,运算脚本速度快且不需要牺牲太多的性能,操作便捷。
附图说明
图1为本发明各个实施例的应用环境示意图;
图2为本发明应用于业务系统中的ID生成方法一实施例的流程示意图;
图3为本发明应用于分布式集群设备中的ID生成方法一实施例的流程示意图;
图4为本发明ID生成装置一实施例的结构示意图;
图5为本发明ID生成装置另一实施例的结构示意图;
图6为本发明计算机设备一实施例的硬件架构的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参阅图1所示,是本发明各实施例的应用环境示意图。在图1中,包括终端1及分布式集群中的多个设备2,终端1运行有业务系统。终端1接收到在业务系统中触发的ID生成指令后,向分布式集群设备2发送该ID生成指令,分布式集群设备2根据该ID生成指令返回供生成调用命令的字符串给终端1,终端1生成调用命令后,发送给分布式集群设备2,分布式集群设备2根据调用命令调用ID生成脚本,得到基础流水号,终端1根据分布式集群设备2返回的基础流水号来批量生成ID。
本发明提供的ID生成方法,可应用在如图1的应用环境中。其中,终端1可以包括但不限于各种个人计算机、笔记本电脑、平板电脑等,分布式集群设备2可以是计算机、服务器、多个服务器组成的服务器组或者云等。
参阅图2所示,为本发明应用于业务系统的ID生成方法第一实施例的流程示意图,包括:
步骤S101,在接收到ID生成指令后,基于所述ID生成指令向预定的分布式集群设备发送第一ID生成请求;
本实施例中,用户在业务系统中操作,触发ID生成指令,向分布式集群设备发送第一ID生成请求。分布式集群优选为redis集群,redis集群中的资源是共享的,各个业务系统都可以通过分布式集群生成ID,如果单个集群只生成本集群的ID,那么有可能有些业务系统的ID是冲突的,而通过分布式集群可以避免单集群只生成本集群的ID导致的ID冲突问题。
步骤S102,接收所述分布式集群设备根据所述第一ID生成请求返回的第一字符串,获取第一ID参数,利用所述第一字符串及所述第一ID参数生成调用命令,向所述分布式集群设备发送所述调用命令,所述第一ID参数中包括预设的第一步长;
分布式集群设备根据第一ID生成请求返回第一字符串,例如返回的第一字符串为32位字符的sha字符串“1b936e3fe509bcbc9cd0664897bbe8fd0cac101b”,在业务系统中设置第一ID参数,根据第一字符串及第一ID参数生成调用命令,第一ID参数包括ID定位键值、预设的第一步长及最大流水号,ID定位键值用于定位分布式集群中的ID定位键值value,第一步长为ID的长度,最大流水号为业务系统能够接受的最大流水号。调用命令例如为“EVALSHA1b936e3fe509bcbc9cd0664897bbe8fd0cac101b key step maxSeq”,其中,key为ID定位键值,step为第一步长,maxSeq为最大流水号。
业务系统将调用命令发送给分布式集群中的设备,分布式集群设备接收到调用命令后,调用预先加载的ID生成脚本,该ID生成脚本使用预定的脚本语言编写,例如脚本语言为lua。调用该ID生成脚本后,可以生成基础流水号,将生成的基础流水号发送给业务系统。
步骤S103,接收所述分布式集群设备根据所述调用命令调用预设的ID生成脚本后得到的基础流水号,获取预设的全局变量,利用所述基础流水号、所述全局变量及所述第一步长批量生成ID。
其中,业务系统接收到基础流水号后,存储在本地,根据基础流水号、预设的全局变量及第一步长批量生成ID。
上述的步骤S103中利用所述基础流水号、所述全局变量及所述第一步长批量生成ID,包括:
a1,分析所述全局变量是否小于等于所述第一步长;
a2,若所述全局变量小于等于所述第一步长,则将所述全局变量递增后,将递增后的全局变量与所述基础流水号相加得到期望流水号;
a3,利用预定的格式化规则对所述期望流水号进行格式化,生成所述ID,转至所述分析所述全局变量是否小于等于所述第一步长的步骤。
a4,若所述全局变量大于所述第一步长,则向所述分布式集群设备发送重新生成ID的第二ID生成请求;
a5,接收所述分布式集群设备根据所述第二ID生成请求返回的第二字符串,获取第二ID参数,利用所述第二字符串及所述第二ID参数重新生成调用命令,以发送给所述分布式集群设备,所述第二ID参数中包括预设的第二步长,所述第二步长大于所述第一步长。
其中,在业务系统中预设全局递增的全局变量currentStep,在全局变量小于等于第一步长的情况下,每次需要获取ID时,只需要将全局变量currentStep递增1,然后加上获取到的基本流水号,就可以得到本次的期望流水号,全局变量currentStep递增一次得到一个期望流水号,最后在全局变量等于第一步长时得到最后一个期望流水号,由此得到批量的期望流水号。当全局变量currentStep等于第一步长时,说明生成的期望流水号的数量等于第一步长,即第一步长内对应的期望流水号已经使用完。
当全局变量currentStep大于第一步长时,说明第一步长已经不能使用,需要重新设置步长来重新生成ID,设置时,设置本次第二ID参数中的第二步长大于第一步长,重新向分布式集群发送生成ID的第二ID生成请求,使得分布式集群重新生成调用命令来调用ID生成脚本,得到基础流水号,再根据基础流水号及第二步长生成ID。
此外,在得到批量的期望流水号后,由于期望流水号的数量有限,因此,为了扩增ID的数量,可以根据预定的格式化规则对每一期望流水号进行格式化,得到批量的ID,预定的格式化规则可以是:将获取的期望流水号左边补零补齐7位并且在右边拼接上时间戳,可以组成一个20位长度的ID,或者在期望流水号的左边拼接上时间戳在右边补零补齐7位,组成一个20位长度的ID。
与现有技术相比,本实施例利用分布式集群的资源共享性质及分布式集群预设的ID生成脚本,业务系统通过调用命令调用ID生成脚本可以生成基础流水号,在接收到基础流水号后,可以利用基础流水号及设置的第一步长批量生成ID。本实施例只需请求分布式集群一次,就可以在本地快速生成批量的ID,避免过于频繁地请求redis造成的网络请求消耗,由于是统一在分布式集群中得到统一基础流水号,因此本地生成的ID不会冲突,此外,本实施例直接使用分布式集群的内存进行脚本运算,运算脚本速度快且不需要牺牲太多的性能,操作便捷。
参阅图3所示,为本发明应用于分布式集群设备的ID生成方法第一实施例的流程示意图,包括:
步骤S201,接收业务系统发送的第一ID生成请求,基于所述第一ID生成请求生成第一字符串,将所述第一字符串发送给所述业务系统;
分布式集群优选为redis集群,redis集群中的资源是共享的,各个业务系统都可以通过分布式集群生成ID,如果单个集群只生成本集群的ID,那么有可能有些业务系统的ID是冲突的,而通过分布式集群可以避免单集群只生成本集群的ID导致的ID冲突问题。
分布式集群设备在接收到业务系统的第一ID生成请求后,生成第一字符串,例如第一字符串为32位字符的sha字符串1b936e3fe509bcbc9cd0664897bbe8fd0cac101b,供业务系统生成相应的ID生成脚本的调用命令。
其中,在业务系统中设置第一ID参数,根据第一字符串及第一ID参数生成调用命令,第一ID参数包括ID定位键值、预设的第一步长及最大流水号,ID定位键值用于定位分布式集群中的ID定位键值value,第一步长为ID的长度,最大流水号为业务系统能够接受的最大流水号。调用命令例如为“EVALSHA 1b936e3fe509bcbc9cd0664897bbe8fd0cac101b keystep maxSeq”,其中,key为ID定位键值,step为第一步长,maxSeq为最大流水号。
步骤S202,接收所述业务系统发送的调用命令,根据所述调用命令调用预先加载的ID生成脚本,获取调用所述ID生成脚本后得到的基础流水号,所述调用命令为所述业务系统利用所述第一字符串及所述业务系统的第一ID参数生成;
上述步骤202,具体包括:
b1、根据所述ID定位键值获取预存的ID定位值;
b2、将所述ID定位值与所述第一步长相加得到总和,分析所述总和是否大于所述最大流水号;
b3、若所述总和大于所述最大流水号,则将0作为所述基础流水号,并将所述ID定位值重置为所述第一步长;
b4、若所述总和小于等于所述最大流水号,则将所述ID定位值作为所述基础流水号,并将所述ID定位值重置为所述总和。
其中,ID生成脚本使用预定的脚本语言编写,例如脚本语言为lua,ID生成脚本预先加载至分布式集群设备中。调用ID生成脚本实现以下过程:
获取调用命令中的第一ID参数,根据ID定位键值定位预存的ID定位值value,将ID定位值value与第一步长相加得到总和,分析总和是否大于最大流水号,如果大于最大流水号,则将0作为基础流水号返回给业务系统,这样就可以处理流水号过大的问题;如果小于等于最大流水号,则将ID定位值value返回给业务系统,返回给业务系统的基础流水号是可用的流水号。同时,将分布式集群设备中的ID定位值value进行重置,供业务系统下一次需要生成ID时使用。
其中,在分布式集群设备的内存中执行ID生成脚本,速度较快。
步骤S203,将所述基础流水号发送给所述业务系统,供所述业务系统生成ID。
其中,分布式集群设备将基础流水号发送给业务系统后,业务系统将基础流水号存储在本地,业务系统根据基础流水号、预设的全局变量及第一步长批量生成ID。
本实施例利用分布式集群的资源共享性质及分布式集群预设的ID生成脚本,业务系统通过调用命令调用ID生成脚本可以生成基础流水号,在接收到基础流水号后,可以利用基础流水号及设置的第一步长批量生成ID。本实施例只需请求分布式集群一次,就可以在本地快速生成批量的ID,避免过于频繁地请求redis造成的网络请求消耗,由于是统一在分布式集群中得到统一基础流水号,因此本地生成的ID不会冲突,此外,本实施例直接使用分布式集群的内存进行脚本运算,运算脚本速度快且不需要牺牲太多的性能,操作便捷。
本发明还提供应用于分布式集群设备的ID生成方法的其他实施例,在上述实施例的基础上,在上述步骤S203将所述基础流水号发送给所述业务系统的步骤之后,还包括:接收所述业务系统发送的第二ID生成请求,基于所述第二ID生成请求生成第二字符串,将所述第二字符串发送给所述业务系统,供所述业务系统重新生成调用命令。
在业务系统中,如果发现第一步长已经不能使用导致无法生成ID等情况时,可以向分布式集群设备发送重新生成ID的第二ID生成请求,分布式集群设备仍会向业务系统反馈字符串,然后业务系统在设置相应的步长后,生成调用命令,以再次调用分布式集群设备中的ID生成脚本,重新生成ID。
本实施例对于步长不能使用导致无法生成ID等情况,可以在业务系统中重新设置相应的步长,分布式集群设备重新调用ID生成脚本,业务系统仍能在本地快速生成批量的ID,避免过于频繁地请求redis造成的网络请求消耗,运算脚本速度快且不需要牺牲太多的性能,操作便捷。
在一实施例中,本发明提供一种ID生成装置,该ID生成装置与上述图2的实施例中ID生成方法一一对应。如图4所示,该ID生成装置包括:
发送模块101,用于在接收到ID生成指令后,基于所述ID生成指令向预定的分布式集群设备发送第一ID生成请求;
第一生成模块102,用于接收所述分布式集群设备根据所述第一ID生成请求返回的第一字符串,获取第一ID参数,利用所述第一字符串及所述第一ID参数生成调用命令,向所述分布式集群设备发送所述调用命令,所述第一ID参数中包括预设的第一步长;
第二生成模块103,用于接收所述分布式集群设备根据所述调用命令调用预设的ID生成脚本后得到的基础流水号,获取预设的全局变量,利用所述基础流水号、所述全局变量及所述第一步长批量生成ID。
ID生成装置的具体限定可以参见上文中图2中对于ID生成方法的限定,在此不再赘述。上述ID生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一实施例中,本发明提供另一种ID生成装置,该ID生成装置与上述图3的实施例中ID生成方法一一对应。如图5所示,该ID生成装置包括:
生成模块201,用于接收业务系统发送的第一ID生成请求,基于所述第一ID生成请求生成第一字符串,将所述第一字符串发送给所述业务系统;
调用模块202,用于接收所述业务系统发送的调用命令,根据所述调用命令调用预先加载的ID生成脚本,获取调用所述ID生成脚本后得到的基础流水号,所述调用命令为所述业务系统利用所述第一字符串及所述业务系统的第一ID参数生成;
发送模块203,用于将所述基础流水号发送给所述业务系统,供所述业务系统生成ID。
ID生成装置的具体限定可以参见上文中图3中对于ID生成方法的限定,在此不再赘述。上述ID生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。所述计算机设备可以是PC(Personal Computer,个人电脑),或者是智能手机、平板电脑、计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
如图6所示,所述计算机设备可包括,但不仅限于,可通过系统总线相互通信连接的存储器11、处理器12、网络接口13,存储器11存储有可在处理器12上运行的计算机程序。需要指出的是,图6仅示出了具有组件11-13的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
其中,存储器11可以是非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。本实施例中,存储器11的可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如存储本发明一实施例中的计算机程序的程序代码等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片,用于运行所述存储器11中存储的程序代码或者处理数据,例如运行计算机程序等。
所述网络接口13可包括标准的无线网络接口、有线网络接口,该网络接口13通常用于在所述计算机设备与其他电子设备之间建立通信连接。
所述计算机程序存储在存储器11中,包括至少一个存储在存储器11中的计算机可读指令,该至少一个计算机可读指令可被处理器12执行,以实现本申请如图2所述的ID生成方法的步骤,或者实现如图3所述的ID生成方法的步骤。
其中,实现如图2所述的ID生成方法的步骤包括:
在接收到ID生成指令后,基于所述ID生成指令向预定的分布式集群设备发送第一ID生成请求;
接收所述分布式集群设备根据所述第一ID生成请求返回的第一字符串,获取第一ID参数,利用所述第一字符串及所述第一ID参数生成调用命令,向所述分布式集群设备发送所述调用命令,所述第一ID参数中包括预设的第一步长;
接收所述分布式集群设备根据所述调用命令调用预设的ID生成脚本后得到的基础流水号,获取预设的全局变量,利用所述基础流水号、所述全局变量及所述第一步长批量生成ID。
进一步地,所述利用所述基础流水号、所述全局变量及所述第一步长批量生成ID,包括:
分析所述全局变量是否小于等于所述第一步长;
若所述全局变量小于等于所述第一步长,则将所述全局变量递增后,将递增后的全局变量与所述基础流水号相加得到期望流水号;
利用预定的格式化规则对所述期望流水号进行格式化,生成所述ID,转至所述分析所述全局变量是否小于等于所述第一步长的步骤。
进一步地,所述利用所述基础流水号、所述全局变量及所述第一步长批量生成ID,还包括:
若所述全局变量大于所述第一步长,则向所述分布式集群设备发送重新生成ID的第二ID生成请求;
接收所述分布式集群设备根据所述第二ID生成请求返回的第二字符串,获取第二ID参数,利用所述第二字符串及所述第二ID参数重新生成调用命令,以发送给所述分布式集群设备,所述第二ID参数中包括预设的第二步长,所述第二步长大于所述第一步长。
其中,实现如图3所述的ID生成方法的步骤包括:
接收业务系统发送的第一ID生成请求,基于所述第一ID生成请求生成第一字符串,将所述第一字符串发送给所述业务系统;
接收所述业务系统发送的调用命令,根据所述调用命令调用预先加载的ID生成脚本,获取调用所述ID生成脚本后得到的基础流水号,所述调用命令为所述业务系统利用所述第一字符串及所述业务系统的第一ID参数生成;
将所述基础流水号发送给所述业务系统,供所述业务系统生成ID。
进一步地,所述第一ID参数包括ID定位键值、预设的第一步长及最大流水号,所述根据所述调用命令调用预先加载的ID生成脚本,获取调用所述ID生成脚本后得到的基础流水号的步骤,包括:
根据所述ID定位键值获取预存的ID定位值;
将所述ID定位值与所述第一步长相加得到总和,分析所述总和是否大于所述最大流水号;
若所述总和大于所述最大流水号,则将0作为所述基础流水号,并将所述ID定位值重置为所述第一步长;
若所述总和小于等于所述最大流水号,则将所述ID定位值作为所述基础流水号,并将所述ID定位值重置为所述总和。
进一步地,所述将所述基础流水号发送给所述业务系统的步骤之后,还包括:
接收所述业务系统发送的第二ID生成请求,基于所述第二ID生成请求生成第二字符串,将所述第二字符串发送给所述业务系统,供所述业务系统重新生成调用命令。
在一个实施例中,本发明提供了一种计算机可读存储介质,计算机可读存储介质可以是非易失性和/或易失性存储器,其上存储有计算机程序,计算机程序被处理器执行时实现上述如图2实施例中ID生成方法的步骤S101至步骤S103,或者实现上述图3实施例中ID生成方法的步骤S201至步骤S203。或者,计算机程序被处理器执行时实现上述如图4实施例中ID生成装置的各模块/单元的功能,包括模块101至模块103的功能,或者实现上述如图5实施例中ID生成装置的各模块/单元的功能,包括模块201至模块203的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序在执行时,可包括如上述各方法的实施例的流程。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种ID生成方法,应用于业务系统,其特征在于,所述ID生成方法包括:
在接收到ID生成指令后,基于所述ID生成指令向预定的分布式集群设备发送第一ID生成请求;
接收所述分布式集群设备根据所述第一ID生成请求返回的第一字符串,获取第一ID参数,利用所述第一字符串及所述第一ID参数生成调用命令,向所述分布式集群设备发送所述调用命令,所述第一ID参数中包括预设的第一步长;
接收所述分布式集群设备根据所述调用命令调用预设的ID生成脚本后得到的基础流水号,获取预设的全局变量,利用所述基础流水号、所述全局变量及所述第一步长批量生成ID。
2.根据权利要求1所述的ID生成方法,其特征在于,所述利用所述基础流水号、所述全局变量及所述第一步长批量生成ID,包括:
分析所述全局变量是否小于等于所述第一步长;
若所述全局变量小于等于所述第一步长,则将所述全局变量递增后,将递增后的全局变量与所述基础流水号相加得到期望流水号;
利用预定的格式化规则对所述期望流水号进行格式化,生成所述ID,转至所述分析所述全局变量是否小于等于所述第一步长的步骤。
3.根据权利要求2所述的ID生成方法,其特征在于,所述利用所述基础流水号、所述全局变量及所述第一步长批量生成ID,还包括:
若所述全局变量大于所述第一步长,则向所述分布式集群设备发送重新生成ID的第二ID生成请求;
接收所述分布式集群设备根据所述第二ID生成请求返回的第二字符串,获取第二ID参数,利用所述第二字符串及所述第二ID参数重新生成调用命令,以发送给所述分布式集群设备,所述第二ID参数中包括预设的第二步长,所述第二步长大于所述第一步长。
4.一种ID生成方法,应用于分布式集群设备,其特征在于,所述ID生成方法包括:
接收业务系统发送的第一ID生成请求,基于所述第一ID生成请求生成第一字符串,将所述第一字符串发送给所述业务系统;
接收所述业务系统发送的调用命令,根据所述调用命令调用预先加载的ID生成脚本,获取调用所述ID生成脚本后得到的基础流水号,所述调用命令为所述业务系统利用所述第一字符串及所述业务系统的第一ID参数生成;
将所述基础流水号发送给所述业务系统,供所述业务系统生成ID。
5.根据权利要求4所述的ID生成方法,其特征在于,所述第一ID参数包括ID定位键值、预设的第一步长及最大流水号,所述根据所述调用命令调用预先加载的ID生成脚本,获取调用所述ID生成脚本后得到的基础流水号的步骤,包括:
根据所述ID定位键值获取预存的ID定位值;
将所述ID定位值与所述第一步长相加得到总和,分析所述总和是否大于所述最大流水号;
若所述总和大于所述最大流水号,则将0作为所述基础流水号,并将所述ID定位值重置为所述第一步长;
若所述总和小于等于所述最大流水号,则将所述ID定位值作为所述基础流水号,并将所述ID定位值重置为所述总和。
6.根据权利要求4或5所述的ID生成方法,其特征在于,所述将所述基础流水号发送给所述业务系统的步骤之后,还包括:
接收所述业务系统发送的第二ID生成请求,基于所述第二ID生成请求生成第二字符串,将所述第二字符串发送给所述业务系统,供所述业务系统重新生成调用命令。
7.一种ID生成装置,其特征在于,包括:
发送模块,用于在接收到ID生成指令后,基于所述ID生成指令向预定的分布式集群设备发送第一ID生成请求;
第一生成模块,用于接收所述分布式集群设备根据所述第一ID生成请求返回的第一字符串,获取第一ID参数,利用所述第一字符串及所述第一ID参数生成调用命令,向所述分布式集群设备发送所述调用命令,所述第一ID参数中包括预设的第一步长;
第二生成模块,用于接收所述分布式集群设备根据所述调用命令调用预设的ID生成脚本后得到的基础流水号,获取预设的全局变量,利用所述基础流水号、所述全局变量及所述第一步长批量生成ID。
8.一种ID生成装置,其特征在于,包括:
生成模块,用于接收业务系统发送的第一ID生成请求,基于所述第一ID生成请求生成第一字符串,将所述第一字符串发送给所述业务系统;
调用模块,用于接收所述业务系统发送的调用命令,根据所述调用命令调用预先加载的ID生成脚本,获取调用所述ID生成脚本后得到的基础流水号,所述调用命令为所述业务系统利用所述第一字符串及所述业务系统的第一ID参数生成;
发送模块,用于将所述基础流水号发送给所述业务系统,供所述业务系统生成ID。
9.一种计算机设备,所述计算机设备包括存储器及与所述存储器连接的处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3中任一项所述的ID生成方法的步骤,或者实现如权利要求4至6中任一项所述的ID生成方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述的ID生成方法的步骤,或者实现如权利要求4至6中任一项所述的ID生成方法的步骤。
CN202110582513.8A 2021-05-27 2021-05-27 Id生成方法、装置、设备及存储介质 Active CN113254449B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110582513.8A CN113254449B (zh) 2021-05-27 2021-05-27 Id生成方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110582513.8A CN113254449B (zh) 2021-05-27 2021-05-27 Id生成方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113254449A true CN113254449A (zh) 2021-08-13
CN113254449B CN113254449B (zh) 2024-02-09

Family

ID=77184649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110582513.8A Active CN113254449B (zh) 2021-05-27 2021-05-27 Id生成方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113254449B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165216A (zh) * 2018-08-02 2019-01-08 杭州启博科技有限公司 一种Redis分布式数据库主键id的生成方法及系统、存储介质
CN112202938A (zh) * 2020-10-12 2021-01-08 广州品唯软件有限公司 Id生成方法、装置及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165216A (zh) * 2018-08-02 2019-01-08 杭州启博科技有限公司 一种Redis分布式数据库主键id的生成方法及系统、存储介质
CN112202938A (zh) * 2020-10-12 2021-01-08 广州品唯软件有限公司 Id生成方法、装置及系统

Also Published As

Publication number Publication date
CN113254449B (zh) 2024-02-09

Similar Documents

Publication Publication Date Title
CN112637346A (zh) 代理方法、装置、代理服务器及存储介质
CN110555041A (zh) 数据处理方法、装置、计算机设备和存储介质
CN112153170B (zh) 访问服务器的方法、装置、设备及存储介质
CN110955448A (zh) 智能合约分离方法、合约处理方法、装置、设备及介质
CN114281263A (zh) 容器集群管理系统的存储资源处理方法、系统和设备
CN111885184A (zh) 高并发场景下热点访问关键字处理方法和装置
CN115454512A (zh) 一种芯片驱动加载配置方法、装置、设备和存储介质
CN111026988A (zh) 一种页面加载的方法、装置、系统及计算机设备
CN107229655B (zh) 页面静态文件的更新方法、装置及系统
CN112926002A (zh) 一种服务请求的处理方法及装置
CN113254449B (zh) Id生成方法、装置、设备及存储介质
CN113704027B (zh) 文件聚合兼容方法、装置、计算机设备和存储介质
CN113157738B (zh) 堆内数据缓存同步方法、装置、计算机设备及存储介质
CN111177624B (zh) 网站前后端通讯方法、装置、计算机设备和存储介质
CN114356446A (zh) 一种进程间事件的处理方法、装置、设备以及存储介质
CN112783866A (zh) 数据读取方法、装置、计算机设备和存储介质
CN114077458A (zh) 应用程序内业务模块启动方法、装置、设备和存储介质
CN111736869A (zh) 服务端接口的版本更新方法和服务端接口的调用方法
CN112527377A (zh) 应用程序生成处理方法、装置、计算机设备和存储介质
CN112632080A (zh) 基于区块链的数据存储方法、装置及设备
CN111722946A (zh) 分布式事务处理方法、装置、计算机设备及可读存储介质
CN112015478B (zh) 内核加载方法、服务器、设备、计算机设备及存储介质
CN117591248B (zh) 基于容器化虚拟机的终端系统处理方法及电子设备
CN115695454B (zh) 一种mec主机的数据存储方法、装置、设备及存储介质
CN115150392B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240115

Address after: Room 2-6002, Building B, Jiangcun Business Center, No. 830 Wenyi West Road, Xihu District, Hangzhou City, Zhejiang Province, 310000

Applicant after: Hangzhou Jianjing Technology Co.,Ltd.

Address before: 518000 Room 202, block B, aerospace micromotor building, No.7, Langshan No.2 Road, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: Shenzhen LIAN intellectual property service center

Effective date of registration: 20240115

Address after: 518000 Room 202, block B, aerospace micromotor building, No.7, Langshan No.2 Road, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen LIAN intellectual property service center

Address before: 518000 Room 201, building A, 1 front Bay Road, Shenzhen Qianhai cooperation zone, Shenzhen, Guangdong

Applicant before: PING AN PUHUI ENTERPRISE MANAGEMENT Co.,Ltd.

GR01 Patent grant
GR01 Patent grant