数据标识的生成方法、装置、设备及存储介质与流程

文档序号:25992259发布日期:2021-07-23 21:04阅读:88来源:国知局
数据标识的生成方法、装置、设备及存储介质与流程

本发明涉及分布式技术领域,特别是涉及一种数据标识的生成方法、装置、设备及存储介质。



背景技术:

对于存在大量数据的业务,一张表往往无法存储该业务的业务数据。对此,可以对业务数据进行分布式存储:将属于同一业务的数据看作一个完整的业务数据,将该完整的业务数据分割为多个子数据,对各子数据进行分布式存储,得到分布式的业务数据,实现分库分表的效果。这样,就需要生成分布式的业务数据的数据标识,以避免数据混乱引起的业务混乱。

相关技术中,可以基于当前时间、计数器(counter)和硬件标识(通常为无线网卡的mac地址)等数据,生成uuid(国际标准化组织提出的一个128比特的数值)。由于uuid具全球唯一的特点,因此,可以作为分布式的业务数据的数据标识。

但是,uuid是无序的,例如“856f5555806443e98b7ed04c5a9d6a9a”,因此,会造成数据标识的无规律,导致分布式的业务数据的查询效率差。



技术实现要素:

本发明实施例的目的在于提供一种数据标识的生成方法、装置、设备及存储介质,以实现针对分布式的业务数据,生成有规律的数据标识,以提高分布式的业务数据的查询效率的效果。具体技术方案如下:

第一方面,本发明实施例提供一种数据标识的生成方法,应用于标识服务模块,所述方法包括:

在接收到业务模块发送的标识生成请求时,获取所述标识生成请求对应业务的业务标识;

基于所述业务标识,获取所述标识生成请求对应的起始标识以及区间步长;其中,所述起始标识为非负数,所述区间步长为正数;

基于所述起始标识和所述区间步长,获取末尾标识,并将所述末尾标识作为所述业务的下一次标识生成请求对应的起始标识;所述末尾标识大于所述起始标识;

将区间[所述起始标识,所述末尾标识]作为所述业务的本次标识生成请求对应的数据标识发送给所述业务模块,以使得所述业务模块依次使用所述区间中的非负数,逐一标记所述业务的数据,当所述区间中的非负数使用完,且存在待标记的数据时,向所述标识服务模块发送标识生成请求。

可选的,在所述获取所述标识生成请求对应业务的业务标识时,所述方法还包括:

更新所述业务标识对应的标识生成请求的请求次数;

所述区间步长,采用如下步骤设置:

针对每个业务标识,获取该业务标识对应的请求次数;

从预存的请求次数与区间步长的对应关系中,查找所获取的请求次数对应的区间步长,作为该业务标识对应的区间步长。

可选的,所述基于所述业务标识,获取所述标识生成请求对应的起始标识以及区间步长,包括:

从数据库中查找所述业务标识对应的标识规则表;

读取所述标识规则表中的目标字段,得到所述标识生成请求对应的起始标识以及区间步长;其中,所述目标字段为表明起始标识和区间步长的字段;

所述将所述末尾标识作为所述业务的下一次标识生成请求对应的起始标识,包括:

将所述业务标识对应的标识规则表中的起始标识,更新为所述末尾标识。

可选的,所述业务模块将所接收的数据标识存储在第一缓存区域;其中,所述第一缓存区域的占用量小于预设阀值;

所述业务模块依次使用所述区间中的非负数,逐一标记所述业务的数据,包括:

所述业务模块从所述第一缓存区域取出所述区间中的非负数,逐一标记所述业务的数据;

当所述第一缓存区域的占用量等于预设阀值时,所述业务模块将所接收的数据标识存储在第二缓存区域;所述第二缓存区域的占用量为0;

当所述第一缓存区域中的数据标识均被取出,且所述第二缓存区域的占用量等于预设阀值时,所述业务模块将将所接收的数据标识存储在所述第一缓存区域。

可选的,所述在接收到业务模块发送的标识生成请求时,获取所述标识生成请求对应业务的业务标识,包括:

当同一时刻接收到业务模块发送的多个标识生成请求时,对所述多个标识生成请求中的一个进行锁定;

获取被锁定的标识生成请求对应业务的业务标识;

在完成所述被锁定的标识生成请求对应的数据标识的生成时,对所述被锁定的标识生成请求进行解锁,并执行所述对所述多个标识生成请求中的一个进行锁定处理。

第二方面,本发明实施例提供一种数据标识的生成装置,应用于标识服务模块,所述装置包括:

业务标识获取单元,用于在接收到业务模块发送的标识生成请求时,获取所述标识生成请求对应业务的业务标识;

参数获取单元,用于基于所述业务标识,获取所述标识生成请求对应的起始标识以及区间步长;其中,所述起始标识为非负数,所述区间步长为正数;

末尾标识获取单元,用于基于所述起始标识和所述区间步长,获取末尾标识,并将所述末尾标识作为所述业务的下一次标识生成请求对应的起始标识;所述末尾标识大于所述起始标识;

标识生成单元,用于将区间[所述起始标识,所述末尾标识]作为所述业务的本次标识生成请求对应的数据标识发送给所述业务模块,以使得所述业务模块依次使用所述区间中的非负数,逐一标记所述业务的数据,当所述区间中的非负数使用完,且存在待标记的数据时,向所述标识服务模块发送标识生成请求。

可选的,所述装置还包括:次数更新单元,用于:

在所述获取所述标识生成请求对应业务的业务标识时,更新所述业务标识对应的标识生成请求的请求次数;

所述区间步长,采用如下步骤设置:

针对每个业务标识,获取该业务标识对应的请求次数;

从预存的请求次数与区间步长的对应关系中,查找所获取的请求次数对应的区间步长,作为该业务标识对应的区间步长。

可选的,所述参数获取单元,具体用于:

从数据库中查找所述业务标识对应的标识规则表;

读取所述标识规则表中的目标字段,得到所述标识生成请求对应的起始标识以及区间步长;其中,所述目标字段为表明起始标识和区间步长的字段;

将所述业务标识对应的标识规则表中的起始标识,更新为所述末尾标识。

可选的,所述业务模块将所接收的数据标识存储在第一缓存区域;其中,所述第一缓存区域的占用量小于预设阀值;

所述业务模块依次使用所述区间中的非负数,逐一标记所述业务的数据,包括:

所述业务模块从所述第一缓存区域取出所述区间中的非负数,逐一标记所述业务的数据;

当所述第一缓存区域的占用量等于预设阀值时,所述业务模块将所接收的数据标识存储在第二缓存区域;所述第二缓存区域的占用量为0;

当所述第一缓存区域中的数据标识均被取出,且所述第二缓存区域的占用量等于预设阀值时,所述业务模块将将所接收的数据标识存储在所述第一缓存区域。

可选的,所述所述参数获取单元,具体用于:

当同一时刻接收到业务模块发送的多个标识生成请求时,对所述多个标识生成请求中的一个进行锁定;

获取被锁定的标识生成请求对应业务的业务标识;

在完成所述被锁定的标识生成请求对应的数据标识的生成时,对所述被锁定的标识生成请求进行解锁,并执行所述对所述多个标识生成请求中的一个进行锁定处理。

第三方面,本发明实施例提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述第一方面提供的数据标识的生成方法步骤。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的数据标识的生成方法步骤。

本发明实施例有益效果:

本发明实施例提供的方案,起始标识为非负数,区间步长为正数;基于起始标识和所述区间步长,获取业务的末尾标识,并将末尾标识作为业务的下一次标识生成请求对应的起始标识;末尾标识大于起始标识;将区间[起始标识,末尾标识]中的非负数依次作为业务的本次标识生成请求对应的数据标识;业务模块在区间中的非负数使用完,且存在待标记的数据时,向标识服务模块发送标识生成请求。因此,可以保证针对每个业务,该业务的数据标识在该业务全局递增或者趋势递增,实现该业务的数据标识规律化和有序化,从而利用数据标识进行业务查询时,可以提高分分布式的业务数据的查询效率。并且,将区间[起始标识,末尾标识]中的非负数依次作为业务的本次标识生成请求对应的数据标识,实现对数据标识的批量生成,与生成单个数据标识相比,可以减少标识生成请求的次数,减少高并发造成的性能下降。可见,本方案可以针对分布式的业务数据,生成有规律的数据标识,以提高分布式的业务数据的查询效率,并且,可以减少标识生成请求高并发造成的性能下降。

当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为本发明一实施例提供的一种数据标识的生成方法的流程示意图;

图2为本发明一实施例提供的一种数据标识的生成方法的一种应用场景示意图;

图3为本发明一实施例提供的一种数据标识的生成装置的结构示意图;

图4为本发明一实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。

分库分表就是按照一定的规则,对原有的数据库和表进行拆分,把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。因此,对于存在大量数据的业务,将属于同一业务的数据看作一个完整的业务数据,将该完整的业务数据分割为多个子数据,对各子数据进行分布式存储,得到分布式的业务数据,就可以实现分库分表的效果。

为了针对分布式的业务数据,生成有规律的数据标识,以提高分布式的业务数据的查询效率,本发明实施例提供一种数据标识的生成方法。在具体应用中,该数据标识的生成方法可以应用于标识服务模块,为业务模块生成数据标识。其中,标识服务模块与业务模块可以同属于数据库,或者,标识服务模块可以属于用于生成数据标识的电子设备,业务模块可以属于用于数据存储的电子设备。示例性的,上述数据库和电子设备具体可以为台式计算机、便携式计算机、移动终端、互联网电视以及服务器等等。

下面对本发明实施例提供一种数据标识的生成方法进行介绍。

如图1所示,本发明实施例提供的一种数据标识的生成方法,该方法具体可以包括如下步骤:

s101,在接收到业务模块发送的标识生成请求时,获取标识生成请求对应业务的业务标识。

在具体应用中,获取标识生成请求对应业务的业务标识具可以是多种的。示例性的,当标识生成请求中携带有业务标识时,可以读取标识生成请求中的业务标识,得到标识生成请求对应业务的业务标识。或者,示例性的,当标识生成请求与业务标识分别发送时,可以在接收到标识生成请求时,将接收时间与所接收的标识生成请求的接收时间差异小于延迟阀值的业务标识,作为与所接收的标识生成请求对应业务的业务标识。

s102,基于业务标识,获取标识生成请求对应的起始标识以及区间步长。

其中,起始标识为非负数,区间步长为正数。

在具体应用中,基于业务标识,获取标识生成请求对应的起始标识以及区间步长的方式,可以是多种的。示例性的,可以从数据库中查找业务标识对应的标识规则表,读取标识规则表中的起始标识和区间步长。或者,直接读取业务模块所属电子设备本地存储的业务标识对应的起始标识和区间步长。

为了便于理解和合理布局,后续以可选实施例的形式对第一种示例性情况进行具体说明。

s103,基于起始标识和区间步长,获取末尾标识,并将末尾标识作为业务的下一次标识生成请求对应的起始标识。

其中,末尾标识大于起始标识。

在具体应用中,基于起始标识和区间步长,获取末尾标识的方式可以是多种的。示例性的,可以计算起始标识和区间步长之间的和,作为末尾标识。或者,计算启示标识与区间步长之间的乘积,作为末尾标识。

s104,将区间[起始标识,末尾标识]作为业务的本次标识生成请求对应的数据标识发送给业务模块,以使得业务模块依次使用区间中的非负数,逐一标记业务的数据,当区间中的非负数使用完,且存在待标记的数据时,向标识服务模块发送标识生成请求。

在具体应用中,区间[起始标识,末尾标识]中的非负数作为标记数据的数据标识时,可以递增或者趋势递增的。例如,区间为[0,1000]时,将非负数0,1,2,……,1000作为数据标识,或者,将非负数0,2,4,6,……,1000作为数据标识,这都是合理的。并且,一个非负数标记一个数据。

本发明实施例提供的方案,可以保证针对每个业务,该业务的数据标识在该业务全局递增或者趋势递增,实现该业务的数据标识规律化和有序化,从而利用数据标识进行业务查询时,可以提高分分布式的业务数据的查询效率。并且,将区间[起始标识,末尾标识]中的非负数依次作为业务的本次标识生成请求对应的数据标识,实现对数据标识的批量生成,与生成单个数据标识相比,可以减少标识生成请求的次数,减少高并发造成的性能下降。可见,本方案可以针对分布式的业务数据,生成有规律的数据标识,以提高分布式的业务数据的查询效率,并且,可以减少标识生成请求高并发造成的性能下降。

在一种可选的实施方式中,在上述获取标识生成请求对应业务的业务标识时,本发明实施例提供的数据标识的生成方法还可以包括如下步骤:

更新业务标识对应的标识生成请求的请求次数;

相应的,区间步长,采用如下步骤设置:

针对每个业务标识,获取该业务标识对应的请求次数;

从预存的请求次数与区间步长的对应关系中,查找所获取的请求次数对应的区间步长,作为该业务标识对应的区间步长。

在具体应用中,可以通过本可选实施例对不同的业务设置不同的区间步长。示例性的,请求次数越大,区间步长越大。越大的区间步长可以保证后续基于区间步长和起始标识获取的区间跨度越大,包含更多的数据标识,从而减少该业务的请求次数,降低并发压力。例如,请求次数为10时区间步长为1000,请求次数为50时,区间步长为5000。

另外,上述请求次数具体可以是距当前时刻预定时长内记录的请求次数。例如,与当前时刻相距30分钟内记录的请求次数,以提高区间步长与业务实际请求情况的适配度,更加准确地减少并行压力。

在一种可选的实施方式中,上述基于业务标识,获取标识生成请求对应的起始标识以及区间步长,具体可以包括如下步骤:

从数据库中查找业务标识对应的标识规则表;

读取标识规则表中的目标字段,得到标识生成请求对应的起始标识以及区间步长;其中,目标字段为表明起始标识和区间步长的字段;

相应的,上述将末尾标识作为业务的下一次标识生成请求对应的起始标识,具体可以包括如下步骤:

将业务标识对应的标识规则表中的起始标识,更新为末尾标识。

在具体应用中,对于任一业务,可以预先为该业务构建标识规则表,标识规则表该标识规则表中记录有表明起始标识和区间步长的字段。此时,标识规则表中的起始标识为初始值。这样,对于任一业务,该业务第一次请求数据标识时,起始标识为标识规则表中的初始值,第二次以及后续请求数据标识时,起始标识均为利用上一次的末尾标识更新得到的标识,实现同一业务的数据标识全局规律化。

并且,通过本可选实施例,可以在标识规则表中自定义起始标识,以及业务名称也就是业务标识,有利于扩容:自定义起始标识可以保证数据标识的生成与业务的数据量相适配,实现针对数据量的扩容;自定义业务名称可以保证本发明实施例提供的数据标识的生成方法适用于任何业务,对于不同业务,在标识规则表中定义不同的业务名称即可,实现针对业务类型的扩容。例如,会员订单业务、广告订单业务、视频存储业务以及用户注册业务等均适用本发明实施例提供的方案。并且,接入简单,在业务对应的标识规则表中添加上述自定义字段即可。例如:业务为会员订单时,表明业务名称的字段为“biz:fans-member”,表明起始标识的字段为“maxid:100001”,表明区间步长的字段为“step:1000”。

示例性的,对于订单业务,用户下一笔订单时,生成该笔订单的业务模块需要该笔订单的一个标识。此时,业务模块可以调用标识服务接口(id-server)接口,以使标识服务接口向标识生成模块发送标识生成请求,进而标识生成模块执行本发明实施例提供的标识生成方法,并通过标识服务接口向业务模块返回针对订单业务的数据标识。例如,业务名称为biz_order,相应的起始标识max_id=0,区间步长step=1000,将标识规则表中的起始标识更新为max_id=max_id+step,即更新为max_id1000。这样,业务模块本次请求得到的数据标识为id=[max_id+1,max_id+step],也就是[1,1000]区间。业务模块可以顺序使用其中的1-1000值,作为数据标识,对数据进行标记,例如数据d1的数据标识为1,数据d2的数据标识为2等等。上述区间[1,1000]中的值用完时,业务模块可以再次调用标识服务接口,获取id区间[1001,2000],依次类推。

另外,为了便于维护管理,标识规则表中还可以包括字段:用于表示业务标识的业务主键字段,用于解释标识规则表用途的描述字段,以及用于表明标识规则表的更新时间的更新时间字段。其中,第一次接收标识生成请求时,标识规则表中记录的更新时间可以为标识规则表的创建时间。并且,由于生成标识时会对标识规则表中的起始标识进行更新,因此,对于同一业务,第二次及后续接收标识生成请求时,标识规则表中记录的更新时间字段为上一次更新标识规则表的时间。

在一种可选的实施方式中,上述业务模块将所接收的数据标识存储在第一缓存区域;其中,第一缓存区域的占用量小于预设阀值;

相应的,上述业务模块依次使用区间中的非负数,逐一标记业务的数据,具体可以包括如下步骤:

业务模块从第一缓存区域取出区间中的非负数,逐一标记业务的数据;

当第一缓存区域的占用量等于预设阀值时,业务模块将所接收的数据标识存储在第二缓存区域;第二缓存区域的占用量为0;

当第一缓存区域中的数据标识均被取出,且第二缓存区域的占用量等于预设阀值时,业务模块将将所接收的数据标识存储在第一缓存区域。

在本可选实施例中,业务模块采用双缓存区域的方式存储所接收的数据标识,在一个缓存区域的占用量超出预设阀值时,使用另一个缓存区域存储所接收的数据。并且,从缓存区域中取出数据标识对业务的数据进行标记,可以实现将缓存区域的占用量减少为0的效果。这样,实现两个缓存区域的循环往复使用,实现高可用的效果。其中,高可用(highavailability)表示通过减少停工时间,保证高度可用性。

示例性的,第一缓存区域为a-buffer,第二缓存区域为b-buffer。第一次接收的数据标识也就是区间放入a-buffer,此时,a-buffer的占用量为0或者小于预设阀值。当a-buffer的占用量达到预设阀值,例如,占用量达到可用空间为30%时,将所接收的数据标识放入b-buffer,此时,b-buffer的占用量为0。当a-buffer中的数据标识全部被取出,也就是a-buffer的占用量为0,且b-buffer的占用量达到预设阈值时,将所接收的数据标识放入a-buffer中。

另外,上述第一缓存区域和第二缓存区域均可以为业务模块所属设备的内存,例如,可以是数据库的内存。这样,数据标识存储在内存中,即使数据库宕机也可以支持一段时间,实现高可用的效果。

在一种可选的实施方式中,上述在接收到业务模块发送的标识生成请求时,获取标识生成请求对应业务的业务标识,具体可以包括如下步骤:

当同一时刻接收到业务模块发送的多个标识生成请求时,对多个标识生成请求中的一个进行锁定;

获取被锁定的标识生成请求对应业务的业务标识;

在完成被锁定的标识生成请求对应的数据标识的生成时,对被锁定的标识生成请求进行解锁,并执行对多个标识生成请求中的一个进行锁定处理。

在具体应用中,可以利用分布式锁实现对标识生成请求的锁定。本可选实施例对并发的多个标识生成请求进行择一锁定的处理方式,可以保证在同一时间,针对同一业务的一个标识生成请求生成数据标识,避免请求同时到达造成标识生成混乱以及重复的问题,保证同一业务的全局数据标识的规律性和唯一性。

为了便于理解,下面以示例性说明的形式,将上述各可选实施例整合为一个方案进行说明。示例性的,如图2所示。标识生成模块在接收到业务标识为1也就是业务1的标识生成请求时,从数据库中查找业务1的标识规则表。具体的,该标识规则表中记载:业务“id:1”表示主键为1,代表该标识规则表属于业务1;“biz:order”表示业务名称为order,也就是“订单”;“max_id:0”表示起始标识为0;“step:1000”表示区间步长为1000;“desc:订单标识生成”表示该标识规则表用于进行订单标识生成;“update_time:2020-08-24”表示该标识规则表的更新时间是2020-08-24。业务1为订单业务,用户下了三笔订单:订单业务a、订单业务b以及订单业务c。分别针对每一笔订单生成数据标识,则订单业务a的本地缓存数据标识[1,1000],订单业务b的本地缓存数据标识[1001,2000],订单业务c本地缓存数据标识[2001,3000]。可见,在本方案中,对于订单业务,全局的数据标识是有序的:从订单业务a至订单业务c,数据标识从[1,1000]递增为[1001,2000],以及[2001,3000]。

相应于上述方法实施例,本发明实施例还提供,一种数据标识的生成装置。

如图3所示,本发明一实施例提供的一种数据标识的生成装置,应用于标识服务模块,所述装置包括:

业务标识获取单元301,用于在接收到业务模块发送的标识生成请求时,获取所述标识生成请求对应业务的业务标识;

参数获取单元302,用于基于所述业务标识,获取所述标识生成请求对应的起始标识以及区间步长;其中,所述起始标识为非负数,所述区间步长为正数;

末尾标识获取单元303,用于基于所述起始标识和所述区间步长,获取末尾标识,并将所述末尾标识作为所述业务的下一次标识生成请求对应的起始标识;所述末尾标识大于所述起始标识;

标识生成单元304,用于将区间[所述起始标识,所述末尾标识]作为所述业务的本次标识生成请求对应的数据标识发送给所述业务模块,以使得所述业务模块依次使用所述区间中的非负数,逐一标记所述业务的数据,当所述区间中的非负数使用完,且存在待标记的数据时,向所述标识服务模块发送标识生成请求。

本发明实施例提供的方案,可以保证针对每个业务,该业务的数据标识在该业务全局递增或者趋势递增,实现该业务的数据标识规律化和有序化,从而利用数据标识进行业务查询时,可以提高分分布式的业务数据的查询效率。并且,将区间[起始标识,末尾标识]中的非负数依次作为业务的本次标识生成请求对应的数据标识,实现对数据标识的批量生成,与生成单个数据标识相比,可以减少标识生成请求的次数,减少高并发造成的性能下降。可见,本方案可以针对分布式的业务数据,生成有规律的数据标识,以提高分布式的业务数据的查询效率,并且,可以减少标识生成请求高并发造成的性能下降。

可选的,所述装置还包括:次数更新单元,用于:

在所述获取所述标识生成请求对应业务的业务标识时,更新所述业务标识对应的标识生成请求的请求次数;

所述区间步长,采用如下步骤设置:

针对每个业务标识,获取该业务标识对应的请求次数;

从预存的请求次数与区间步长的对应关系中,查找所获取的请求次数对应的区间步长,作为该业务标识对应的区间步长。

可选的,所述参数获取单元302,具体用于:

从数据库中查找所述业务标识对应的标识规则表;

读取所述标识规则表中的目标字段,得到所述标识生成请求对应的起始标识以及区间步长;其中,所述目标字段为表明起始标识和区间步长的字段;

将所述业务标识对应的标识规则表中的起始标识,更新为所述末尾标识。

可选的,所述业务模块将所接收的数据标识存储在第一缓存区域;其中,所述第一缓存区域的占用量小于预设阀值;

所述业务模块依次使用所述区间中的非负数,逐一标记所述业务的数据,包括:

所述业务模块从所述第一缓存区域取出所述区间中的非负数,逐一标记所述业务的数据;

当所述第一缓存区域的占用量等于预设阀值时,所述业务模块将所接收的数据标识存储在第二缓存区域;所述第二缓存区域的占用量为0;

当所述第一缓存区域中的数据标识均被取出,且所述第二缓存区域的占用量等于预设阀值时,所述业务模块将将所接收的数据标识存储在所述第一缓存区域。

可选的,所述所述参数获取单元302,具体用于:

当同一时刻接收到业务模块发送的多个标识生成请求时,对所述多个标识生成请求中的一个进行锁定;

获取被锁定的标识生成请求对应业务的业务标识;

在完成所述被锁定的标识生成请求对应的数据标识的生成时,对所述被锁定的标识生成请求进行解锁,并执行所述对所述多个标识生成请求中的一个进行锁定处理。

本发明实施例还提供了一种电子设备,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,

存储器403,用于存放计算机程序;

处理器401,用于执行存储器403上所存放的程序时,实现如下步骤:

在接收到业务模块发送的标识生成请求时,获取所述标识生成请求对应业务的业务标识;

基于所述业务标识,获取所述标识生成请求对应的起始标识以及区间步长;其中,所述起始标识为非负数,所述区间步长为正数;

基于所述起始标识和所述区间步长,获取末尾标识,并将所述末尾标识作为所述业务的下一次标识生成请求对应的起始标识;所述末尾标识大于所述起始标识;

将区间[所述起始标识,所述末尾标识]作为所述业务的本次标识生成请求对应的数据标识发送给所述业务模块,以使得所述业务模块依次使用所述区间中的非负数,逐一标记所述业务的数据,当所述区间中的非负数使用完,且存在待标记的数据时,向所述标识服务模块发送标识生成请求。

在具体应用中,本实施例提供的电子设备为标识生成模块所属的电子设备。

本发明实施例提供的方案,可以保证针对每个业务,该业务的数据标识在该业务全局递增或者趋势递增,实现该业务的数据标识规律化和有序化,从而利用数据标识进行业务查询时,可以提高分分布式的业务数据的查询效率。并且,将区间[起始标识,末尾标识]中的非负数依次作为业务的本次标识生成请求对应的数据标识,实现对数据标识的批量生成,与生成单个数据标识相比,可以减少标识生成请求的次数,减少高并发造成的性能下降。可见,本方案可以针对分布式的业务数据,生成有规律的数据标识,以提高分布式的业务数据的查询效率,并且,可以减少标识生成请求高并发造成的性能下降。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessorunit,cpu)、网络处理器(networkprocessor,np)等;还可以是非负数信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据标识的生成方法的步骤。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据标识的生成方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、非负数用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1