CN111913956A - 统一业务编码方法及装置 - Google Patents
统一业务编码方法及装置 Download PDFInfo
- Publication number
- CN111913956A CN111913956A CN202010596261.XA CN202010596261A CN111913956A CN 111913956 A CN111913956 A CN 111913956A CN 202010596261 A CN202010596261 A CN 202010596261A CN 111913956 A CN111913956 A CN 111913956A
- Authority
- CN
- China
- Prior art keywords
- coding
- service
- sequence
- instruction
- 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.)
- Pending
Links
Images
Classifications
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- 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]
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种统一业务编码方法及装置,所述方法包括:接收业务应用的业务编码请求,并解析该请求中的编码指令;执行所述编码指令对应的编码方式,包括:若所述编码指令为第一编码指令,进行数字序列编码;若所述编码指令为第二编码指令,进行模板化编码;若所述编码指令为第三编码指令,随机执行所述数字序列编码或模板化编码;所述编码方式封装于PaaS服务中。本发明能够在云端分布式的应用集群中产生全局唯一性、趋势递增和格式化的业务编码。本发明的业务编码能够实现线性扩展,实现方式简单,且性能完全能够支撑大多数业务场景,适用性广。
Description
技术领域
本发明涉及计算机领域,特别涉及一种统一业务编码方法及装置。
背景技术
当前云端应用中比较通用的业务编码ID生成方式主要有两种:UUID和类snowflake方案。UUID(Universally Unique Identifier)的标准型式包含32个16进制数字,以连字号分为五段,形式为8-4-4-4-12。其缺陷在于UUID的36个字符太长,16字节128位,通常以36长度的字符串表示,很多场景不适用,不易存储;基于MAC地址生成UUID的算法可能会造成MAC地址泄露,信息不安全;ID作为主键时在特定的环境会存在一些问题,比如做DB主键的场景下,UUID就非常不适用。类snowflake方案大致来说是一种以划分命名空间来生成ID的一种算法,这种方案把64-bit分别划分成多段,分开来标示机器、时间等。其缺陷在于强依赖机器时钟,如果机器上时钟回拨,会导致发号重复或者服务会处于不可用状态。
发明内容
本发明的目的在于针对上述现有技术存在的问题,提供一种可以在云端分布式的应用集群中产生全局唯一性、趋势递增和格式化的业务编码的方法及装置。
实现本发明目的的技术解决方案为:统一业务编码方法,所述方法包括以下步骤:
接收业务应用的业务编码请求,并解析该请求中的编码指令;
执行所述编码指令对应的编码方式,包括:若所述编码指令为第一编码指令,进行数字序列编码;若所述编码指令为第二编码指令,进行模板化编码;若所述编码指令为第三编码指令,随机执行所述数字序列编码或模板化编码;所述编码方式封装于PaaS服务中。
进一步地,所述数字序列编码的具体过程包括:
构建数据库,具体过程包括:为每个业务应用定义若干数字序列;将每个数字系列划分为多个数字编号段,记为号段;
获取每个数字序列当前被业务应用调用的线程数,若线程数为一,表示只有一个业务应用调用该数字序列,则执行下一步;若线程数大于一,表示有两个及以上业务应用调用该数字序列,随机为该数字序列分配一个业务应用的线程,之后执行下一步;
从所述数字序列中申请一个号段,之后从该号段中逐个申请数字编号发放给业务应用,直至业务编码请求终止;在此过程中,将已申请的数字编号标记为已使用;
在当前申请的号段的数字编号全部发放完之后,标记该号段为已使用,并判断业务应用是否还在发送业务编码请求,若是,则判断业务应用对应的数字序列中是否还存在尚未使用的号段,若存在,则从所述数字序列中继续申请下一个号段,并返回执行上一步;否则,在数据库中为业务应用定义新的数字序列,更新数据库,之后从所述新的数字序列中继续申请下一个号段,并返回执行上一步。
进一步地,所述数字序列为升序排列的序列,支持按时间重置,包括“按年度重置”、“按月份重置”以及“按天重置”;所述按时间重置具体包括:
在所述数据库中设置并存储重置时间,同时实时将各个数字序列中未使用的第一个数字编号标记为最大值,该最大值表示该数字编号为下一次将申请的数字编号;
在每次申请新的数字编号之前,比较当前时间与所述重置时间,若当前时间超出重置时间,则将数字序列中的所有“已使用”标记清除,并将各个数字序列中的所述最大值重置为该数字序列的第一个数字编号,同时记录当前重置时间。
进一步地,所述模板化编码的模板部件包括:静态文本部件、EL表达式部件、参数值部件以及数字序列部件;
所述EL表达式部件来源于第一部件库,该部件库中包括业务应用的各参数信息以及各参数对应的EL表达式;
所述参数值部件来源于第二部件库,该部件库中包括若干键值对”key=value”,value代表参数值。
进一步地,所述模板化编码的具体过程包括:
自定义若干静态文本;
解析所述业务编码请求,获取其携带的若干业务应用参数信息,根据参数信息从所述第一部件库中获取对应的EL表达式;
解析所述业务编码请求,获取其携带的若干个key,根据key从所述第二部件库中获取对应的value;
随机组合所述静态文本、EL表达式以及value,形成若干组初步模板编码;
从所述数据库中业务应用对应的数字序列中申请一个号段,之后从该号段中逐个申请数字编号,将数字编号添加至初步模板编码中形成新的模板编码并发放给业务应用,直至业务编码请求终止;在此过程中将已申请的数字编号标记为已使用;
在当前申请的号段的数字编号全部发放完之后,标记该号段为已使用,并判断业务应用是否还在发送业务编码请求,若是,则判断业务应用对应的数字序列中是否还存在尚未使用的号段,若存在,则从所述数字序列中继续申请下一个号段,并返回执行上一步;否则,为业务应用定义新的数字序列,更新数据库,之后从所述新的数字序列中继续申请下一个号段,并返回执行上一步。
进一步地,在所述形成若干组初步模板编码之后还包括:
解析所述业务编码请求,获取其携带的数字序列部件的长度参数值;
将所述数据库中长度大于所述长度参数值的数字编号剔除;
基于上述过程,在所述将数字编号添加至初步模板编码中形成新的模板编码的过程中,还包括:
判断数字编号的长度是否符合所述长度参数值,若否,则在该数字编号左侧填充0直至符合所述长度参数值。
进一步地,在所述自定义若干静态文本之后还包括:
为每个业务应用构建数据库,具体过程包括:
一一组合任意一个所述静态文本、第一部件库中的EL表达式以及第二部件库中的value,形成多组动态模板编码;
为每组动态模板编码定义若干数字序列;将每个数字系列划分为多个数字编号段,记为号段。
进一步地,在所述将所述数据库中长度大于所述长度参数值的数字编号剔除之前还包括:
判断当前所有初步模板编码是否均存在于所述数据库中,针对不存在的初步模板编码,为其定义若干数字序列,并将该初步模板编码及其对应的若干数字序列添加至数据库中;
在上述过程的基础上:
将所述判断业务应用对应的数字序列中是否还存在尚未使用的号段变换为:判断初步模板编码对应的数字序列中是否还存在尚未使用的号段;
将所述在数据库中为业务应用定义新的数字序列变换为:在数据库中为初步模板编码定义新的数字序列。
统一业务编码装置,所述装置包括封装于PaaS服务中的:
解析模块,用于接收业务应用的业务编码请求,并解析该请求中的编码指令;
编码模块,用于执行所述编码指令对应的编码方式,包括:若所述编码指令为第一编码指令,进行数字序列编码;若所述编码指令为第二编码指令,进行模板化编码;若所述编码指令为第三编码指令,随机执行所述数字序列编码或模板化编码。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收业务应用的业务编码请求,并解析该请求中的编码指令;
执行所述编码指令对应的编码方式,包括:若所述编码指令为第一编码指令,进行数字序列编码;若所述编码指令为第二编码指令,进行模板化编码;若所述编码指令为第三编码指令,随机执行所述数字序列编码或模板化编码;所述编码方式封装于PaaS服务中。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收业务应用的业务编码请求,并解析该请求中的编码指令;
执行所述编码指令对应的编码方式,包括:若所述编码指令为第一编码指令,进行数字序列编码;若所述编码指令为第二编码指令,进行模板化编码;若所述编码指令为第三编码指令,随机执行所述数字序列编码或模板化编码;所述编码方式封装于PaaS服务中。
本发明与现有技术相比,其显著优点为:1)能够实现线性扩展,实现方式简单,且性能完全能够支撑大多数业务场景,适用性广;ID号码是趋势递增的长整型数字,满足数据库存储的主键要求;2)容灾性高:服务内部有号段缓存,即使DB宕机,短时间内仍能正常对外提供服务;3)可以自定义最大编码值的大小,非常方便业务从原有的ID方式上迁移过来;4)第二编码指令支持灵活的编码规则定义方式,应用运行时可以在线调整编码规则;5)不依赖计算机MAC产生编码,杜绝泄露MAC信息的风险;6)不依赖计算机时钟产生编码,时钟回拨对编码序列没有影响。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为一个实施例中业务编码服务应用架构图。
图2为一个实施例中业务编码服务技术架构图。
图3为一个实施例中统一业务编码方法流程图。
图4为一个实施例中编码部件示意图。
图5为一个实施例中动态模板数字序列示意图。
图6为一个实施例中统一业务编码装置结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本发明针对云端分布式应用中业务编码的需求和现状,设计了一种业务编码PaaS服务,可以在云端分布式的应用集群中产生全局唯一性、趋势递增和格式化的业务编码。服务提供数字序列和模板化编码这两种API接口方法,根据开发人员和应用管理员定义的数字序列和编码模板生成编码。服务应用架构、编码服务技术架构分别如图1和图2所示。
在一个实施例中,结合图3,提供了一种统一业务编码方法,该方法包括以下步骤:
步骤S01,接收业务应用的业务编码请求,并解析该请求中的编码指令;
步骤S02,执行所述编码指令对应的编码方式,包括:若所述编码指令为第一编码指令,进行数字序列编码;若所述编码指令为第二编码指令,进行模板化编码;若所述编码指令为第三编码指令,随机执行所述数字序列编码或模板化编码;所述编码方式封装于PaaS服务中。
进一步地,在其中一个实施例中,所述数字序列编码的具体过程包括:
步骤S021-1,构建数据库,具体过程包括:为每个业务应用定义若干数字序列;将每个数字系列划分为多个数字编号段,记为号段;
这里示例性地,假如数字序列为1至3000,可以将该数字序列划分为三个号段,包括第一号段:1至1000,第二号段:1001至2000,第三号段:2001至3000。
这里,业务应用与数字序列的关系可以为一对一、一对多以及多对一。
步骤S021-2,获取每个数字序列当前被业务应用调用的线程数,若线程数为一,表示只有一个业务应用调用该数字序列,则执行下一步;若线程数大于一,表示有两个及以上业务应用调用该数字序列,随机为该数字序列分配一个业务应用的线程,之后执行下一步;
这里,能够确保不会有两个及以上线程同时发放同一数字序列的编号,避免造成发放编号重复。
步骤S021-3,从所述数字序列中申请一个号段,之后从该号段中逐个申请数字编号发放给业务应用,直至业务编码请求终止;在此过程中,将已申请的数字编号标记为已使用;
这里,在号段未用尽时,即可在本地一直产生新号码,降低了数据库数据进出的频次,可以有效提升编码服务性能,同时也方便添加新的服务节点,以提升服务能力。此外,服务内部有号段缓存,即使DB宕机,短时间内仍能正常对外提供服务。
步骤S021-4,在当前申请的号段的数字编号全部发放完之后,标记该号段为已使用,并判断业务应用是否还在发送业务编码请求,若是,则判断业务应用对应的数字序列中是否还存在尚未使用的号段,若存在,则从所述数字序列中继续申请下一个号段,并返回执行上一步;否则,在数据库中为业务应用定义新的数字序列,更新数据库,之后从所述新的数字序列中继续申请下一个号段,并返回执行上一步。
采用本实施例的方案,能够实现线性扩展,方式简单,且性能完全能够支撑大多数业务场景,适用性广。
进一步地,在其中一个实施例中,所述数字序列为利用Leaf-Segment算法生成的长整型数字序列。
采用本实施例的方案,ID号码是趋势递增的8byte的64位数字,满足数据库存储的主键要求。
进一步地,在其中一个实施例中,所述数字序列为升序排列的序列,支持按时间重置,包括“按年度重置”、“按月份重置”以及“按天重置”;所述按时间重置具体包括:
在所述数据库中设置并存储重置时间,同时实时将各个数字序列中未使用的第一个数字编号标记为最大值,该最大值表示该数字编号为下一次将申请的数字编号;
在每次申请新的数字编号之前,比较当前时间与所述重置时间,若当前时间超出重置时间,则将数字序列中的所有“已使用”标记清除,并将各个数字序列中的所述最大值重置为该数字序列的第一个数字编号,同时记录当前重置时间。
这里示例性地,以按年度重置为例,假设某一业务应用对应的数字序列为1至3000,2019年度为该业务应用发放编号至2100,2100个编号均被标记为“已使用”。在2020年度时,可以不从编号2101(当前数字序列最大值)开始发放,而是可以将前2100个编号的“已使用”标记删除,将最大值重新置为1,从编号1重新开始发放,这样便于用户查看管理,同时也能充分利用数据库中的数字序列,不用一直添加新的数字序列,减少了数据库的数据量。
进一步地,在其中一个实施例中,所述模板化编码的模板部件包括:静态文本部件、EL表达式部件、参数值部件以及数字序列部件,如图4所示示例;
所述EL表达式部件来源于第一部件库,该部件库中包括业务应用的各参数信息以及各参数对应的EL表达式;
这里,各参数信息包括业务应用登录的用户信息、部门信息、表单信息、时间信息等等;例如图4所示,部门信息对应的EL表达式为RJB;
所述参数值部件来源于第二部件库,该部件库中包括若干键值对”key=value”,value代表参数值。
进一步地,在其中一个实施例中,所述模板化编码的具体过程包括:
步骤S022-1,自定义若干静态文本;例如图4中所示的“CG-”“-”等等;
步骤S022-2,解析所述业务编码请求,获取其携带的若干业务应用参数信息,根据参数信息从所述第一部件库中获取对应的EL表达式;
步骤S022-3,解析所述业务编码请求,获取其携带的若干个key,根据key从所述第二部件库中获取对应的value;
步骤S022-4,随机组合所述静态文本、EL表达式以及value,形成若干组初步模板编码;
步骤S022-5,从所述数据库中业务应用对应的数字序列中申请一个号段,之后从该号段中逐个申请数字编号,将数字编号添加至初步模板编码中形成新的模板编码并发放给业务应用,直至业务编码请求终止;在此过程中将已申请的数字编号标记为已使用;
步骤S022-6,在当前申请的号段的数字编号全部发放完之后,标记该号段为已使用,并判断业务应用是否还在发送业务编码请求,若是,则判断业务应用对应的数字序列中是否还存在尚未使用的号段,若存在,则从所述数字序列中继续申请下一个号段,并返回执行上一步;否则,为业务应用定义新的数字序列,更新数据库,之后从所述新的数字序列中继续申请下一个号段,并返回执行上一步。
采用本实施例的方案,同样能够实现线性扩展,方式简单,且性能完全能够支撑大多数业务场景,适用性广。
进一步地,在其中一个实施例中,在所述形成若干组初步模板编码之后还包括:
步骤S022-7,解析所述业务编码请求,获取其携带的数字序列部件的长度参数值;
步骤S022-8,将所述数据库中长度大于所述长度参数值的数字编号剔除;
基于上述过程,在所述将数字编号添加至初步模板编码中形成新的模板编码的过程中,还包括:
判断数字编号的长度是否符合所述长度参数值,若否,则在该数字编号左侧填充0直至符合所述长度参数值。
采用本实施例的方案,能够使得模板编码更加规范化。
进一步地,在其中一个实施例中,在所述自定义若干静态文本之后还包括:
步骤S022-9,为每个业务应用构建数据库,具体过程包括:
一一组合任意一个所述静态文本、第一部件库中的EL表达式以及第二部件库中的value,形成多组动态模板编码(如图5所示CG-ZLB、CG-SCB);
为每组动态模板编码定义若干数字序列,如图5所示;将每个数字系列划分为多个数字编号段,记为号段。
采用本实施例的方案,为每一个业务应用的不同参数信息均定义了独特的数据列,使得通过业务编码即可直观地识别出该业务编码代表业务应用的哪个参数信息。
进一步地,在其中一个实施例中,在所述将所述数据库中长度大于所述长度参数值的数字编号剔除之前还包括:
步骤S022-10,判断当前所有初步模板编码是否均存在于所述数据库中,针对不存在的初步模板编码,为其定义若干数字序列,并将该初步模板编码及其对应的若干数字序列添加至数据库中;
在上述过程的基础上:
将所述判断业务应用对应的数字序列中是否还存在尚未使用的号段变换为:判断初步模板编码对应的数字序列中是否还存在尚未使用的号段;
将所述在数据库中为业务应用定义新的数字序列变换为:在数据库中为初步模板编码定义新的数字序列。
采用本实施例的方案,能够实时更新扩充数据库的数据,扩展业务编码的适用性。
在一个实施例中,结合图6,提供了一种统一业务编码装置,所述装置包括封装于PaaS服务中的:
解析模块,用于接收业务应用的业务编码请求,并解析该请求中的编码指令;
编码模块,用于执行所述编码指令对应的编码方式,包括:若所述编码指令为第一编码指令,进行数字序列编码;若所述编码指令为第二编码指令,进行模板化编码;若所述编码指令为第三编码指令,随机执行所述数字序列编码或模板化编码。
进一步地,在其中一个实施例中,所述编码模块包括:
第一编码单元,用于进行数字序列编码;
第二编码单元,用于进行模板化编码。
关于统一业务编码装置的具体限定可以参见上文中对于统一业务编码方法的限定,在此不再赘述。上述统一业务编码装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收业务应用的业务编码请求,并解析该请求中的编码指令;
执行所述编码指令对应的编码方式,包括:若所述编码指令为第一编码指令,进行数字序列编码;若所述编码指令为第二编码指令,进行模板化编码;若所述编码指令为第三编码指令,随机执行所述数字序列编码或模板化编码;所述编码方式封装于PaaS服务中。
关于每一步的具体限定说明可以参见上文中对于统一业务编码方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收业务应用的业务编码请求,并解析该请求中的编码指令;
执行所述编码指令对应的编码方式,包括:若所述编码指令为第一编码指令,进行数字序列编码;若所述编码指令为第二编码指令,进行模板化编码;若所述编码指令为第三编码指令,随机执行所述数字序列编码或模板化编码;所述编码方式封装于PaaS服务中。
关于每一步的具体限定说明可以参见上文中对于统一业务编码方法的限定,在此不再赘述。
本发明针对云端分布式应用中业务编码的需求和现状,设计了一种业务编码PaaS服务,可以在云端分布式的应用集群中产生全局唯一性、趋势递增和格式化的业务编码。本发明能够实现线性扩展,实现方式简单,且性能完全能够支撑大多数业务场景,适用性广。
以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (10)
1.统一业务编码方法,其特征在于,所述方法包括以下步骤:
接收业务应用的业务编码请求,并解析该请求中的编码指令;
执行所述编码指令对应的编码方式,包括:若所述编码指令为第一编码指令,进行数字序列编码;若所述编码指令为第二编码指令,进行模板化编码;若所述编码指令为第三编码指令,随机执行所述数字序列编码或模板化编码;所述编码方式封装于PaaS服务中。
2.根据权利要求1所述的统一业务编码方法,其特征在于,所述数字序列编码的具体过程包括:
构建数据库,具体过程包括:为每个业务应用定义若干数字序列;将每个数字系列划分为多个数字编号段,记为号段;
获取每个数字序列当前被业务应用调用的线程数,若线程数为一,表示只有一个业务应用调用该数字序列,则执行下一步;若线程数大于一,表示有两个及以上业务应用调用该数字序列,随机为该数字序列分配一个业务应用的线程,之后执行下一步;
从所述数字序列中申请一个号段,之后从该号段中逐个申请数字编号发放给业务应用,直至业务编码请求终止;在此过程中,将已申请的数字编号标记为已使用;
在当前申请的号段的数字编号全部发放完之后,标记该号段为已使用,并判断业务应用是否还在发送业务编码请求,若是,则判断业务应用对应的数字序列中是否还存在尚未使用的号段,若存在,则从所述数字序列中继续申请下一个号段,并返回执行上一步;否则,在数据库中为业务应用定义新的数字序列,更新数据库,之后从所述新的数字序列中继续申请下一个号段,并返回执行上一步。
3.根据权利要求2所述的统一业务编码方法,其特征在于,所述数字序列为利用Leaf-Segment算法生成的长整型数字序列。
4.根据权利要求2所述的统一业务编码方法,其特征在于,所述数字序列为升序排列的序列,支持按时间重置,包括“按年度重置”、“按月份重置”以及“按天重置”;所述按时间重置具体包括:
在所述数据库中设置并存储重置时间,同时实时将各个数字序列中未使用的第一个数字编号标记为最大值,该最大值表示该数字编号为下一次将申请的数字编号;
在每次申请新的数字编号之前,比较当前时间与所述重置时间,若当前时间超出重置时间,则将数字序列中的所有“已使用”标记清除,并将各个数字序列中的所述最大值重置为该数字序列的第一个数字编号,同时记录当前重置时间。
5.根据权利要求1或2所述的统一业务编码方法,其特征在于,所述模板化编码的模板部件包括:静态文本部件、EL表达式部件、参数值部件以及数字序列部件;
所述EL表达式部件来源于第一部件库,该部件库中包括业务应用的各参数信息以及各参数对应的EL表达式;
所述参数值部件来源于第二部件库,该部件库中包括若干键值对”key=value”,value代表参数值。
6.根据权利要求5所述的统一业务编码方法,其特征在于,所述模板化编码的具体过程包括:
自定义若干静态文本;
解析所述业务编码请求,获取其携带的若干业务应用参数信息,根据参数信息从所述第一部件库中获取对应的EL表达式;
解析所述业务编码请求,获取其携带的若干个key,根据key从所述第二部件库中获取对应的value;
随机组合所述静态文本、EL表达式以及value,形成若干组初步模板编码;
从所述数据库中业务应用对应的数字序列中申请一个号段,之后从该号段中逐个申请数字编号,将数字编号添加至初步模板编码中形成新的模板编码并发放给业务应用,直至业务编码请求终止;在此过程中将已申请的数字编号标记为已使用;
在当前申请的号段的数字编号全部发放完之后,标记该号段为已使用,并判断业务应用是否还在发送业务编码请求,若是,则判断业务应用对应的数字序列中是否还存在尚未使用的号段,若存在,则从所述数字序列中继续申请下一个号段,并返回执行上一步;否则,为业务应用定义新的数字序列,更新数据库,之后从所述新的数字序列中继续申请下一个号段,并返回执行上一步。
7.根据权利要求6所述的统一业务编码方法,其特征在于,在所述形成若干组初步模板编码之后还包括:
解析所述业务编码请求,获取其携带的数字序列部件的长度参数值;
将所述数据库中长度大于所述长度参数值的数字编号剔除;
基于上述过程,在所述将数字编号添加至初步模板编码中形成新的模板编码的过程中,还包括:
判断数字编号的长度是否符合所述长度参数值,若否,则在该数字编号左侧填充0直至符合所述长度参数值。
8.根据权利要求6或7所述的统一业务编码方法,其特征在于,在所述自定义若干静态文本之后还包括:
为每个业务应用构建数据库,具体过程包括:
一一组合任意一个所述静态文本、第一部件库中的EL表达式以及第二部件库中的value,形成多组动态模板编码;
为每组动态模板编码定义若干数字序列;将每个数字系列划分为多个数字编号段,记为号段。
9.根据权利要求8所述的统一业务编码方法,其特征在于,在所述将所述数据库中长度大于所述长度参数值的数字编号剔除之前还包括:
判断当前所有初步模板编码是否均存在于所述数据库中,针对不存在的初步模板编码,为其定义若干数字序列,并将该初步模板编码及其对应的若干数字序列添加至数据库中;
在上述过程的基础上:
将所述判断业务应用对应的数字序列中是否还存在尚未使用的号段变换为:判断初步模板编码对应的数字序列中是否还存在尚未使用的号段;
将所述在数据库中为业务应用定义新的数字序列变换为:在数据库中为初步模板编码定义新的数字序列。
10.基于权利要求1至9所述的统一业务编码方法的编码装置,其特征在于,所述装置包括封装于PaaS服务中的:
解析模块,用于接收业务应用的业务编码请求,并解析该请求中的编码指令;
编码模块,用于执行所述编码指令对应的编码方式,包括:若所述编码指令为第一编码指令,进行数字序列编码;若所述编码指令为第二编码指令,进行模板化编码;若所述编码指令为第三编码指令,随机执行所述数字序列编码或模板化编码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010596261.XA CN111913956A (zh) | 2020-06-28 | 2020-06-28 | 统一业务编码方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010596261.XA CN111913956A (zh) | 2020-06-28 | 2020-06-28 | 统一业务编码方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111913956A true CN111913956A (zh) | 2020-11-10 |
Family
ID=73227885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010596261.XA Pending CN111913956A (zh) | 2020-06-28 | 2020-06-28 | 统一业务编码方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111913956A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988776A (zh) * | 2021-04-26 | 2021-06-18 | 北京泰迪熊移动科技有限公司 | 文本解析规则的更新方法、装置、设备及可读存储介质 |
CN114970454A (zh) * | 2021-02-20 | 2022-08-30 | 北京同邦卓益科技有限公司 | 一种编码处理方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542340A (zh) * | 2010-12-15 | 2012-07-04 | 金蝶软件(中国)有限公司 | 业务单据批号编码方法和装置 |
CN105991282A (zh) * | 2015-02-09 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 口令生成方法及装置 |
CN106911780A (zh) * | 2017-02-28 | 2017-06-30 | 北京三快在线科技有限公司 | 业务id生成方法、装置及系统 |
CN109165216A (zh) * | 2018-08-02 | 2019-01-08 | 杭州启博科技有限公司 | 一种Redis分布式数据库主键id的生成方法及系统、存储介质 |
CN109388626A (zh) * | 2017-08-04 | 2019-02-26 | 北京京东尚科信息技术有限公司 | 用于向业务分配编号的方法和装置 |
CN109525658A (zh) * | 2018-11-09 | 2019-03-26 | 广州虎牙科技有限公司 | 一种产号方法、服务器、设备、存储介质和业务系统 |
CN111225073A (zh) * | 2018-11-26 | 2020-06-02 | 北京京东尚科信息技术有限公司 | 业务编码分配方法及装置、存储介质、计算机系统 |
-
2020
- 2020-06-28 CN CN202010596261.XA patent/CN111913956A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542340A (zh) * | 2010-12-15 | 2012-07-04 | 金蝶软件(中国)有限公司 | 业务单据批号编码方法和装置 |
CN105991282A (zh) * | 2015-02-09 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 口令生成方法及装置 |
CN106911780A (zh) * | 2017-02-28 | 2017-06-30 | 北京三快在线科技有限公司 | 业务id生成方法、装置及系统 |
CN109388626A (zh) * | 2017-08-04 | 2019-02-26 | 北京京东尚科信息技术有限公司 | 用于向业务分配编号的方法和装置 |
CN109165216A (zh) * | 2018-08-02 | 2019-01-08 | 杭州启博科技有限公司 | 一种Redis分布式数据库主键id的生成方法及系统、存储介质 |
CN109525658A (zh) * | 2018-11-09 | 2019-03-26 | 广州虎牙科技有限公司 | 一种产号方法、服务器、设备、存储介质和业务系统 |
CN111225073A (zh) * | 2018-11-26 | 2020-06-02 | 北京京东尚科信息技术有限公司 | 业务编码分配方法及装置、存储介质、计算机系统 |
Non-Patent Citations (1)
Title |
---|
照东: "Leaf—美团点评分布式ID生成系统", HTTPS://MP.WEIXIN.QQ.COM/S/BK5K6VRG4RQ4ICTMTYDEGQ, pages 1 - 6 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114970454A (zh) * | 2021-02-20 | 2022-08-30 | 北京同邦卓益科技有限公司 | 一种编码处理方法、装置、电子设备及存储介质 |
CN112988776A (zh) * | 2021-04-26 | 2021-06-18 | 北京泰迪熊移动科技有限公司 | 文本解析规则的更新方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840429B (zh) | 智能合约部署、调用方法和装置 | |
CN108959386B (zh) | 分布式全局唯一id生成方法、装置、设备和存储介质 | |
CN110555078A (zh) | 分布式id生成 | |
CN110222048A (zh) | 序列生成方法、装置、计算机设备及存储介质 | |
CN111913956A (zh) | 统一业务编码方法及装置 | |
CN111353275B (zh) | 一种分布式系统唯一标识符及其生成方法 | |
CN111538594A (zh) | 基于分布式系统的订单id生成方法、装置、设备及介质 | |
WO2020000486A1 (zh) | 数据处理方法及装置 | |
CN112685117A (zh) | 系统语言国际化维护方法、装置及计算机可读存储介质 | |
US11150993B2 (en) | Method, apparatus and computer program product for improving inline pattern detection | |
CN112256472B (zh) | 分布式数据调取方法、装置、电子设备及存储介质 | |
CN111901453B (zh) | 一种标识生成方法、装置、计算机设备和存储介质 | |
CN109165712A (zh) | 分布式分期号的生成方法、装置和计算机存储介质 | |
EP3123699A1 (en) | System and method for supporting data type conversion in a heterogeneous computing environment | |
CN115470241A (zh) | 一种基于映射字典表的聚合数据更新方法及装置 | |
CN113132241B (zh) | Acl模板动态配置方法及装置 | |
CN110874210A (zh) | 一种生成自定义自增型唯一单号的方法 | |
CN114205329A (zh) | 一种设备编码方法及装置 | |
CN112487032A (zh) | 数据查询的方法、装置、存储介质及电子设备 | |
CN111930720A (zh) | 数据倾斜的处理方法、系统、电子设备和介质 | |
CN105930521A (zh) | 一种数据库管理装置和方法 | |
CN111737964A (zh) | 表格动态处理方法、设备及介质 | |
CN111752954A (zh) | 一种大规模特征数据存储的方法及装置 | |
CN111026748A (zh) | 网络访问频次管控的数据压缩方法、装置及系统 | |
US11435912B2 (en) | Method, electronic device, and computer program product for data storage |
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 | ||
CB02 | Change of applicant information |
Address after: 222001 No.18 Shenghu Road, Lianyungang City, Jiangsu Province Applicant after: The 716th Research Institute of China Shipbuilding Corp. Applicant after: CSIC Information Technology Co.,Ltd. Address before: 222001 No.18 Shenghu Road, Lianyungang City, Jiangsu Province Applicant before: 716TH RESEARCH INSTITUTE OF CHINA SHIPBUILDING INDUSTRY Corp. Applicant before: CSIC Information Technology Co.,Ltd. |
|
CB02 | Change of applicant information |