一种数据处理方法、装置、系统、设备及存储介质与流程

文档序号:31940579发布日期:2022-10-26 02:57阅读:82来源:国知局
一种数据处理方法、装置、系统、设备及存储介质与流程

1.本公开涉及互联网技术领域,尤其涉及一种数据处理方法、装置、系统、设备及存储介质。


背景技术:

2.随着云计算的兴起,系统通常需要将多个数据分配给多个服务节点,以实现同时并行处理很多数据请求。但是,当数据分配不均时,负载高的服务节点会存在数据积压的问题。
3.通用技术中,由于一致性哈希算法(consistent hashing)可以将数据请求使用哈希算法算出对应的哈希(hash)值,然后根据hash值的位置沿哈希环顺时针查找,将第一个匹配的服务节点确定为处理该数据请求中的数据的目标服务节点,一定程度上改善了数据分配不均导致的数据积压的问题。
4.但是,当某个服务实例宕机时,需要将哈希环上顺时针的下一跳服务实例的相关数据迁移到上一跳服务实例中,然后移除该服务实例,以维护系统的完整性。在此过程中,当该服务实例尚未移除时,数据请求仍可以被分配到该服务实例上,导致数据请求无法被响应。


技术实现要素:

5.本公开提供一种数据处理方法、装置、系统、设备及存储介质,用于解决服务实例宕机时,数据请求无法被响应的问题。
6.本公开实施例的技术方案如下:
7.根据本公开实施例的第一方面,提供一种数据处理方法,应用于目标设备;数据处理方法包括:接收目标服务节点的第一请求消息;响应于第一请求消息,从目标消息队列中确定目标数据块;目标数据块包括待处理数据;向目标服务节点发送目标数据块,以使得目标服务节点对目标数据块中的待处理数据进行数据处理,以得到待处理数据的处理结果。
8.可选的,上述“响应于第一请求消息,从目标消息队列中确定目标数据块”的方法,包括:响应于第一请求消息,确定目标消息队列;基于第一预设规则,从目标消息队列中确定目标数据块;第一预设规则包括:将目标消息队列中的首个数据块确定为目标数据块。
9.可选的,上述“响应于第一请求消息,确定目标消息队列”的方法,包括:响应于第一请求消息,获取目标序列号;目标序列号为目标消息队列在预先建立的任务队列中的序列号;任务队列包括:至少一个消息队列的标识、每个消息队列的标识在任务队列中的序列号;至少一个消息队列包括目标消息队列;将目标序列号对应的消息队列的标识,确定为目标消息队列的标识,并将与目标消息队列的标识对应的消息队列,确定为目标消息队列。
10.可选的,第一请求消息包括:与目标服务节点进行数据处理的次数对应的目标系数;上述“响应于第一请求消息,获取目标序列号”的方法,包括:根据目标系数、任务队列中的队列数量和预设算法,得到目标序列号;队列数量为任务队列中至少一个消息队列的标
识的数量;预设算法包括取模运算。
11.可选的,第一请求消息包括:目标序列号;上述“响应于第一请求消息,获取目标序列号”的方法,包括:从第一请求消息中获取目标序列号。
12.可选的,上述“接收目标服务节点的第一请求消息”之前,该方法还包括:接收目标服务节点的第二请求消息;响应于目标服务节点的第二请求消息,向目标服务节点发送队列数量;队列数量为任务队列中至少一个消息队列的标识的数量;队列数量用于指示目标服务节点确定目标序列号。
13.可选的,该方法还包括:获取至少一个数据集合;每个数据集合包括至少一个初始数据;对每个数据集合中的至少一个初始数据执行第一操作,建立至少一个消息队列;第一操作包括:基于第二预设规则,将至少一个初始数据划分为至少一个数据块;基于第三预设规则对至少一个数据块排序,建立一个消息队列;第二预设规则包括:根据至少一个初始数据的数据标识进行划分;第三预设规则包括:根据至少一个数据块的推送时间进行排序;在初始队列中添加至少一个消息队列的标识,建立任务队列,并生成每个消息队列的标识和任务队列中的序列号的对应关系。
14.可选的,上述“向目标服务节点发送目标数据块”之后,该方法还包括:在目标消息队列中,删除目标数据块,并更新预先存储的目标消息队列中的数据块的数量。
15.可选的,该方法还包括:当目标消息队列中的数据块的数量为零时,或者,目标消息队列中的数据块的数量不为零、且在预设时间内目标消息队列中的数据块的数量未发生变化时,在预先建立的任务队列中删除目标消息队列。
16.根据本公开实施例的第二方面,提供一种数据处理方法,应用于目标服务节点;数据处理方法包括:向目标设备发送第一请求消息;接收目标设备响应于第一请求消息,发送的目标数据块;目标数据块包括待处理数据;对目标数据块中的待处理数据进行数据处理,以得到待处理数据的处理结果。
17.可选的,第一请求消息包括:与目标服务节点进行数据处理的次数对应的目标系数;目标系数用于指示目标设备确定目标序列号;目标序列号为目标数据块所在的目标消息队列在预先建立的任务队列中的序列号;任务队列包括:至少一个消息队列的标识、每个消息队列的标识在任务队列中的序列号;至少一个消息队列包括目标消息队列。
18.可选的,第一请求消息包括:目标序列号;目标序列号为目标数据块所在的目标消息队列在预先建立的任务队列中的序列号;任务队列包括:至少一个消息队列的标识、每个消息队列的标识在任务队列中的序列号;至少一个消息队列包括目标消息队列;上述“向目标设备发送第一请求消息”之前,该方法还包括:向目标设备发送第二请求消息;接收目标设备响应于第二请求消息,发送的任务队列中的队列数量;队列数量为任务队列中至少一个消息队列的标识的数量;根据与目标服务节点进行数据处理的次数对应的目标系数、队列数量和预设算法,得到目标序列号;预设算法包括取模运算。
19.根据本公开实施例的第三方面,提供一种数据处理装置,应用于目标设备;数据处理装置包括:通信单元和处理单元;通信单元,用于接收目标服务节点的第一请求消息;处理单元,用于响应于通信单元接收的第一请求消息,从目标消息队列中确定目标数据块;目标数据块包括待处理数据;通信单元,还用于向目标服务节点发送处理单元确定的目标数据块,以使得目标服务节点对目标数据块中的待处理数据进行数据处理,以得到待处理数
据的处理结果。
20.可选的,处理单元,具体用于响应于第一请求消息,确定目标消息队列;基于第一预设规则,从目标消息队列中确定目标数据块;第一预设规则包括:将目标消息队列中的首个数据块确定为目标数据块。
21.可选的,处理单元,具体用于响应于第一请求消息,获取目标序列号;目标序列号为目标消息队列在预先建立的任务队列中的序列号;任务队列包括:至少一个消息队列的标识、每个消息队列的标识在任务队列中的序列号;至少一个消息队列包括目标消息队列;将目标序列号对应的消息队列的标识,确定为目标消息队列的标识,并将与目标消息队列的标识对应的消息队列,确定为目标消息队列。
22.可选的,第一请求消息包括:与目标服务节点进行数据处理的次数对应的目标系数;处理单元,具体用于根据目标系数、任务队列中的队列数量和预设算法,得到目标序列号;队列数量为任务队列中至少一个消息队列的标识的数量;预设算法包括取模运算。
23.可选的,第一请求消息包括:目标序列号;处理单元,具体用于从第一请求消息中获取目标序列号。
24.可选的,通信单元,还用于:接收目标服务节点的第二请求消息;响应于目标服务节点的第二请求消息,向目标服务节点发送队列数量;队列数量为任务队列中至少一个消息队列的标识的数量;队列数量用于指示目标服务节点确定目标序列号。
25.可选的,处理单元,还用于获取至少一个数据集合;每个数据集合包括至少一个初始数据;对每个数据集合中的至少一个初始数据执行第一操作,建立至少一个消息队列;第一操作包括:基于第二预设规则,将至少一个初始数据划分为至少一个数据块;基于第三预设规则对至少一个数据块排序,建立一个消息队列;第二预设规则包括:根据至少一个初始数据的数据标识进行划分;第三预设规则包括:根据至少一个数据块的推送时间进行排序;在初始队列中添加至少一个消息队列的标识,建立任务队列,并生成每个消息队列的标识和任务队列中的序列号的对应关系。
26.可选的,处理单元,还用于在目标消息队列中,删除目标数据块,并更新预先存储的目标消息队列中的数据块的数量。
27.可选的,处理单元,还用于当目标消息队列中的数据块的数量为零时,或者,目标消息队列中的数据块的数量不为零、且在预设时间内目标消息队列中的数据块的数量未发生变化时,在预先建立的任务队列中删除目标消息队列。
28.根据本公开实施例的第四方面,提供一种数据处理装置,应用于目标服务节点;数据处理装置包括:通信单元和处理单元;通信单元,用于向目标设备发送第一请求消息;通信单元,还用于接收目标设备响应于第一请求消息,发送的目标数据块;目标数据块包括待处理数据;处理单元,用于对通信单元接收的目标数据块中的待处理数据进行数据处理,以得到待处理数据的处理结果。
29.可选的,第一请求消息包括:与目标服务节点进行数据处理的次数对应的目标系数;目标系数用于指示目标设备确定目标序列号;目标序列号为目标数据块所在的目标消息队列在预先建立的任务队列中的序列号;任务队列包括:至少一个消息队列的标识、每个消息队列的标识在任务队列中的序列号;至少一个消息队列包括目标消息队列。
30.可选的,第一请求消息包括:目标序列号;目标序列号为目标数据块所在的目标消
息队列在预先建立的任务队列中的序列号;任务队列包括:至少一个消息队列的标识、每个消息队列的标识在任务队列中的序列号;至少一个消息队列包括目标消息队列;通信单元,还用于向目标设备发送第二请求消息;接收目标设备响应于第二请求消息,发送的任务队列中的队列数量;队列数量为任务队列中至少一个消息队列的标识的数量;处理单元,还用于根据与目标服务节点进行数据处理的次数对应的目标系数、队列数量和预设算法,得到目标序列号;预设算法包括取模运算。
31.根据本公开实施例的第五方面,提供一种数据处理系统,包括:目标设备和目标服务节点;目标设备,用于执行上述第一方面中任一种可选的数据处理方法;目标服务节点,用于执行上述第二方面中任一种可选的数据处理方法。
32.根据本公开实施例的第六方面,提供一种数据处理装置,可以包括:处理器和用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现上述第一方面中任一种,或者第二方面中任一种可选的数据处理方法。
33.根据本公开实施例的第七方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由数据处理装置的处理器执行时,使得数据处理装置能够执行上述第一方面中任一种,或者第二方面中任一种可选的数据处理方法。
34.根据本公开实施例的第八方面,提供一种计算机程序产品,包含指令,当其在数据处理装置上运行时,使得数据处理装置执行上述第一方面中任一种,或者第二方面中任一种可选的数据处理方法。
35.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
36.本技术提供的技术方案至少带来以下有益效果:
37.基于上述任一方面,本技术中,目标设备接收到目标服务节点的第一请求消息之后,可以响应于第一请求消息,从目标消息队列中确定目标数据块,并向目标服务节点发送目标数据块。目标服务节点对目标数据块中的待处理数据进行数据处理,以得到待处理数据的处理结果。这样一来,目标服务节点需要先发送第一请求消息,才会分配到待处理数据,避免了目标服务节点发生宕机时,目标设备仍向目标服务节点分配数据导致的数据请求无法被响应的问题,进一步提高了数据处理的效率。相对于通用技术,简化了负载均衡算法,提高了负载均衡过程中的应答效率,并减少了引入注册发现数据请求导致的复杂性,使目标服务节点自由控制数据处理的速度,从而提高数据处理效率,提升了客户的体验感。
附图说明
38.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
39.图1为本公开实施例提供的一种数据处理系统示意图;
40.图2示出了本公开实施例提供的一种目标设备的结构示例图;
41.图3示出了本公开实施例提供的一种数据处理方法的流程示意图一;
42.图4示出了本公开实施例提供的一种数据处理方法的流程示意图二;
43.图5示出了本公开实施例提供的一种数据处理方法的流程示意图三;
44.图6示出了本公开实施例提供的一种数据处理方法的流程示意图四;
45.图7示出了本公开实施例提供的一种数据处理方法的流程示意图五;
46.图8示出了本公开实施例提供的一种数据处理方法的流程示意图六;
47.图9示出了本公开实施例提供的一种目标设备执行数据处理的示意图;
48.图10示出了本公开实施例提供的一种数据处理方法的流程示意图七;
49.图11示出了本公开实施例提供的一种数据处理方法的流程示意图八;
50.图12示出了本公开实施例提供的一种数据处理装置的结构示意图一;
51.图13示出了本公开实施例提供的一种数据处理装置的结构示意图二;
52.图14示出了本公开实施例提供的一种数据处理装置的结构示意图三。
具体实施方式
53.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
54.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
55.还应当理解的是,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元素和/或组件的存在或添加。
56.本公开所涉及的数据可以为经用户授权或者经过各方充分授权的数据。
57.如背景技术中所描述,当某个服务实例宕机时,需要将哈希环上顺时针的下一跳服务实例的相关数据迁移到上一跳服务实例中,然后移除该服务实例,以维护系统的完整性。在此过程中,当该服务实例尚未移除时,数据请求仍可以被分配到该服务实例上,导致数据请求无法被响应。
58.基于此,本公开实施例提供一种数据处理方法,目标设备接收到目标服务节点的第一请求消息之后,可以响应于第一请求消息,从目标消息队列中确定目标数据块,并向目标服务节点发送目标数据块。目标服务节点对目标数据块中的待处理数据进行数据处理,以得到待处理数据的处理结果。这样一来,目标服务节点需要先发送第一请求消息,才会分配到待处理数据,避免了目标服务节点发生宕机时,目标设备仍向目标服务节点分配数据导致的数据请求无法被响应的问题,进一步提高了数据处理的效率。相对于通用技术,简化了负载均衡算法,提高了负载均衡过程中的应答效率,并减少了引入注册发现数据请求导致的复杂性,使目标服务节点自由控制数据处理的速度,从而提高数据处理效率,提升了客户的体验感。
59.以下结合附图对本公开实施例提供的数据处理方法进行示例性说明:
60.图1为本公开实施例提供的一种数据处理系统示意图,如图1所示,该数据处理系统中可以包括:目标设备110、数据采集装置120和多个服务节点(包括目标服务节点130)。目标设备110分别与数据采集装置120、多个服务节点之间连接。
61.可选的,目标设备110与数据采集装置120、多个服务节点之间可以采用有线方式连接,也可以采用无线方式连接,本公开实施例对此不作限定。
62.具体的,目标设备110可以向多个服务节点分配数据采集装置120采集到的待处理数据。多个服务节点对待处理数据进行数据处理,以得到待处理数据的处理结果。
63.一些实施例中,目标设备110上需要运行有相应的功能模块来提供相应的数据分配服务,如远程字典服务(remote dictionary server,redis)内存数据库、关系型数据库(mysql)等。目标设备110可以包括但不限于后台服务器、组件服务器、数据处理服务器等。目标设备110可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本技术对目标设备110的具体实现方式也不作限制。
64.一些实施例中,数据采集装置120可以通过系统对接、模板导入等方式采集初始数据。数据采集装置120可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本技术对数据采集装置120的具体实现方式也不作限制。
65.一些实施例中,服务节点可以在每个轮询周期向目标设备110发送请求消息,并对目标设备110响应于请求消息发送的待处理数据进行处理,得到处理结果。这里,该数据处理可以包括但不限于:待处理数据的路由转发、移动性管理、会话管理、逻辑链路管理、鉴权和加密、话单产生和输出等。服务节点可以包括但不限于后台服务器、组件服务器、数据处理服务器等单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本技术对服务节点的具体实现方式也不作限制。
66.需要说明的是,上述目标设备110和服务节点均可以称为电子设备。
67.可选的,服务节点和数据采集装置120均可以为目标设备110内部的功能模块,也可以分别部署在与目标设备110相互独立设置的设备上。
68.容易理解的是,当服务节点和数据采集装置120均是目标设备110内部的功能模块时,服务节点、数据采集装置120和目标设备110之间的交互方式为目标设备110内部模块之间的交互。这种情况下,二者之间的交互流程与“服务节点和数据采集装置120均部署在与目标设备110相互独立设置的设备上”的情况下的二者的交互流程相同。
69.图2为本公开实施例提供的一种目标设备的结构示意图,如图2所示,当服务节点和数据采集装置均是目标设备内部的功能模块时,该目标设备110中可以包括:数据采集装置210、关系型数据库220、内存数据库230和多个服务节点(包括目标服务节点240)。
70.一些实施例中,数据采集装置210可以用于实现图1中数据采集装置120执行的操作。
71.关系型数据库220可以将数据采集装置210采集到的初始数据划分为至少一个数据块。
72.内存数据库230可以将关系型数据库220得到的至少一个数据块排序得到待处理的消息队列,并响应于服务节点的请求消息,向服务节点发送消息队列中的数据块。
73.服务节点可以在每个轮询周期向内存数据库230发送请求消息,并对内存数据库230响应于请求消息发送的数据块中的待处理数据进行处理,得到处理结果。
74.本公开实施例提供的数据处理方法可以应用于前述图1所示的应用场景中的目标
设备110和目标服务节点130。如图3所示,该数据处理方法可以包括:
75.s301、目标服务节点向目标设备发送第一请求消息。
76.相应的,目标设备接收目标服务节点的第一请求消息。
77.在一种可以实现的方式中,目标服务节点可以在每个轮询周期向目标设备发送第一请求消息。相应的,目标设备接收目标服务节点的第一请求消息。
78.在一种可以实现的方式中,目标设备响应于第一请求消息,可以先获取目标序列号。以使得后续可以从目标序列号对应的目标消息队列中,确定向目标服务节点发送的目标数据块。
79.可选的,在目标设备响应于第一请求消息,可以先获取目标序列号的情况下,第一请求消息可以包括:与目标服务节点进行数据处理的次数对应的目标系数,或者,目标数据块所在的目标消息队列在预先建立的任务队列中的目标序列号。
80.其中,目标序列号为目标数据块所在的目标消息队列在预先建立的任务队列中的序列号。任务队列包括:至少一个消息队列的标识、每个消息队列的标识在任务队列中的序列号;至少一个消息队列包括目标消息队列。
81.当第一请求消息包括目标系数时,目标系数用于指示目标设备确定目标序列号。
82.可选的,第一请求消息还可以包括:目标服务节点的节点标识。
83.可选的,节点标识可以为服务节点的分段标识符(segment identifier,sid)、互联网协议(internet protocol,ip)地址、或者介质访问控制(media access control,mac)地址等。
84.s302、目标设备响应于第一请求消息,从目标消息队列中确定目标数据块。
85.其中,目标数据块包括待处理数据。
86.可选的,待处理数据可以包括:声音、图像等模拟数据,或者符号、文字等数字数据。
87.可选的,目标数据块还可以包括:待处理数据的处理策略。
88.可选的,消息队列可以是先进先出(first in-first out,fifo)队列。
89.在一种可以实现的方式中,目标设备响应于第一请求消息,从目标消息队列中确定目标数据块可以包括:目标设备响应于第一请求消息,确定目标消息队列。然后,目标设备基于第一预设规则,从目标消息队列中确定目标数据块。
90.在另一种可以实现的方式中,当第一请求消息包括目标服务节点的节点标识时,目标设备响应于第一请求消息,从目标消息队列中确定目标数据块可以包括:目标设备根据目标服务节点的节点标识,确定预先约定的目标服务节点可以处理的数据的服务类型,然后,目标设备根据服务类型,确定符合该服务类型的目标消息队列,并基于第一预设规则,从目标消息队列中确定目标数据块。
91.s303、目标设备向目标服务节点发送目标数据块。
92.相应的,目标服务节点接收目标设备响应于第一请求消息,发送的目标数据块。
93.s304、目标服务节点对目标数据块中的待处理数据进行数据处理,以得到待处理数据的处理结果。
94.在一种可以实现的方式中,目标服务节点对目标数据块中的待处理数据进行数据处理的方法可以包括:目标服务节点获取待处理数据对应的处理策略,然后,目标服务节点
基于待处理数据的处理策略,对待处理数据进行数据处理。
95.在一种可以实现的方式中,当目标数据块包括:待处理数据,以及待处理数据的处理策略时,目标服务节点获取待处理数据对应的处理策略的方法可以包括:目标服务节点识别目标数据块中携带的待处理数据的处理策略。
96.上述实施例提供的技术方案至少带来以下有益效果:由s301-s304可知,目标设备接收到目标服务节点的第一请求消息之后,可以响应于第一请求消息,从目标消息队列中确定目标数据块,并向目标服务节点发送目标数据块。目标服务节点对目标数据块中的待处理数据进行数据处理,以得到待处理数据的处理结果。这样一来,目标服务节点需要先发送第一请求消息,才会分配到待处理数据,避免了目标服务节点发生宕机时,目标设备仍向目标服务节点分配数据导致的数据请求无法被响应的问题,进一步提高了数据处理的效率。相对于通用技术,简化了负载均衡算法,提高了负载均衡过程中的应答效率,并减少了引入注册发现数据请求导致的复杂性,使目标服务节点自由控制数据处理的速度,从而提高数据处理效率,提升了客户的体验感。
97.在一种可选的实施例中,目标设备响应于第一请求消息,从目标消息队列中确定目标数据块的方法,在图3示出的方法实施例的基础上,本实施例提供一种可能实现方式。结合图3,如图4所示,s302中目标设备响应于第一请求消息,从目标消息队列中确定目标数据块的方法包括:
98.s401、目标设备响应于第一请求消息,确定目标消息队列。
99.在一种可以实现的方式中,当第一请求消息包括目标系数或者目标序列号时,目标设备响应于第一请求消息,确定目标消息队列的方法可以包括:目标设备响应于第一请求消息,确定目标消息队列在任务队列中的目标序列号。然后,目标设备将目标序列号对应的消息队列的标识,确定为目标消息队列的标识,并将与目标消息队列的标识对应的消息队列,确定为目标消息队列。
100.在另一种可以实现的方式中,当第一请求包括目标服务节点的节点标识时,目标设备响应于第一请求消息,确定目标消息队列可以包括:目标设备可以根据预先约定的服务节点对应的消息队列的对应关系中,确定与目标服务节点的节点标识对应的消息队列的标识。然后,将与目标消息队列的标识对应的消息队列,确定为目标消息队列。
101.s402、目标设备基于第一预设规则,从目标消息队列中确定目标数据块。
102.可选的,第一预设规则可以包括:将目标消息队列中的首个数据块确定为目标数据块。
103.示例性的,如表1所示,预设目标设备响应于目标服务节点的第一请求消息,确定目标消息队列g1(依次包括:数据块k1-1、数据块k1-2、数据块k1-3、
……
、k1-n)。目标设备可以将目标消息队列中的首个数据块,即数据块k1-1确定为目标数据块,并向目标服务节点发送数据块k1-1。
104.表1目标消息队列g1
[0105][0106]
上述实施例提供的技术方案至少带来以下有益效果:由s401-s402可知,目标设备
可以响应于第一请求消息,确定目标消息队列,然后,基于第一预设规则,可以从目标消息队列中确定目标数据块。这样一来,当目标消息队列中包括至少一个数据块时,可以基于第一预设规则,从目标消息队列中确定目标数据块。
[0107]
在一种可选的实施例中,当第一请求消息包括目标系数时,目标设备响应于第一请求消息,确定目标消息队列的方法,在图4示出的方法实施例的基础上,本实施例提供一种可能实现方式。结合图4,如图5所示,s401中目标设备响应于第一请求消息,确定目标消息队列的方法包括:
[0108]
s501、目标设备响应于第一请求消息,获取目标序列号。
[0109]
其中,目标序列号为目标消息队列在预先建立的任务队列中的序列号。
[0110]
任务队列包括:至少一个消息队列的标识、每个消息队列的标识在任务队列中的序列号。至少一个消息队列包括目标消息队列。
[0111]
可选的,序列号可以包括预设的索引值(index)。
[0112]
可选的,任务队列可以是fifo队列。
[0113]
在一种可以实现的方式中,当第一请求消息包括目标系数时,目标设备响应于第一请求消息,获取目标序列号的方法可以包括:目标设备可以从第一请求消息中获取目标系数,然后,根据目标系数、预先建立的任务队列中的队列数量和预设算法,得到目标消息队列在任务队列中的目标序列号。
[0114]
在另一种可以实现的方式中,当第一请求包括目标序列号时,目标设备响应于第一请求消息,获取目标序列号的方法可以包括:目标设备可以从第一请求消息中获取目标序列号。
[0115]
s502、目标设备将目标序列号对应的消息队列的标识,确定为目标消息队列的标识,并将与目标消息队列的标识对应的消息队列,确定为目标消息队列。
[0116]
示例性的,预设目标序列号为2,目标设备将序列号为2对应的消息队列的标识g1,确定为目标消息队列的标识。然后,目标设备将标识g1对应的消息队列为目标消息队列。
[0117]
上述实施例提供的技术方案至少带来以下有益效果:由s501-s502可知,目标设备可以响应于第一请求消息,获取目标序列号。然后,目标设备可以将目标序列号对应的消息队列的标识,确定为目标消息队列的标识,并将与目标消息队列的标识对应的消息队列,确定为目标消息队列。这样一来,当目标设备预先建立了至少一个消息队列时,在接收到第一请求消息之后,可以根据目标序列号确定目标消息队列,以使得后续可以从目标消息队列中确定目标数据块。
[0118]
在一种可选的实施例中,当第一请求消息包括目标系数时,目标设备获取目标序列号的方法,在图5示出的方法实施例的基础上,本实施例提供一种可能实现方式。结合图5,如图6所示,s501中目标设备响应于第一请求消息,获取目标序列号的方法包括:
[0119]
s601、目标设备根据目标系数、任务队列中的队列数量和预设算法,得到目标序列号。
[0120]
其中,队列数量为任务队列中至少一个消息队列的标识的数量。
[0121]
可选的,预设算法可以包括取模运算。
[0122]
当预设算法为取模运算时,目标系数、队列数量和目标序列号满足以下公式:
[0123]
t%l=n;
[0124]
其中,t为目标系数,l为队列数量,n为目标序列号。
[0125]
示例性的,如表2所示,预设目标设备预先建立的任务队列r1包括:消息队列h0(序列号为1)、消息队列g1(序列号为2)、消息队列h1(序列号为3)、消息队列h2(序列号为4)、消息队列l1(序列号为5)。
[0126]
表2任务队列r1
[0127][0128]
由表2可知,任务队列r1的队列数量为5,目标设备接收到的第一请求消息中包括目标服务节点的目标系数为2。目标设备对队列数量5和目标系数2进行取模运算:2%5=2,故得到目标序列号为2。
[0129]
上述实施例提供的技术方案至少带来以下有益效果:由s601可知,目标设备可以根据目标系数、任务队列中的队列数量和预设算法,得到目标序列号。这样一来,当第一请求消息包括目标系数时,目标设备可以根据目标系数、任务队列中的队列数量和预设算法快速、准确的获取目标序列号,以使得后续可以根据目标序列号,确定目标消息队列。
[0130]
在一种可选的实施例中,当第一请求消息包括目标序列号时,目标设备获取目标序列号的方法,在图5示出的方法实施例的基础上,本实施例提供一种可能实现方式。结合图5,如图7所示,s501中目标设备响应于第一请求消息,获取目标序列号的方法包括:
[0131]
s701、目标设备从第一请求消息中获取目标序列号。
[0132]
上述实施例提供的技术方案至少带来以下有益效果:由s701可知,目标设备可以从第一请求消息中获取目标序列号。这样一来,当第一请求消息包括目标序列号时,目标设备可以从第一请求消息中快速、准确的获取目标序列号,以使得后续可以根据目标序列号,确定目标消息队列。
[0133]
在一种可选的实施例中,当第一请求消息包括目标序列号时,如图7所示,s301之前,该数据处理方法还包括:
[0134]
s702、目标服务节点向目标设备发送第二请求消息。
[0135]
相应的,目标设备接收目标服务节点的第二请求消息。
[0136]
可选的,第二请求消息可以包括:目标服务节点的节点标识。
[0137]
s703、目标设备响应于目标服务节点的第二请求消息,向目标服务节点发送队列数量。
[0138]
s704、目标服务节点根据与目标服务节点进行数据处理的次数对应的目标系数、队列数量和预设算法,得到目标序列号。
[0139]
可选的,预设算法包括取模运算。
[0140]
示例性的,如上述表2所示,预设目标设备接收到目标服务节点的第二请求消息时,任务队列r1包括:消息队列m0(序列号为1)、消息队列g1(序列号为2)、消息队列m1(序列号为3)、消息队列m2(序列号为4)、消息队列l1(序列号为5)。
[0141]
由表2可知,任务队列r1的队列数量为5。目标设备向目标服务节点发送任务队列r1的队列数量为5。目标服务节点的目标系数为2。目标服务节点对队列数量5和目标系数2进行取模运算:2%4=2,故得到目标序列号为2。
[0142]
上述实施例提供的技术方案至少带来以下有益效果:由s702-s704可知,目标服务节点向目标设备发送第二请求消息之后,目标设备可以响应于目标服务节点的第二请求消息,向目标服务节点发送队列数量。然后,目标服务节点可以根据与目标服务节点进行数据处理的次数对应的目标系数、队列数量和预设算法,得到目标序列号。这样一来,目标服务节点可以在发送第一请求消息之前,根据目标系数、队列数量和预设算法,快速、准确的获取目标序列号,以使得后续可以向目标设备发送包括目标序列号的第一请求消息。
[0143]
在一种可选的实施例中,本实施例提供一种可能实现方式。如图8所示,在一种可选的实施例中,如图8所示,该数据处理方法还包括:
[0144]
s801、目标设备获取至少一个数据集合。
[0145]
其中,每个数据集合包括至少一个初始数据。
[0146]
可选的,初始数据可以包括:声音、图像等模拟数据,或者符号、文字等数字数据。
[0147]
可选的,每个数据集合还可以包括:每个初始数据对应的处理策略。
[0148]
s802、目标设备对每个数据集合中的至少一个初始数据执行第一操作,建立至少一个消息队列。
[0149]
第一操作包括:基于第二预设规则,将至少一个初始数据划分为至少一个数据块;基于第三预设规则对至少一个数据块排序,建立一个消息队列。
[0150]
第二预设规则包括:根据至少一个初始数据的数据标识进行划分。
[0151]
第三预设规则包括:根据至少一个数据块的推送时间进行排序。
[0152]
s803、目标设备在初始队列中添加至少一个消息队列的标识,建立任务队列,并生成每个消息队列的标识和任务队列中序列号的对应关系。
[0153]
在一种可以实现的方式中,当任务队列是fifo队列时,目标设备在初始队列中添加至少一个消息队列的标识,建立任务队列的方法可以包括:目标设备将每个消息队列的标识依次添加到初始队列中的首个状态为空的位置中。引入内存数据库的多个fifo队列,充分利用内存数据库访问速度高的特性以及fifo队列操作先入先出的特性提高负载均衡的效率。
[0154]
示例性的,结合图2,如图9所示,数据采集装置210获取到2个数据集合:数据集合k1和数据集合l1。数据集合k1中包括:a公司100个在职员工的初始数据(包括:工号、工作天数、出差天数、考勤制度等)。数据集合k2中包括:b公司150个在职员工的初始数据(包括:工号、工作天数、出差天数、考勤制度等)。
[0155]
关系型数据库220将数据采集装置210获取到的数据集合k1按照初始数据对应的a公司100个在职员工的工号不同,划分为100个数据块(包括:数据块k1-1、数据块k1-2、数据块k1-3、
……
、数据块k1-100)。关系型数据库220将数据采集装置210获取到的数据集合k2按照初始数据对应的b公司150个在职员工的工号不同,划分为150个数据块(包括:数据块k2-1、数据块k2-2、数据块k2-3、
……
、数据块k2-150)。
[0156]
然后,关系型数据库220分别将数据集合k1和数据集合k2中的数据块依次推送到内存数据库230。
[0157]
内存数据库230根据推送时间,分别将数据集合k1和数据集合k2中的数据块依次排序,首先得到数据集合k1对应的消息队列g1,然后得到数据集合k2对应的消息队列l1。
[0158]
接着,内存数据库230在初始队列中的m1个位置中首个状态为空的位置(序列号为
2)中添加消息队列g1的标识“g1”,在次个状态为空的位置(序列号为3)中添加消息队列l1的标识“l1”,建立任务队列r1,并生成“g1”与序列号2、以及“l1”与序列号3的对应关系。
[0159]
上述实施例提供的技术方案至少带来以下有益效果:由s801-s803可知,目标设备获取到至少一个数据集合之后,可以对每个数据集合中的至少一个初始数据执行第一操作,建立至少一个消息队列。然后,目标设备可以在初始队列中添加至少一个消息队列的标识,建立任务队列,并生成每个消息队列的标识和任务队列中序列号的对应关系。这样一来,目标设备可以存储包括至少一个消息队列的任务队列,以使得后续可以从任务队列中确定目标消息队列。
[0160]
在一种可选的实施例中,在目标设备向目标服务节点发送目标数据块之后,在图3示出的方法实施例的基础上,本实施例提供一种可能实现方式。结合图3,如图10所示,s303之后,该数据处理方法还包括:
[0161]
s1001、目标设备在目标消息队列中,删除目标数据块,并更新预先存储的目标消息队列中的数据块的数量。
[0162]
示例性的,预设目标设备建立数据集合k1的消息队列g1(包括:数据块k1-1、数据块k1-2、数据块k1-3、
……
、k1-100),并存储消息队列g1中数据块的数量为100。在目标设备向目标服务节点发送消息队列g1中的数据块k1-1之后,目标设备在消息队列g1中删除数据块k1-1,并将消息队列g1中数据块的数量为100更新为99。
[0163]
上述实施例提供的技术方案至少带来以下有益效果:由s1001可知,目标设备可以在目标消息队列中,删除目标数据块,并更新预先存储的目标消息队列中的数据块的数量。这样一来,目标设备可以将已分配到目标服务节点的目标数据块删除,减少内存资源占用,同时还可以避免重复处理目标数据块中的待处理数据,实现对数据的均衡处理。
[0164]
在一种可选的实施例中,在目标设备更新预先存储的目标消息队列中的数据块的数量之后,在图10示出的方法实施例的基础上,本实施例提供一种可能实现方式。结合图10,如图11所示,s1001之后,该数据处理方法还包括:
[0165]
s1101、当目标消息队列中的数据块的数量为零时,或者,目标消息队列中的数据块的数量不为零、且在预设时间内目标消息队列中的数据块的数量未发生变化时,目标设备在预先建立的任务队列中删除目标消息队列。
[0166]
当目标消息队列中的数据块的数量不为零、且在预设时间内目标消息队列中的数据块的数量未发生变化时,可以认为目标消息队列中的数据块的处理过程中出错,目标设备可以发送告警消息,并在预先建立的任务队列中删除目标消息队列。
[0167]
结合上述示例,在目标设备在消息队列g1中删除数据块k1-1,并将消息队列g1中数据块的数量为100更新为99之后的15秒内,目标设备识别到消息队列g1中数据块的数量再未发生变化,将消息队列g1从任务队列r1中删除。
[0168]
当目标消息队列中的数据块的数量为零时,表示目标消息队列中的数据块全部处理完成,目标设备可以在预先建立的任务队列中删除目标消息队列。
[0169]
示例性的,预设目标设备建立数据集合k1的消息队列g1(包括:k1-100),数据块的数量为1。在目标设备向目标服务节点发送消息队列g1中的数据块k1-100之后,目标设备在消息队列g1中删除数据块k1-1,并将消息队列g1中数据块的数量为1更新为0。目标设备识别到消息队列g1中数据块的数量为零,将消息队列g1从任务队列r1中删除。
[0170]
上述实施例提供的技术方案至少带来以下有益效果:由s1101可知,当目标消息队列中的数据块的数量不为零、且在预设时间内目标消息队列中的数据块的数量未发生变化时,可以认为目标消息队列中的数据块的处理过程中出错,目标设备可以发送告警消息,并在预先建立的任务队列中删除目标消息队列。当目标消息队列中的数据块的数量为零时,表示目标消息队列中的数据块全部处理完成,目标设备可以在预先建立的任务队列中删除目标消息队列。这样一来,目标设备可以及时清理内存,减少资源占用。
[0171]
可以理解的,在实际实施时,本公开实施例所述的数据处理装置可以包含有用于实现前述对应数据处理方法的一个或多个硬件结构和/或软件模块,这些执行硬件结构和/或软件模块可以构成一个电子设备。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本公开能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
[0172]
基于这样的理解,本公开实施例还对应提供一种数据处理装置。图12示出了本公开实施例提供的数据处理装置的结构示意图一。如图12所示,应用于目标设备;该数据处理装置包括:通信单元1201和处理单元1202。
[0173]
通信单元1201,用于接收目标服务节点的第一请求消息。
[0174]
处理单元1202,用于响应于通信单元1201接收的第一请求消息,从目标消息队列中确定目标数据块;目标数据块包括待处理数据。
[0175]
通信单元1201,还用于向目标服务节点发送处理单元1202确定的目标数据块,以使得目标服务节点对目标数据块中的待处理数据进行数据处理,以得到待处理数据的处理结果。
[0176]
可选的,处理单元1202,具体用于响应于第一请求消息,确定目标消息队列;基于第一预设规则,从目标消息队列中确定目标数据块;第一预设规则包括:将目标消息队列中的首个数据块确定为目标数据块。
[0177]
可选的,处理单元1202,具体用于响应于第一请求消息,获取目标序列号;目标序列号为目标消息队列在预先建立的任务队列中的序列号;任务队列包括:至少一个消息队列的标识、每个消息队列的标识在任务队列中的序列号;至少一个消息队列包括目标消息队列;将目标序列号对应的消息队列的标识,确定为目标消息队列的标识,并将与目标消息队列的标识对应的消息队列,确定为目标消息队列。
[0178]
可选的,第一请求消息包括:与目标服务节点进行数据处理的次数对应的目标系数;处理单元1202,具体用于根据目标系数、任务队列中的队列数量和预设算法,得到目标序列号;队列数量为任务队列中至少一个消息队列的标识的数量;预设算法包括取模运算。
[0179]
可选的,第一请求消息包括:目标序列号;处理单元1202,具体用于从第一请求消息中获取目标序列号。
[0180]
可选的,通信单元1201,还用于:接收目标服务节点的第二请求消息;响应于目标服务节点的第二请求消息,向目标服务节点发送队列数量;队列数量用于指示目标服务节点确定目标序列号。
[0181]
可选的,处理单元1202,还用于获取至少一个数据集合;每个数据集合包括至少一
个初始数据;对每个数据集合中的至少一个初始数据执行第一操作,建立至少一个消息队列;第一操作包括:基于第二预设规则,将至少一个初始数据划分为至少一个数据块;基于第三预设规则对至少一个数据块排序,建立一个消息队列;第二预设规则包括:根据至少一个初始数据的数据标识进行划分;第三预设规则包括:根据至少一个数据块的推送时间进行排序;在初始队列中添加至少一个消息队列的标识,建立任务队列,并生成每个消息队列的标识和任务队列中的序列号的对应关系。
[0182]
可选的,处理单元1202,还用于在目标消息队列中,删除目标数据块,并更新预先存储的目标消息队列中的数据块的数量。
[0183]
可选的,处理单元1202,还用于当目标消息队列中的数据块的数量为零时,或者,目标消息队列中的数据块的数量不为零、且在预设时间内目标消息队列中的数据块的数量未发生变化时,在预先建立的任务队列中删除目标消息队列。
[0184]
另外,本公开实施例还对应提供一种数据处理装置。图13示出了本公开实施例提供的数据处理装置的结构示意图二。如图13所示,应用于目标服务节点;数据处理装置包括:通信单元1301和处理单元1302。
[0185]
通信单元1301,用于向目标设备发送第一请求消息。
[0186]
通信单元1301,还用于接收目标设备响应于第一请求消息,发送的目标数据块;目标数据块包括待处理数据。
[0187]
处理单元1302,用于对通信单元1301接收的目标数据块中的待处理数据进行数据处理,以得到待处理数据的处理结果。
[0188]
可选的,处理单元1302,还用于根据目标系数、队列数量和预设算法,得到目标序列号;预设算法包括取模运算。
[0189]
如上所述,本公开实施例可以根据上述方法示例对目标设备/目标服务节点进行功能模块的划分。其中,上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。另外,还需要说明的是,本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
[0190]
关于上述实施例中的数据处理装置,其中各个模块执行操作的具体方式、以及具备的有益效果,均已经在前述方法实施例中进行了详细描述,此处不再赘述。
[0191]
本公开实施例还提供一种数据处理装置。图14示出了本公开实施例提供的数据处理装置的结构示意图三。该数据处理装置可以包括至少一个处理器221,通信总线222,存储器223以及至少一个通信接口224。
[0192]
处理器221可以是一个处理器(central processing units,cpu),微处理单元,asic,或一个或多个用于控制本公开方案程序执行的集成电路。结合图13,处理器221用于执行通信单元1301和处理单元1302执行的操作。
[0193]
通信总线222可包括一通路,在上述组件之间传送信息。
[0194]
通信接口224,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如电子设备、以太网,无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan)等。
[0195]
存储器223可以是只读存储器(read-only memory,rom)或可存储静态信息和指令
的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起。
[0196]
其中,存储器223用于存储执行本公开方案的应用程序代码,并由处理器221来控制执行。处理器221用于执行存储器223中存储的应用程序代码,从而实现本公开方法中的功能。
[0197]
在具体实现中,作为一种实施例,处理器221可以包括一个或多个cpu,例如图14中的处理器0和处理器1。
[0198]
在具体实现中,作为一种实施例,数据处理装置可以包括多个处理器,例如图14中的处理器221和处理器225。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
[0199]
在具体实现中,作为一种实施例,数据处理装置还可以包括输入设备226和输出设备227。输入设备226和输出设备227通信,可以以多种方式接受用户的输入。例如,输入设备226可以是鼠标、键盘、触摸屏设备或传感设备等。输出设备227和处理器221通信,可以以多种方式来显示信息。例如,输出设备227可以是液晶显示器(liquid crystal display,lcd),发光二级管(light emitting diode,led)显示设备等。
[0200]
本领域技术人员可以理解,图14中示出的结构并不构成对数据处理装置的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0201]
本公开还提供了一种数据处理系统,该数据处理系统包括目标设备和目标服务节点;
[0202]
所述目标设备,用于执行上述图3-图11所示的数据处理方法。
[0203]
所述目标服务节点,用于执行上述图3-图7所示的数据处理方法。
[0204]
本公开还提供了一种包括指令的计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述计算机可读存储介质中的指令由数据处理装置的处理器执行时,使得数据处理装置能够执行上述所示实施例提供的数据处理方法。例如,计算机可读存储介质可以为包括指令的存储器223,上述指令可由数据处理装置的处理器221执行以完成上述方法。
[0205]
可选的,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。
[0206]
本公开还提供了一种包含指令的计算机程序产品,当其在数据处理装置上运行时,使得数据处理装置执行上述所示实施例提供的数据处理方法。
[0207]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或
者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0208]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1