编号的生成方法及装置.pdf

上传人:1** 文档编号:4074186 上传时间:2018-08-14 格式:PDF 页数:16 大小:1.61MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410773566.8

申请日:

2014.12.12

公开号:

CN104486407A

公开日:

2015.04.01

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 29/08申请日:20141212|||公开

IPC分类号:

H04L29/08

主分类号:

H04L29/08

申请人:

北京国双科技有限公司

发明人:

江飞

地址:

100086北京市海淀区双榆树小区知春路76号翠宫饭店8层A间

优先权:

专利代理机构:

北京康信知识产权代理有限责任公司11240

代理人:

吴贵明; 张永明

PDF下载: PDF下载
内容摘要

本发明公开了一种编号的生成方法及装置。其中,该方法包括:接收用于触发生成编号ID的触发信号;根据触发信号,生成N个内容不同的编号ID,其中,N为预先设置的生成编号ID的数量;按照预定的发送规则将N个内容不同的编号ID发送至终端集群中,以使终端集群中接收到编号ID的终端将接收到的编号ID存储至该终端自身的消息队列中,其中,终端集群包括至少两个终端。本发明解决了现有技术中在对编号ID出现高并发的请求时,导致生成编号ID的服务响应不及时或者服务崩溃的问题。

权利要求书

权利要求书1.  一种编号的生成方法,其特征在于,包括: 接收用于触发生成编号ID的触发信号; 根据所述触发信号,生成N个内容不同的编号ID,其中,所述N为预先设 置的生成所述编号ID的数量; 按照预定的发送规则将所述N个内容不同的编号ID发送至终端集群中,以 使所述终端集群中接收到所述编号ID的终端将接收到的所述编号ID存储至该终 端自身的消息队列中,其中,所述终端集群包括至少两个终端。 2.  根据权利要求1所述的方法,其特征在于,在接收到用于触发生成编号ID的触发 信号之前,所述方法还包括: 读取任意一个所述终端的所述消息队列中未被使用过的编号的数量,获取所 述任意一个终端的消息队列中的剩余编号数量值; 将所述任意一个终端的消息队列中的剩余编号数量值与预先设置的阈值进行 对比,确定是否需要生成所述触发信号; 当所述任意一个终端的消息队列中的剩余编号数量值大于等于所述预先设置 的阈值时,不生成所述触发信号; 当所述任意一个终端的消息队列中的剩余编号数量值小于所述预先设置的阈 值时,生成所述触发信号。 3.  根据权利要求1所述的方法,其特征在于,在根据所述触发信号,生成N个内容 不同的编号ID之后,所述方法还包括: 以追加法将所述N个内容不同的编号ID载入ID生成记录表。 4.  根据权利要求3所述的方法,其特征在于,所述生成N个内容不同的编号ID的 步骤包括: 读取所述ID生成记录表中已经保存的至少一个历史编号ID; 读取预先设置的生成编号ID的所述数量N; 基于所述ID生成记录表中已经保存的最后一条历史编号ID的内容,顺序生 成所述N个内容不同的编号ID。 5.  根据权利要求3所述的方法,其特征在于,在所述以追加法将所述N个内容不同 的编号ID载入ID生成记录表之后,所述方法还包括: 将所述ID生成记录表同步至所述终端集群中的任意一个或多个终端中。 6.  根据权利要求1至5中任意一项所述的方法,其特征在于,在按照预定的发送规 则将所述N个内容不同的编号ID发送至终端集群中,其中,所述终端集群包括 至少两个终端之后,所述方法还包括: 接收外部编号请求终端的编号请求信息; 将所述编号请求信息定向发送至所述终端集群中满足负载均衡条件的终端 上。 7.  一种编号的生成装置,其特征在于,包括: 第一接收模块,用于接收用于触发生成编号ID的触发信号; 生成模块,用于根据所述触发信号,生成N个内容不同的编号ID,其中,所 述N为预先设置的生成所述编号ID的数量; 分发模块,用于按照预定的发送规则将所述N个内容不同的编号ID发送至 终端集群中,以使所述终端集群中接收到所述编号ID的终端将接收到的所述编号 ID存储至该终端自身的消息队列中,其中,所述终端集群包括至少两个终端。 8.  根据权利要求7所述的装置,其特征在于,所述装置还包括: 读取模块,用于读取任意一个所述终端的所述消息队列中未被使用过的编号 的数量,获取所述任意一个终端的消息队列中的剩余编号数量值; 处理模块,用于将所述任意一个终端的消息队列中的剩余编号数量值与预先 设置的阈值进行对比,确定是否需要生成所述触发信号;当所述任意一个终端的 消息队列中的剩余编号数量值大于等于所述预先设置的阈值时,不生成所述触发 信号;当所述任意一个终端的消息队列中的剩余编号数量值小于所述预先设置的 阈值时,生成所述触发信号。 9.  根据权利要求7所述的装置,其特征在于,所述装置还包括: 记录模块,用于以追加法将所述N个内容不同的编号ID载入ID生成记录表。 10.  根据权利要求9所述的装置,其特征在于,所述生成模块包括: 第一子读取模块,用于读取所述ID生成记录表中已经保存的至少一个历史编 号ID; 第二子读取模块,用于读取预先设置的生成编号ID的所述数量N; 子生成模块,用于基于所述ID生成记录表中已经保存的最后一条历史编号ID 的内容,顺序生成所述N个内容不同的编号ID。 11.  根据权利要求9所述的装置,其特征在于,所述装置还包括: 同步模块,用于在所述记录模块以追加法将所述N个内容不同的编号ID载 入ID生成记录表之后,将所述ID生成记录表同步至所述终端集群中的任意一个 或多个终端中。 12.  根据权利要求7至11中任意一项所述的装置,其特征在于,所述装置还包括: 第二接收模块,用于接收外部编号请求终端的编号请求信息; 负载均衡模块,用于将所述编号请求信息定向发送至所述终端集群中满足负 载均衡条件的终端上。

说明书

说明书编号的生成方法及装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种编号的生成方法及装置。
背景技术
随着分布式系统的发展,越来越多的地方需要快速方便的获取唯一编号ID,例如 订单系统中的订单号,支付系统中的交易号。通过字符串连接,完成序列化。
当前有很多获取唯一ID的方法,例如:利用数据库中的自增列来获取唯一编号ID, 该方案可以保证编号ID的全局唯一性,但是由于生成编号ID的数据库是单点的,某一 个时间点只能有一个编号ID请求被响应,这样的话在高并发的情况下服务就可能出现 响应不及时,或者服务崩溃(crash)的问题。另外一种比较常见的方案是利用时间标 示作为编号ID的唯一标示,该方案虽然可以应付高并发下得响应要求,但是容易出现 编号ID的重复的问题。
针对现有技术中在对编号ID出现高并发的请求时,导致生成编号ID的服务响应不 及时或者服务崩溃的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种编号的生成方法及装置,以解决现有技术中在对 编号ID出现高并发的请求时,导致生成编号ID的服务响应不及时或者服务崩溃的问 题。
为了实现上述目的,根据本发明实施例的一个方面,提供了一种编号的生成方法。 该方法包括:接收用于触发生成编号ID的触发信号;根据触发信号,生成N个内容不 同的编号ID,其中,N为预先设置的生成编号ID的数量;按照预定的发送规则将N个内 容不同的编号ID发送至终端集群中,以使终端集群中接收到编号ID的终端将接收到的 编号ID存储至该终端自身的消息队列中,其中,终端集群包括至少两个终端。
为了实现上述目的,根据本发明实施例的另一方面,提供了一种编号的生成装置, 该装置包括:第一接收模块,用于接收用于触发生成编号ID的触发信号;生成模块, 用于根据触发信号,生成N个内容不同的编号ID,其中,N为预先设置的生成编号ID 的数量;分发模块,用于按照预定的发送规则将N个内容不同的编号ID发送至终端集 群中,以使终端集群中接收到编号ID的终端将接收到的编号ID存储至该终端自身的消 息队列中,其中,终端集群包括至少两个终端。
根据发明实施例,通过接收用于触发生成编号ID的触发信号;根据触发信号,生 成N个内容不同的编号ID,其中,N为预先设置的生成编号ID的数量;按照预定的发送 规则将N个内容不同的编号ID发送至终端集群中,以使终端集群中接收到编号ID的终 端将接收到的编号ID存储至该终端自身的消息队列中,其中,终端集群包括至少两个 终端,解决了现有技术在对编号ID出现高并发的请求时,导致生成编号ID的服务响应 不及时或者服务崩溃的问题。实现了在高并发请求编号ID时均衡负载,提高编号ID分 发效率的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实 施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例一的编号的生成方法的流程图;
图2是根据本发明实施例一优选的编号的生成方法的流程图;
图3是根据本发明实施例一优选的编号的生成方法的流程图;
图4是根据本发明实施例一的编号的生成系统框图;
图5是根据本发明实施例二的编号的生成装置的结构示意图;
图6是根据本发明实施例二优选的编号的生成装置的结构示意图;以及
图7是根据本发明实施例二优选的编号的生成装置的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相 互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例 仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领 域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于 本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第 二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这 样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语 “包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含 了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步 骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的 其它步骤或单元。
术语解释:
并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完 毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序 在处理机上运行。
在关系数据库中,允许多个用户同时访问和更改共享数据的进程。SQL Server使 用锁定以允许多个用户同时访问和更改共享数据而彼此之间不发生冲突。
操作系统并发程序执行的特点:
并发环境下,由于程序的封闭性被打破,出现了新的特点:
①程序与计算不再一一对应,一个程序副本可以有多个计算;
②并发程序之间有相互制约关系,直接制约体现为一个程序需要另一个程序的计 算结果,间接制约体现为多个程序竞争某一资源,如处理机、缓冲区等;
③并发程序在执行中是走走停停,断续推进的。
编号ID:
身份标识号码。也称为序列号或帐号,是某个体系中相对唯一的编码,相当于是 一种“身份证”,在某一具体的事物中,身份标识号一般是不变的,至于用什么来标 识该事物,则由设计者自己制定的规则来确定。一般而言,这个规则根据具体的使用 环境在设计上有一定的主观性,如:“员工工号”、“身份证号码”“计算机网址” 等。对于计算机主要有两种运算方式,逻辑运算和算术运算,逻辑运算便关系到数字 的ID功能。身份标识号码在生活中是很常见的,比如你将产品的型号,生产号等分别 贴在同类的事物上以区分他们,这个也可以叫ID。
消息队列:
“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文 本字符串;也可以更复杂,可能包含嵌入对象。
消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消 息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提 供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直 到可以成功地传递消息。
负载均衡:
负载均衡(Load Balancing)建立在现有网络结构之上,它提供了一种廉价有效 透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提 高网络的灵活性和可用性。
实施例1
本发明实施例提供了一种编号的生成方法。
图1是根据本发明实施例的一种编号的生成方法的流程图。如图1所示,该方法 包括步骤如下:
步骤S11,接收用于触发生成编号ID的触发信号。
具体的,通过上述步骤S11接收外部发送的用于触发生成编号ID的触发信号,其 中,生成编号ID可以是一个专门的编号ID生成服务器,也可以是服务器中的一个编 号ID生成服务。触发信号可以通过负载均衡服务器或者负载均衡服务生成,并发送至 当前编号ID生成服务器中。
步骤S13,根据触发信号,生成N个内容不同的编号ID,其中,N为预先设置的 生成编号ID的数量,N为正整数。
具体的,通过上述步骤S13,根据触发信号,每次生成预先设置的数量N个编号 ID。生成编号ID的数量N可以根据编号ID需求量进行人为设置。当对编号ID需求 量非常大时,可以将数量N的数值设置大一些;当对编号ID需求量很小时,可以将 数量N的数值调小,以更好的节省服务器的运算资源。
步骤S15,按照预定的发送规则将N个内容不同的编号ID发送至终端集群中,以 使终端集群中接收到编号ID的终端将接收到的编号ID存储至该终端自身的消息队列 中,其中,终端集群包括至少两个终端。
具体的,通过上述步骤S15,将生成的N个内容不同的编号ID发送至终端集群中 的至少两个终端中。发送方式可以将数量N个编号ID平均分发至终端集群中的各个 终端当中;也可以根据对终端集群中的各个终端中剩余的编号ID数量进行判断,将生 成的编号ID优先发送至编号ID数量小于预先设定的数量阈值的终端当中。
在终端集群中接收到编号ID后,接收到编号ID的终端将编号ID存储于各自的 消息队列中。
通过上述步骤S11至步骤S15,通过接收用于生成编号ID的触发信号,生成若干 个编号ID,并将编号ID分发至终端集群中的各个终端当中。这样,编号ID存储于不 同的终端当中,在高并发获取编号ID时,可以将获取编号ID的进程分配至不同的存 储有编号ID的终端当中,以达到均衡负载的目的,避免了编号ID的服务响应延迟或 者崩溃。同时,因为所有编号ID都是由一个编号ID生成服务器或者ID生成服务进 行的,所以可以避免出现编号ID重复的问题。
综上可知,本发明解决了现有技术中在对编号ID出现高并发的请求时,导致生成 编号ID的服务响应不及时或者服务崩溃的问题,实现了在高并发请求编号ID时均衡 负载,提高编号ID分发效率的效果。
优选的,如图2所示,根据本申请上述实施例,在步骤S11接收到用于触发生成 编号ID的触发信号之前,方法还包括:
步骤S101,读取任意一个终端的消息队列中未被使用过的编号的数量,获取任意 一个终端的消息队列中的剩余编号数量值。
步骤S103,将任意一个终端的消息队列中的剩余编号数量值与预先设置的阈值进 行对比,确定是否需要生成触发信号,
当该任意一个终端的消息队列中的剩余编号数量值大于等于预先设置的阈值时, 不生成触发信号;
当该任意一个终端的消息队列中的剩余编号数量值小于预先设置的阈值时,生成 触发信号。
具体的,通过上述步骤S101和步骤S103,对终端集群中终端的消息队列中的编 号ID剩余数量进行读取,并判断编号ID剩余数量是否少于预先设置的阈值。当编号 ID剩余数量小于阈值时,确定终端中的剩余编号ID的数量不足,需要补充,即向编 号ID生成服务器发送触发信号。在实际应用当中,对阈值的设置,可以根据编号ID 需求数量进行设置。
优选的,根据本申请上述实施例,在步骤13根据触发信号,生成N个内容不同 的编号ID之后,方法还包括:
步骤S140,以追加法将N个内容不同的编号ID载入ID生成记录表。
具体的,通过步骤S140,将每次生成的编号ID以追加法记录在ID生成记录表当 中,用来对生成过的编号ID进行记录。
优选的,根据本申请上述实施例,在步骤S13根据触发信号,生成N个内容不同 的编号ID中,步骤包括:
步骤S131,读取ID生成记录表中已经保存的至少一个历史编号ID。
步骤S133,读取预先设置的生成编号ID的数量N。
步骤S135,基于ID生成记录表中已经保存的最后一条历史编号ID的内容,顺序 生成N个内容不同的编号ID。
具体的,通过上述步骤S131至步骤S135,对ID生成记录表中的历史编号ID记 录进行查询,以ID生成记录表中的最后一条历史编号ID为基础,生成数量N个与历 史编号ID不重复的新的编号ID。
在实际应用中,可以通过顺序法顺序生成连续的新的不同的编号ID,也可以以日 期时间为基础顺序生成新的不同的编号ID,还可以通过随机法,并经过去重处理,生 成随机的新的不同的编号ID。当然,根据实际情况,也有其他编号ID的生成方法, 都可以适用于本实施例提供的方法当中,具体不做赘述。
优选的,根据本申请上述实施例,在步骤S140以追加法将N个内容不同的编号 ID载入ID生成记录表之后,方法还包括:
步骤S141,将ID生成记录表同步至新终端集群中的任意一个或多个终端中。
具体的,通过上述步骤S141,可以将ID生成记录表同步至终端集群中的各个终 端当中,用于对ID生成记录表的备份,以增强系统的可靠性。
优选的,如图3所示,根据本申请上述实施例,在步骤S15按照预定的发送规则 将N个内容不同的编号ID发送至终端集群中,其中,终端集群包括至少两个终端之 后,方法还包括:
步骤S17,接收外部编号请求终端的编号请求信息。
步骤S19,将编号请求信息定向发送至终端集群中满足负载均衡条件的终端上。
具体的,通过上述步骤S17和步骤S19,对外部编号请求终端的编号请求进行分 配,将编号请求信息定向发送给终端集群中存储有消息队列的终端。均衡各个终端间 的请求负载,保证负载均衡。其中,发送编号请求信息的外部编号请求终端,可以是 使用编号生成服务的应用系统中的客户端。
在实际应用当中,定向发送编号请求信息的方法可以通过平均分配法直接对编号 请求信息进行分配。也可以通过阈值判断的方法,判断终端集群中的各个终端的负载 率,通过对负载率与预先设置的阈值比对,只有当达到负载均衡条件时,才会向该终 端发送编号请求信息。
在实际应用当中,如图4所示,在若干不同的终端上新建消息队列用来存储生成 好的编号ID。前端可以设置负载均衡服务器,当有获取编号ID的请求时,负载均衡 服务器会把请求定向到不同终端上的消息队列上,从消息队列中获取编号ID并返回。 也可以是将负载均衡功能集成在本发明实施例的编号的生成装置中,本领域技术人员 可以根据实际场景需要自行设定,此处不做赘述。
后台会有一个编号ID生成服务或编号ID生成服务器来按顺序生成编号ID,并把 这些编号ID分发到不同终端中的消息队列上。该服务还会记录当前已经生成的最大编 号ID,以供下次启动时从最大编号ID后开始生成。该服务还会监测每一个消息队列 中的编号ID数量,如果数量低于某一个阈值,该服务就会启动往消息队列中插入新生 成的编号ID。
这样既可以在高并发的情况下快速的响应编号ID请求,又可以因多点部署,防止 单点故障的发生。
上述实施例中所提供的方法,根据实际负载的情况,可以部署于分布式服务器集 群的各台服务器终端当中,也可以以后台系统服务的形势部署于一台或多台服务器当 中,具体实施方式此处不做限制。
实施例2
本发明实施例还提供了一种编号的生成装置,如图5所示,该装置可以包括:第 一接收模块21、生成模块23和分发模块25。
其中,第一接收模块21,用于接收用于触发生成编号ID的触发信号。
具体的,通过上述第一接收模块21接收外部发送的用于触发生成编号ID的触发 信号,其中,生成编号ID可以是一个专门的编号ID生成服务器,也可以是服务器中 的一个编号ID生成服务。触发信号可以通过负载均衡服务器或者负载均衡服务生成, 并发送至当前编号ID生成服务器中。
生成模块23,用于根据触发信号,生成N个内容不同的编号ID,其中,N为预 先设置的生成编号ID的数量,N为正整数。
具体的,通过上述生成模块23,根据触发信号,每次生成预先设置的数量N个编 号ID。生成编号ID的数量N可以根据编号ID需求量进行人为设置。当对编号ID需 求量非常大时,可以将数量N的数值设置大一些;当对编号ID需求量很小时,可以 将数量N的数值调小,以更好的节省服务器的运算资源。
分发模块25,用于按照预定的发送规则将N个内容不同的编号ID发送至终端集 群中,以使所述终端集群中接收到所述编号ID的终端将接收到的所述编号ID存储至 该终端自身的消息队列中,其中,终端集群包括至少两个终端。
具体的,通过上述分发模块25,将生成的N个内容不同的编号ID发送至终端集 群中的至少两个终端中。发送方式可以将数量N个编号ID平均分发至终端集群中的 各个终端当中;也可以根据对终端集群中的各个终端中剩余的编号ID数量进行判断, 将生成的编号ID优先发送至编号ID数量小于预先设定的数量阈值的终端当中。
具体的,在终端集群中的各个终端中,还包括存储模块30。其中,终端集群中的 各个终端的存储模块30用于存储接收到的编号ID的消息队列。
上述第一接收模块21、生成模块23和分发模块25,通过接收用于生成编号ID的 触发信号,生成若干个编号ID,并将编号ID分发至终端集群中的各个终端当中。这 样,编号ID存储于不同的终端当中,在高并发获取编号ID时,可以将获取编号ID 的进程分配至不同的存储有编号ID的终端当中,以达到均衡负载的目的,避免了编号 ID的服务响应延迟或者崩溃。同时,因为所有编号ID都是由一个编号ID生成服务器 或者ID生成服务进行的,所以可以避免出现编号ID重复的问题。
综上可知,本发明解决了现有技术中在对编号ID出现高并发的请求时,导致生成 编号ID的服务响应不及时或者服务崩溃的问题,实现了在高并发请求编号ID时均衡 负载,提高编号ID分发效率的效果。
优选的,如图6所示,装置还包括:读取模块201和处理模块203。
其中,读取模块201,用于读取任意一个终端的消息队列中未被使用过的编号的 数量,获取任意一个终端的消息队列中的剩余编号数量值;
处理模块203,用于将任意一个终端的消息队列中的剩余编号数量值与预先设置 的阈值进行对比,确定是否需要生成触发信号;当该任意一个终端的消息队列中的剩 余编号数量值大于等于预先设置的阈值时,不生成触发信号;当该任意一个终端的消 息队列中的剩余编号数量值小于预先设置的阈值时,生成触发信号。
具体的,通过上述读取模块201和处理模块203,对终端集群中终端的消息队列 中的编号ID剩余数量进行读取,并判断编号ID剩余数量是否少于预先设置的阈值。 当编号ID剩余数量小于阈值时,确定终端中的剩余编号ID的数量不足,需要补充。 即向编号ID生成服务器发送触发信号。在实际应用当中,对阈值的设置,可以根据编 号ID需求数量进行设置。
优选的,根据本申请上述实施例,装置还包括:记录模块240。
其中,记录模块240,用于以追加法将N个内容不同的编号ID载入ID生成记录 表。
具体的,通过记录模块240,将每次生成的编号ID以追加法记录在ID生成记录 表当中,用来对生成过的编号ID进行记录。
优选的,根据本申请上述实施例,上述生成模块23包括:第一子读取模块231、 第二子读取模块233和子生成模块235。
其中,第一子读取模块231,用于读取ID生成记录表中已经保存的至少一个历史 编号ID。
第二子读取模块233,用于读取预先设置的生成编号ID的数量N。
子生成模块235,用于基于ID生成记录表中已经保存的最后一条历史编号ID的 内容,顺序生成N个内容不同的编号ID。
具体的,通过上述第一子读取模块231、第二子读取模块233和子生成模块235, 对ID生成记录表中的历史编号ID记录进行查询,以ID生成记录表中的最后一条历 史编号ID为基础,生成数量N个与历史编号ID不重复的新的编号ID。
在实际应用中,可以通过顺序法顺序生成连续的新的不同的编号ID,也可以以日 期时间为基础顺序生成新的不同的编号ID,还可以通过随机法,并经过去重处理,生 成随机的新的不同的编号ID。当然,根据实际情况,也有其他编号ID的生成方法, 都可以适用于本实施例提供的方法当中,具体不做赘述。
优选的,根据本申请上述实施例,上述装置还包括:同步模块241。
其中,同步模块241,用于在记录模块240以追加法将所述N个内容不同的编号 ID载入ID生成记录表之后,将ID生成记录表同步至终端集群中的任意一个或多个终 端中。
具体的,通过上述同步模块241,可以将ID生成记录表同步至终端集群中的各个 终端当中,用于对ID生成记录表的备份,以增强系统的可靠性。
优选的,如图7所示,根据本申请上述实施例,上述装置还包括:第二接收模块 27和负载均衡模块29。
其中,第二接收模块27,用于接收外部编号请求终端的编号请求信息。
负载均衡模块29,用于将编号请求信息定向发送至终端集群中满足负载均衡条件 的终端上。
具体的,通过上述第二接收模块27和负载均衡模块29,对外部编号请求终端的 编号请求进行分配,将编号请求信息定向发送给终端集群中存储有消息队列的终端。 均衡各个终端间的请求负载,保证负载均衡。
在实际应用当中,定向发送编号请求信息的方法可以通过平均分配法直接对编号 请求信息进行分配。也可以通过阈值判断的方法,判断终端集群中的各个终端的负载 率,通过对负载率与预先设置的阈值比对,只有当达到负载均衡条件时,才会向该终 端发送编号请求信息。
在实际应用当中,如图4所示,在若干不同的终端上新建消息队列用来存储生成 好的编号ID。前端可以设置负载均衡服务器,当有获取编号ID的请求时,负载均衡 服务器会把请求定向到不同终端上的消息队列上,从消息队列中获取编号ID并返回。 也可以是将负载均衡功能集成在本发明实施例的编号的生成装置中,本领域技术人员 可以根据实际场景需要自行设定,此处不做赘述。
后台会有一个编号ID生成服务或编号ID生成服务器来按顺序生成编号ID,并把 这些编号ID分发到不同终端中的消息队列上。该服务还会记录当前已经生成的最大编 号ID,以供下次启动时从最大编号ID后开始生成。该服务还会监测每一个消息队列 中的编号ID数量,如果数量低于某一个阈值,该服务就会启动往消息队列中插入新生 成的编号ID。
这样既可以在高并发的情况下快速的响应编号ID请求,又可以因多点部署,防止 单点故障的发生。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系 列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限 制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术 人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块 并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部 分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方 式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅 仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可 以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显 示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元 的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到 多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例 方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成 的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用 时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案 本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产 品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使 得一台计算机设备(可为个人计算机、移动终端、服务器或者网络设备等)执行本发 明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储 器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、 移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的 任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

编号的生成方法及装置.pdf_第1页
第1页 / 共16页
编号的生成方法及装置.pdf_第2页
第2页 / 共16页
编号的生成方法及装置.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《编号的生成方法及装置.pdf》由会员分享,可在线阅读,更多相关《编号的生成方法及装置.pdf(16页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201410773566.8(22)申请日 2014.12.12H04L 29/08(2006.01)(71)申请人 北京国双科技有限公司地址 100086 北京市海淀区双榆树小区知春路76号翠宫饭店8层A间(72)发明人 江飞(74)专利代理机构 北京康信知识产权代理有限责任公司 11240代理人 吴贵明 张永明(54) 发明名称编号的生成方法及装置(57) 摘要本发明公开了一种编号的生成方法及装置。其中,该方法包括 :接收用于触发生成编号 ID 的触发信号 ;根据触发信号,生成 N 个内容不同的编号 ID,其中,N 为预先设置的生成编。

2、号 ID 的数量 ;按照预定的发送规则将N个内容不同的编号ID发送至终端集群中,以使终端集群中接收到编号 ID的终端将接收到的编号 ID 存储至该终端自身的消息队列中,其中,终端集群包括至少两个终端。本发明解决了现有技术中在对编号 ID 出现高并发的请求时,导致生成编号 ID 的服务响应不及时或者服务崩溃的问题。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书9页 附图4页(10)申请公布号 CN 104486407 A(43)申请公布日 2015.04.01CN 104486407 A1/2 页21.一种编号的生成方法,其特征在于,包括 :。

3、接收用于触发生成编号 ID 的触发信号 ;根据所述触发信号,生成 N 个内容不同的编号 ID,其中,所述 N 为预先设置的生成所述编号 ID 的数量 ;按照预定的发送规则将所述 N 个内容不同的编号 ID 发送至终端集群中,以使所述终端集群中接收到所述编号ID的终端将接收到的所述编号ID存储至该终端自身的消息队列中,其中,所述终端集群包括至少两个终端。2.根据权利要求 1 所述的方法,其特征在于,在接收到用于触发生成编号 ID 的触发信号之前,所述方法还包括 :读取任意一个所述终端的所述消息队列中未被使用过的编号的数量,获取所述任意一个终端的消息队列中的剩余编号数量值 ;将所述任意一个终端的消。

4、息队列中的剩余编号数量值与预先设置的阈值进行对比,确定是否需要生成所述触发信号 ;当所述任意一个终端的消息队列中的剩余编号数量值大于等于所述预先设置的阈值时,不生成所述触发信号 ;当所述任意一个终端的消息队列中的剩余编号数量值小于所述预先设置的阈值时,生成所述触发信号。3.根据权利要求 1 所述的方法,其特征在于,在根据所述触发信号,生成 N 个内容不同的编号 ID 之后,所述方法还包括 :以追加法将所述 N 个内容不同的编号 ID 载入 ID 生成记录表。4.根据权利要求 3 所述的方法,其特征在于,所述生成 N 个内容不同的编号 ID 的步骤包括 :读取所述 ID 生成记录表中已经保存的至。

5、少一个历史编号 ID ;读取预先设置的生成编号 ID 的所述数量 N ;基于所述 ID 生成记录表中已经保存的最后一条历史编号 ID 的内容,顺序生成所述 N个内容不同的编号 ID。5.根据权利要求3所述的方法,其特征在于,在所述以追加法将所述N个内容不同的编号 ID 载入 ID 生成记录表之后,所述方法还包括 :将所述 ID 生成记录表同步至所述终端集群中的任意一个或多个终端中。6.根据权利要求1至5中任意一项所述的方法,其特征在于,在按照预定的发送规则将所述 N 个内容不同的编号 ID 发送至终端集群中,其中,所述终端集群包括至少两个终端之后,所述方法还包括 :接收外部编号请求终端的编号请。

6、求信息 ;将所述编号请求信息定向发送至所述终端集群中满足负载均衡条件的终端上。7.一种编号的生成装置,其特征在于,包括 :第一接收模块,用于接收用于触发生成编号 ID 的触发信号 ;生成模块,用于根据所述触发信号,生成N个内容不同的编号ID,其中,所述N为预先设置的生成所述编号 ID 的数量 ;分发模块,用于按照预定的发送规则将所述 N 个内容不同的编号 ID 发送至终端集群权 利 要 求 书CN 104486407 A2/2 页3中,以使所述终端集群中接收到所述编号 ID 的终端将接收到的所述编号 ID 存储至该终端自身的消息队列中,其中,所述终端集群包括至少两个终端。8.根据权利要求 7 。

7、所述的装置,其特征在于,所述装置还包括 :读取模块,用于读取任意一个所述终端的所述消息队列中未被使用过的编号的数量,获取所述任意一个终端的消息队列中的剩余编号数量值 ;处理模块,用于将所述任意一个终端的消息队列中的剩余编号数量值与预先设置的阈值进行对比,确定是否需要生成所述触发信号 ;当所述任意一个终端的消息队列中的剩余编号数量值大于等于所述预先设置的阈值时,不生成所述触发信号 ;当所述任意一个终端的消息队列中的剩余编号数量值小于所述预先设置的阈值时,生成所述触发信号。9.根据权利要求 7 所述的装置,其特征在于,所述装置还包括 :记录模块,用于以追加法将所述 N 个内容不同的编号 ID 载入。

8、 ID 生成记录表。10.根据权利要求 9 所述的装置,其特征在于,所述生成模块包括 :第一子读取模块,用于读取所述 ID 生成记录表中已经保存的至少一个历史编号 ID ;第二子读取模块,用于读取预先设置的生成编号 ID 的所述数量 N ;子生成模块,用于基于所述ID生成记录表中已经保存的最后一条历史编号ID的内容,顺序生成所述 N 个内容不同的编号 ID。11.根据权利要求 9 所述的装置,其特征在于,所述装置还包括 :同步模块,用于在所述记录模块以追加法将所述 N 个内容不同的编号 ID 载入 ID 生成记录表之后,将所述 ID 生成记录表同步至所述终端集群中的任意一个或多个终端中。12.。

9、根据权利要求 7 至 11 中任意一项所述的装置,其特征在于,所述装置还包括 :第二接收模块,用于接收外部编号请求终端的编号请求信息 ;负载均衡模块,用于将所述编号请求信息定向发送至所述终端集群中满足负载均衡条件的终端上。权 利 要 求 书CN 104486407 A1/9 页4编号的生成方法及装置技术领域0001 本发明涉及计算机领域,具体而言,涉及一种编号的生成方法及装置。背景技术0002 随着分布式系统的发展,越来越多的地方需要快速方便的获取唯一编号 ID,例如订单系统中的订单号,支付系统中的交易号。通过字符串连接,完成序列化。0003 当前有很多获取唯一 ID 的方法,例如 :利用数据。

10、库中的自增列来获取唯一编号ID,该方案可以保证编号 ID 的全局唯一性,但是由于生成编号 ID 的数据库是单点的,某一个时间点只能有一个编号 ID 请求被响应,这样的话在高并发的情况下服务就可能出现响应不及时,或者服务崩溃 (crash) 的问题。另外一种比较常见的方案是利用时间标示作为编号ID的唯一标示,该方案虽然可以应付高并发下得响应要求,但是容易出现编号ID的重复的问题。0004 针对现有技术中在对编号 ID 出现高并发的请求时,导致生成编号 ID 的服务响应不及时或者服务崩溃的问题,目前尚未提出有效的解决方案。发明内容0005 本发明的主要目的在于提供一种编号的生成方法及装置,以解决现。

11、有技术中在对编号 ID 出现高并发的请求时,导致生成编号 ID 的服务响应不及时或者服务崩溃的问题。0006 为了实现上述目的,根据本发明实施例的一个方面,提供了一种编号的生成方法。该方法包括 :接收用于触发生成编号 ID 的触发信号 ;根据触发信号,生成 N 个内容不同的编号ID,其中,N为预先设置的生成编号ID的数量 ;按照预定的发送规则将N个内容不同的编号 ID 发送至终端集群中,以使终端集群中接收到编号 ID 的终端将接收到的编号 ID 存储至该终端自身的消息队列中,其中,终端集群包括至少两个终端。0007 为了实现上述目的,根据本发明实施例的另一方面,提供了一种编号的生成装置,该装置。

12、包括 :第一接收模块,用于接收用于触发生成编号 ID 的触发信号 ;生成模块,用于根据触发信号,生成 N 个内容不同的编号 ID,其中,N 为预先设置的生成编号 ID 的数量 ;分发模块,用于按照预定的发送规则将 N 个内容不同的编号 ID 发送至终端集群中,以使终端集群中接收到编号ID的终端将接收到的编号ID存储至该终端自身的消息队列中,其中,终端集群包括至少两个终端。0008 根据发明实施例,通过接收用于触发生成编号 ID 的触发信号 ;根据触发信号,生成N个内容不同的编号ID,其中,N为预先设置的生成编号ID的数量 ;按照预定的发送规则将 N 个内容不同的编号 ID 发送至终端集群中,以。

13、使终端集群中接收到编号 ID 的终端将接收到的编号 ID 存储至该终端自身的消息队列中,其中,终端集群包括至少两个终端,解决了现有技术在对编号 ID 出现高并发的请求时,导致生成编号 ID 的服务响应不及时或者服务崩溃的问题。实现了在高并发请求编号 ID 时均衡负载,提高编号 ID 分发效率的效果。说 明 书CN 104486407 A2/9 页5附图说明0009 构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中 :0010 图 1 是根据本发明实施例一的编号的生成方法的流程图 ;0011 图 2 是根据本发。

14、明实施例一优选的编号的生成方法的流程图 ;0012 图 3 是根据本发明实施例一优选的编号的生成方法的流程图 ;0013 图 4 是根据本发明实施例一的编号的生成系统框图 ;0014 图 5 是根据本发明实施例二的编号的生成装置的结构示意图 ;0015 图 6 是根据本发明实施例二优选的编号的生成装置的结构示意图 ;以及0016 图 7 是根据本发明实施例二优选的编号的生成装置的结构示意图。具体实施方式0017 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。0018 为了使本技术领域的人员更好地理解本发明方案,下面将结。

15、合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。0019 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、。

16、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。0020 术语解释 :0021 并发 :在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。0022 在关系数据库中,允许多个用户同时访问和更改共享数据的进程。SQL Server 使用锁定以允许多个用户同时访问和更改共享数据而彼此之间不发生冲突。0023 操作系统并发程序执行的特点 :0024 并发环境下,由于程序的封闭性被打破,出现了新的特点 :0025 程序与计算。

17、不再一一对应,一个程序副本可以有多个计算 ;0026 并发程序之间有相互制约关系,直接制约体现为一个程序需要另一个程序的计算结果,间接制约体现为多个程序竞争某一资源,如处理机、缓冲区等 ;0027 并发程序在执行中是走走停停,断续推进的。0028 编号 ID :0029 身份标识号码。也称为序列号或帐号,是某个体系中相对唯一的编码,相当于是一说 明 书CN 104486407 A3/9 页6种“身份证”,在某一具体的事物中,身份标识号一般是不变的,至于用什么来标识该事物,则由设计者自己制定的规则来确定。一般而言,这个规则根据具体的使用环境在设计上有一定的主观性,如 :“员工工号”、“身份证号码。

18、”“计算机网址”等。对于计算机主要有两种运算方式,逻辑运算和算术运算,逻辑运算便关系到数字的 ID 功能。身份标识号码在生活中是很常见的,比如你将产品的型号,生产号等分别贴在同类的事物上以区分他们,这个也可以叫 ID。0030 消息队列 :0031 “消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串 ;也可以更复杂,可能包含嵌入对象。0032 消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递 ;如果发送消息时接收者不可用,消息队列会保留消息,直到可以。

19、成功地传递消息。0033 负载均衡 :0034 负载均衡(Load Balancing)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。0035 实施例 10036 本发明实施例提供了一种编号的生成方法。0037 图 1 是根据本发明实施例的一种编号的生成方法的流程图。如图 1 所示,该方法包括步骤如下 :0038 步骤 S11,接收用于触发生成编号 ID 的触发信号。0039 具体的,通过上述步骤 S11 接收外部发送的用于触发生成编号 ID 的触发信号,其中,生成编号 ID 可以是一个专门的编号 。

20、ID 生成服务器,也可以是服务器中的一个编号 ID生成服务。触发信号可以通过负载均衡服务器或者负载均衡服务生成,并发送至当前编号ID 生成服务器中。0040 步骤 S13,根据触发信号,生成 N 个内容不同的编号 ID,其中,N 为预先设置的生成编号 ID 的数量,N 为正整数。0041 具体的,通过上述步骤S13,根据触发信号,每次生成预先设置的数量N个编号ID。生成编号 ID 的数量 N 可以根据编号 ID 需求量进行人为设置。当对编号 ID 需求量非常大时,可以将数量 N 的数值设置大一些 ;当对编号 ID 需求量很小时,可以将数量 N 的数值调小,以更好的节省服务器的运算资源。0042。

21、 步骤S15,按照预定的发送规则将N个内容不同的编号ID发送至终端集群中,以使终端集群中接收到编号 ID 的终端将接收到的编号 ID 存储至该终端自身的消息队列中,其中,终端集群包括至少两个终端。0043 具体的,通过上述步骤S15,将生成的N个内容不同的编号ID发送至终端集群中的至少两个终端中。发送方式可以将数量 N 个编号 ID 平均分发至终端集群中的各个终端当中 ;也可以根据对终端集群中的各个终端中剩余的编号 ID 数量进行判断,将生成的编号 ID优先发送至编号 ID 数量小于预先设定的数量阈值的终端当中。说 明 书CN 104486407 A4/9 页70044 在终端集群中接收到编号。

22、 ID 后,接收到编号 ID 的终端将编号 ID 存储于各自的消息队列中。0045 通过上述步骤S11至步骤S15,通过接收用于生成编号ID的触发信号,生成若干个编号ID,并将编号ID分发至终端集群中的各个终端当中。这样,编号ID存储于不同的终端当中,在高并发获取编号 ID 时,可以将获取编号 ID 的进程分配至不同的存储有编号 ID 的终端当中,以达到均衡负载的目的,避免了编号 ID 的服务响应延迟或者崩溃。同时,因为所有编号 ID 都是由一个编号 ID 生成服务器或者 ID 生成服务进行的,所以可以避免出现编号ID 重复的问题。0046 综上可知,本发明解决了现有技术中在对编号 ID 出现。

23、高并发的请求时,导致生成编号ID的服务响应不及时或者服务崩溃的问题,实现了在高并发请求编号ID时均衡负载,提高编号 ID 分发效率的效果。0047 优选的,如图 2 所示,根据本申请上述实施例,在步骤 S11 接收到用于触发生成编号 ID 的触发信号之前,方法还包括 :0048 步骤 S101,读取任意一个终端的消息队列中未被使用过的编号的数量,获取任意一个终端的消息队列中的剩余编号数量值。0049 步骤 S103,将任意一个终端的消息队列中的剩余编号数量值与预先设置的阈值进行对比,确定是否需要生成触发信号,0050 当该任意一个终端的消息队列中的剩余编号数量值大于等于预先设置的阈值时,不生成。

24、触发信号 ;0051 当该任意一个终端的消息队列中的剩余编号数量值小于预先设置的阈值时,生成触发信号。0052 具体的,通过上述步骤 S101 和步骤 S103,对终端集群中终端的消息队列中的编号ID 剩余数量进行读取,并判断编号 ID 剩余数量是否少于预先设置的阈值。当编号 ID 剩余数量小于阈值时,确定终端中的剩余编号 ID 的数量不足,需要补充,即向编号 ID 生成服务器发送触发信号。在实际应用当中,对阈值的设置,可以根据编号 ID 需求数量进行设置。0053 优选的,根据本申请上述实施例,在步骤13根据触发信号,生成N个内容不同的编号 ID 之后,方法还包括 :0054 步骤 S140。

25、,以追加法将 N 个内容不同的编号 ID 载入 ID 生成记录表。0055 具体的,通过步骤 S140,将每次生成的编号 ID 以追加法记录在 ID 生成记录表当中,用来对生成过的编号 ID 进行记录。0056 优选的,根据本申请上述实施例,在步骤 S13 根据触发信号,生成 N 个内容不同的编号 ID 中,步骤包括 :0057 步骤 S131,读取 ID 生成记录表中已经保存的至少一个历史编号 ID。0058 步骤 S133,读取预先设置的生成编号 ID 的数量 N。0059 步骤S135,基于ID生成记录表中已经保存的最后一条历史编号ID的内容,顺序生成 N 个内容不同的编号 ID。006。

26、0 具体的,通过上述步骤 S131 至步骤 S135,对 ID 生成记录表中的历史编号 ID 记录进行查询,以ID生成记录表中的最后一条历史编号ID为基础,生成数量N个与历史编号ID不重复的新的编号 ID。说 明 书CN 104486407 A5/9 页80061 在实际应用中,可以通过顺序法顺序生成连续的新的不同的编号 ID,也可以以日期时间为基础顺序生成新的不同的编号 ID,还可以通过随机法,并经过去重处理,生成随机的新的不同的编号ID。当然,根据实际情况,也有其他编号ID的生成方法,都可以适用于本实施例提供的方法当中,具体不做赘述。0062 优选的,根据本申请上述实施例,在步骤 S140。

27、 以追加法将 N 个内容不同的编号 ID载入 ID 生成记录表之后,方法还包括 :0063 步骤 S141,将 ID 生成记录表同步至新终端集群中的任意一个或多个终端中。0064 具体的,通过上述步骤 S141,可以将 ID 生成记录表同步至终端集群中的各个终端当中,用于对 ID 生成记录表的备份,以增强系统的可靠性。0065 优选的,如图 3 所示,根据本申请上述实施例,在步骤 S15 按照预定的发送规则将N 个内容不同的编号 ID 发送至终端集群中,其中,终端集群包括至少两个终端之后,方法还包括 :0066 步骤 S17,接收外部编号请求终端的编号请求信息。0067 步骤 S19,将编号请。

28、求信息定向发送至终端集群中满足负载均衡条件的终端上。0068 具体的,通过上述步骤 S17 和步骤 S19,对外部编号请求终端的编号请求进行分配,将编号请求信息定向发送给终端集群中存储有消息队列的终端。均衡各个终端间的请求负载,保证负载均衡。其中,发送编号请求信息的外部编号请求终端,可以是使用编号生成服务的应用系统中的客户端。0069 在实际应用当中,定向发送编号请求信息的方法可以通过平均分配法直接对编号请求信息进行分配。也可以通过阈值判断的方法,判断终端集群中的各个终端的负载率,通过对负载率与预先设置的阈值比对,只有当达到负载均衡条件时,才会向该终端发送编号请求信息。0070 在实际应用当中。

29、,如图 4 所示,在若干不同的终端上新建消息队列用来存储生成好的编号 ID。前端可以设置负载均衡服务器,当有获取编号 ID 的请求时,负载均衡服务器会把请求定向到不同终端上的消息队列上,从消息队列中获取编号 ID 并返回。也可以是将负载均衡功能集成在本发明实施例的编号的生成装置中,本领域技术人员可以根据实际场景需要自行设定,此处不做赘述。0071 后台会有一个编号 ID 生成服务或编号 ID 生成服务器来按顺序生成编号 ID,并把这些编号 ID 分发到不同终端中的消息队列上。该服务还会记录当前已经生成的最大编号ID,以供下次启动时从最大编号 ID 后开始生成。该服务还会监测每一个消息队列中的编。

30、号ID 数量,如果数量低于某一个阈值,该服务就会启动往消息队列中插入新生成的编号 ID。0072 这样既可以在高并发的情况下快速的响应编号 ID 请求,又可以因多点部署,防止单点故障的发生。0073 上述实施例中所提供的方法,根据实际负载的情况,可以部署于分布式服务器集群的各台服务器终端当中,也可以以后台系统服务的形势部署于一台或多台服务器当中,具体实施方式此处不做限制。0074 实施例 20075 本发明实施例还提供了一种编号的生成装置,如图 5 所示,该装置可以包括 :第一接收模块 21、生成模块 23 和分发模块 25。说 明 书CN 104486407 A6/9 页90076 其中,第。

31、一接收模块 21,用于接收用于触发生成编号 ID 的触发信号。0077 具体的,通过上述第一接收模块 21 接收外部发送的用于触发生成编号 ID 的触发信号,其中,生成编号 ID 可以是一个专门的编号 ID 生成服务器,也可以是服务器中的一个编号 ID 生成服务。触发信号可以通过负载均衡服务器或者负载均衡服务生成,并发送至当前编号 ID 生成服务器中。0078 生成模块 23,用于根据触发信号,生成 N 个内容不同的编号 ID,其中,N 为预先设置的生成编号 ID 的数量,N 为正整数。0079 具体的,通过上述生成模块 23,根据触发信号,每次生成预先设置的数量 N 个编号ID。生成编号 I。

32、D 的数量 N 可以根据编号 ID 需求量进行人为设置。当对编号 ID 需求量非常大时,可以将数量N的数值设置大一些 ;当对编号ID需求量很小时,可以将数量N的数值调小,以更好的节省服务器的运算资源。0080 分发模块25,用于按照预定的发送规则将N个内容不同的编号ID发送至终端集群中,以使所述终端集群中接收到所述编号 ID 的终端将接收到的所述编号 ID 存储至该终端自身的消息队列中,其中,终端集群包括至少两个终端。0081 具体的,通过上述分发模块 25,将生成的 N 个内容不同的编号 ID 发送至终端集群中的至少两个终端中。发送方式可以将数量 N 个编号 ID 平均分发至终端集群中的各个。

33、终端当中 ;也可以根据对终端集群中的各个终端中剩余的编号 ID 数量进行判断,将生成的编号 ID 优先发送至编号 ID 数量小于预先设定的数量阈值的终端当中。0082 具体的,在终端集群中的各个终端中,还包括存储模块 30。其中,终端集群中的各个终端的存储模块 30 用于存储接收到的编号 ID 的消息队列。0083 上述第一接收模块 21、生成模块 23 和分发模块 25,通过接收用于生成编号 ID 的触发信号,生成若干个编号ID,并将编号ID分发至终端集群中的各个终端当中。这样,编号ID存储于不同的终端当中,在高并发获取编号ID时,可以将获取编号ID的进程分配至不同的存储有编号ID的终端当中。

34、,以达到均衡负载的目的,避免了编号ID的服务响应延迟或者崩溃。同时,因为所有编号 ID 都是由一个编号 ID 生成服务器或者 ID 生成服务进行的,所以可以避免出现编号 ID 重复的问题。0084 综上可知,本发明解决了现有技术中在对编号 ID 出现高并发的请求时,导致生成编号ID的服务响应不及时或者服务崩溃的问题,实现了在高并发请求编号ID时均衡负载,提高编号 ID 分发效率的效果。0085 优选的,如图 6 所示,装置还包括 :读取模块 201 和处理模块 203。0086 其中,读取模块 201,用于读取任意一个终端的消息队列中未被使用过的编号的数量,获取任意一个终端的消息队列中的剩余编。

35、号数量值 ;0087 处理模块 203,用于将任意一个终端的消息队列中的剩余编号数量值与预先设置的阈值进行对比,确定是否需要生成触发信号 ;当该任意一个终端的消息队列中的剩余编号数量值大于等于预先设置的阈值时,不生成触发信号 ;当该任意一个终端的消息队列中的剩余编号数量值小于预先设置的阈值时,生成触发信号。0088 具体的,通过上述读取模块 201 和处理模块 203,对终端集群中终端的消息队列中的编号 ID 剩余数量进行读取,并判断编号 ID 剩余数量是否少于预先设置的阈值。当编号ID剩余数量小于阈值时,确定终端中的剩余编号ID的数量不足,需要补充。即向编号ID生说 明 书CN 104486。

36、407 A7/9 页10成服务器发送触发信号。在实际应用当中,对阈值的设置,可以根据编号 ID 需求数量进行设置。0089 优选的,根据本申请上述实施例,装置还包括 :记录模块 240。0090 其中,记录模块240,用于以追加法将N个内容不同的编号ID载入ID生成记录表。0091 具体的,通过记录模块 240,将每次生成的编号 ID 以追加法记录在 ID 生成记录表当中,用来对生成过的编号 ID 进行记录。0092 优选的,根据本申请上述实施例,上述生成模块 23 包括 :第一子读取模块 231、第二子读取模块 233 和子生成模块 235。0093 其中,第一子读取模块 231,用于读取 。

37、ID 生成记录表中已经保存的至少一个历史编号 ID。0094 第二子读取模块 233,用于读取预先设置的生成编号 ID 的数量 N。0095 子生成模块235,用于基于ID生成记录表中已经保存的最后一条历史编号ID的内容,顺序生成 N 个内容不同的编号 ID。0096 具体的,通过上述第一子读取模块231、第二子读取模块233和子生成模块235,对ID 生成记录表中的历史编号 ID 记录进行查询,以 ID 生成记录表中的最后一条历史编号 ID为基础,生成数量 N 个与历史编号 ID 不重复的新的编号 ID。0097 在实际应用中,可以通过顺序法顺序生成连续的新的不同的编号 ID,也可以以日期时。

38、间为基础顺序生成新的不同的编号 ID,还可以通过随机法,并经过去重处理,生成随机的新的不同的编号ID。当然,根据实际情况,也有其他编号ID的生成方法,都可以适用于本实施例提供的方法当中,具体不做赘述。0098 优选的,根据本申请上述实施例,上述装置还包括 :同步模块 241。0099 其中,同步模块 241,用于在记录模块 240 以追加法将所述 N 个内容不同的编号 ID载入 ID 生成记录表之后,将 ID 生成记录表同步至终端集群中的任意一个或多个终端中。0100 具体的,通过上述同步模块 241,可以将 ID 生成记录表同步至终端集群中的各个终端当中,用于对 ID 生成记录表的备份,以增。

39、强系统的可靠性。0101 优选的,如图 7 所示,根据本申请上述实施例,上述装置还包括 :第二接收模块 27和负载均衡模块 29。0102 其中,第二接收模块 27,用于接收外部编号请求终端的编号请求信息。0103 负载均衡模块 29,用于将编号请求信息定向发送至终端集群中满足负载均衡条件的终端上。0104 具体的,通过上述第二接收模块 27 和负载均衡模块 29,对外部编号请求终端的编号请求进行分配,将编号请求信息定向发送给终端集群中存储有消息队列的终端。均衡各个终端间的请求负载,保证负载均衡。0105 在实际应用当中,定向发送编号请求信息的方法可以通过平均分配法直接对编号请求信息进行分配。也可以通过阈值判断的方法,判断终端集群中的各个终端的负载率,通过对负载率与预先设置的阈值比对,只有当达到负载均衡条件时,才会向该终端发送编号请求信息。0106 在实际应用当中,如图 4 所示,在若干不同的终端上新建消息队列用来存储生成好的编号 ID。前端可以设置负载均衡服务器,当有获取编号 ID 的请求时,负载均衡服务器说 明 书CN 104486407 A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1