一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分布式数据处理方法及装置与流程

2022-09-15 03:06:19 来源:中国专利 TAG:


1.本技术实施例涉及数据处理技术领域,尤其涉及一种分布式数据处理方法及装置。


背景技术:

2.随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,数据处理技术也不例外,但由于金融行业的安全性、实时性要求,也对数据处理技术提出了更高的要求。为了满足各金融业务增长的需求,分布式存储的应用变的越来越普遍。
3.现有技术中,可以通过各类负载均衡策略来实现数据的分布式存储以及查询,进而在一定程度上合理分配数据请求,降低集群的负荷。
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.根据所述目标投票结果确定目标分布式集群。
40.可选的,在所述确定目标投票结果之前,还包括:
41.根据分布式集群中服务器的数量确定分布式集群的复杂度;
42.根据所述分布式集群的复杂度、预设的基础时长阈值、分布式集群的数量以及每个分布式集群的加权系数确定最大时长阈值。
43.第二方面,本技术实施例提供一种分布式数据处理装置,应用于总网关,包括:
44.接收模块,用于接收数据查询请求,其中,所述数据查询请求中包含第一目标数据标识;
45.处理模块,用于判断所述第一目标数据标识是否在预存的数据标识列表中,其中,所述数据标识列表中的数据标识对应的数据为访问量超过预设次数阈值或数据量大于预设数据量阈值的数据;
46.所述处理模块,还用于若在所述数据标识列表中,则确定与所述第一目标数据标识对应的目标次级网关,并从所述目标次级网关获取所述第一目标数据标识对应的数据。
47.本技术实施例提供了一种分布式数据处理方法及装置,采用上述方案后,总网关可以接收包含第一目标数据标识的数据查询请求,并判断第一目标数据标识是否在预存的数据标识列表中,其中,数据标识列表中的数据标识对应的数据为访问量超过预设次数阈值或数据量大于预设数据量阈值的数据,若在数据标识列表中,则确定与第一目标数据标识对应的目标次级网关,并从目标次级网关中获取第一目标数据标识对应的数据,通过在总网关中存储符合条件的数据标识与次级网关的对应关系,并在总网关确定待查询的目标数据标识符合条件时,则直接从该目标数据标识对应的目标次级网关中获取数据的方式,无需再去次级网关的下一层,即分布式集群中找数据,降低了分布式集群的工作负担,减少了分布式集群出现宕机的情况,同时也提高了符合条件的热点数据或大数据的查询效率。
附图说明
48.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
49.图1为现有的分布式集群的架构示意图;
50.图2为本技术实施例提供的分布式数据处理方法的应用系统的架构示意图;
51.图3为本技术实施例提供的分布式数据处理方法的流程示意图;
52.图4为本技术实施例提供的分布式数据处理方法的原理示意图;
53.图5为本技术实施例提供的分布式数据处理装置的结构示意图。
具体实施方式
54.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
55.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例还能够包括除了图示或描述的那些实例以外的其他顺序实例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
56.分布式集群可以起到负载均衡的目的,进而很好的解决单机内存、并发和流量等问题,通常分布式集群中最小配置6个节点以上(3主3从),其中,主节点提供读写操作,从节点作为备用节点,不提供请求,只作为故障转移使用。图1为现有的分布式集群的架构示意图,如图1所示,现有的分布式集群(例如,redis cluster)可以使用代理服务器(如redis cluster proxy)进行负载均衡分流。即数据由入口的client进入,直接由proxy负载均衡进行数据路由,转入底层的redis cluster集群中进行处理。虽然实现了数据的分布式查询和存储,但在处理热点数据或大数据时,通常会导致数据倾斜的问题。例如,在金融领域,经常会出现背调和信评等热点数据(即在一段时间内,该数据的访问量远远高于其他数据,导致大部分的访问流量在经过代理服务分片之后,都集中访问到某一个服务器上)查询,或大数据(即数据量大的数据,由于其数据大小远大于其他数据,导致经过分片之后,某个具体存储这个数据的实例内存使用量远大于其他实例,可能出现内存不足,影响整个集群的正常使用)查询的情况。在出现热点数据查询的时候,由于热点数据或大数据可能存储于同一服务器中,使得大量的请求均发送至该服务器中,导致单一服务器的处理负荷过高,还可能出现该服务器因无法承受海量的请求而出现宕机的情况,同时也降低了热点数据或大数据的查询效率。
57.基于上述技术问题,本技术通过在总网关中存储符合条件的数据标识与次级网关的对应关系,并在总网关确定待查询的目标数据标识符合条件时,则直接从该目标数据标识对应的目标次级网关中获取数据的方式,达到了无需再去次级网关的下一层,即分布式集群中找数据。降低了分布式集群的工作负担,减少了分布式集群出现宕机的情况,同时也提高了符合条件的热点数据或大数据的查询效率的技术效果。
58.图2为本技术实施例提供的分布式数据处理方法的应用系统的架构示意图,如图2所示,在该应用系统中,可以包括总网关、至少一次级网关以及与次级网关对应的分布式集群。通过在架构层面做了优化,新增了在次级网关层面之上的总网关,总网关中存储有符合条件的数据标识(可以为热点数据对应的数据标识或大数据对应的数据标识)和次级网关的对应关系,次级网关中存储有符合条件的目标数据标识对应的数据。如果总网关确定数据查询请求中涉及的目标数据标识是热点数据对应的数据标识或大数据对应的数据标识,则直接从该目标数据标识对应的次级网关中获取数据,无需再去次级网关的下一层集群中找数据,降低了相关分布式集群的负荷。
59.此外,数据查询请求可以为终端设备发送的,即在实现相关业务时,终端设备可以通过数据查询请求获取对应的数据,然后可以根据获取到的数据实现相关业务。其中,终端设备可以为智能手机、平板、个人电脑或智能可穿戴设备等。另外,数据查询请求也可以为总网关自动生成的,即可以根据预设设置的查询间隔每隔预设时长自动生成一数据查询请
求来测试系统中各设备是否处于正常运行状态。
60.其中,总网关、次级网关以及分布式集群可以采用现有的硬件设备,即无需对硬件设备进行改进,只需更改硬件设备中运行的程序。
61.下面以具体地实施例对本技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
62.图3为本技术实施例提供的分布式数据处理方法的流程示意图,本实施例的方法可以由总网关执行。如图3所示,本实施例的方法,可以包括:
63.s301:接收数据查询请求,其中,数据查询请求中包含第一目标数据标识。
64.在本实施例中,在进行数据查询时,可以先接收数据查询请求。为了提高数据查询的效率,可以在数据查询请求中包含唯一表示数据的目标数据标识(也可称为key)。其中,第一目标数据标识的表示形式可以有多种,在此不再详细进行限定。
65.s302:判断第一目标数据标识是否在预存的数据标识列表中,其中,数据标识列表中的数据标识对应的数据为访问量超过预设次数阈值或数据量大于预设数据量阈值的数据。
66.在本实施例中,总网关中存储有符合预设条件的数据标识列表,通过该数据标识列表可以确定待查询的数据是否为符合条件的数据。其中,符合条件的数据可以为访问量超过预设次数阈值的数据(即热点数据),还可以为数据量大于预设数据量阈值的数据(即大数据)。其中,次数阈值以及数据量阈值可以根据实际应用场景自定义进行设置,在此不再详细进行限定。
67.可选的,可以通过判断第一目标数据标识是否在预存的数据标识列表中的方式来确定第一目标数据标识对应的数据是否为符合条件的数据。若第一目标数据标识在预存的数据标识列表中,则可以确定第一目标数据标识对应的数据为符合条件的数据。若第一目标数据标识不在预存的数据标识列表中,则可以确定第一目标数据标识对应的数据为不符合条件的数据。
68.s303:若在数据标识列表中,则确定与第一目标数据标识对应的目标次级网关,并从目标次级网关获取第一目标数据标识对应的数据。
69.在本实施例中,若确定第一目标数据标识在数据标识列表中,则可以确定第一目标数据标识对应的数据满足预设条件,且满足预设条件的数据已经预先存储于第一目标数据标识对应的目标次级网关中了,因此,可以直接从目标次级网关中获取第一目标数据标识对应的数据。
70.可选的,总网关中的数据标识列表中可以存储有符合条件的数据标识对应的次级网关,因此,可以在确定第一目标数据标识符合条件之后,根据数据标识列表中存储的数据标识与次级网关的对应关系可以确定目标次级网关,然后可以从目标次级网关中获取第一目标数据标识对应的数据。
71.此外,若确定第一目标数据标识不在数据标识列表中,则表明第一目标数据标识对应的数据不符合预设条件(即不是热点数据或大数据),则可以根据现有的方式来直接从分布式集群中获取数据。
72.采用上述方案后,总网关可以接收包含第一目标数据标识的数据查询请求,并判断第一目标数据标识是否在预存的数据标识列表中,其中,数据标识列表中的数据标识对
应的数据为访问量超过预设次数阈值或数据量大于预设数据量阈值的数据,若在数据标识列表中,则确定与第一目标数据标识对应的目标次级网关,并从目标次级网关中获取第一目标数据标识对应的数据,通过在总网关中存储符合条件的数据标识与次级网关的对应关系,并在总网关确定待查询的目标数据标识符合条件时,则直接从该目标数据标识对应的目标次级网关中获取数据的方式,无需再去次级网关的下一层,即分布式集群中找数据。降低了分布式集群的工作负担,减少了分布式集群出现宕机的情况,同时也提高了符合条件的热点数据或大数据的查询效率。
73.基于图3的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
74.在另一实施例中,在所述接收数据查询请求之前,还可以包括:
75.接收至少一次级网关发送的数据信息,其中,所述数据信息中包含数据标识以及对应的数据,所述数据信息为所述至少一次级网关从对应的分布式数据库中获取的。
76.判断所述数据信息中的数据是否满足预设条件,其中,所述预设条件为数据的访问量超过预设次数阈值或数据的数据量大于预设数据量阈值。
77.若满足预设条件,则将满足预设条件的数据对应的数据标识添加至所述数据标识列表中。
78.确定发送所述满足预设条件的数据的次级网关,并将所述满足预设条件的数据与发送所述满足预设条件的数据的次级网关的对应关系存储至所述数据标识列表中。
79.在本实施例中,每个分布式集群中可以包含不同数量的服务器,且每个分布式集群可以对应一次级网关,所有的次级网关均可以与总网关进行数据的交互。为了实现数据的同步以及减少数据倾斜的情况,每隔预设时长次级网关可以向总网关同步各个分布式集群的情况(即数据信息)。对应的,次级网关可以建立与各个底层分布式集群的动态连接,然后可以将各个idc(internet data center,互联网数据中心)的分布式集群的数据信息通过交互报文的形式反馈至总网关。可选的,各个idc的数据信息归集结果由各个分布式集群的master-v节点(每个分布式集群中设置了主master节点为v,备master节点为i,slave节点为o节点)通过次级网关统一反馈到总网关。总网关在接收到各次级网关发送的数据信息之后,可以基于预设条件建立数据标识列表,并将满足预设条件的数据(数据标识)与发送满足预设条件的数据的次级网关的对应关系也存储至数据标识列表中。
80.可选的,除了可以采用每隔预设时长次级网关可以向总网关同步各个分布式集群的情况的方式,还可以采用总网关接收到数据查询请求时,先将数据查询请求存储至消息队列中,然后发送数据获取请求至次级网关,次级网关再根据数据获取请求来建立与各个底层分布式集群的动态连接,然后可以将各个idc的分布式集群的数据信息通过交互报文的形式反馈至总网关的方式来确定各分布式集群的情况,并根据预设条件构建数据标识列表。
81.综上,现有技术中并没有一套方案来解决目前的热点数据以及衍生出来的数据倾斜问题,这与当前分布式集群的分片技术以及处理模式有关。且分布式架构会导致多个集群服务分布在不同区域的机房,很容易触发存储倾斜和总线节点交互投票的问题,从而使得集群如果发生变更和替换时产生的数据损耗增加,由于非常多的跨机房调用涉及到架构设计,且分布式架构在集群变大之后,无法做到存储统一和数据平均,故需要根据各个区域
的存储和访问量来进行算法的倾斜。本技术通过引入总线级别的网关的方式,实现了通过一定的算法控制来从源头上防止数据倾斜等热点数据查询的问题,解决了目前简单的负载均衡和哈希算法均不能解决的分配问题,减少了分布式集群宕机的情况,同时也提高了数据的查询效率,进而提高了用户的应用体验。
82.在另一实施例中,所述方法还可以包括:
83.接收数据分配请求,其中,所述数据分配请求中包含第二目标数据标识,以及所述第二目标数据标识对应的数据。
84.确定至少一分布式集群的状态,其中,所述状态包含饱和状态和未饱和状态。
85.将所述数据分配请求中包含的所述第二目标数据标识,以及所述第二目标数据标识对应的数据存储至未饱和状态的分布式集群中。
86.在本实施例中,除了可以通过本技术设置的网络架构查询数据,还可以通过本技术设置的网络架构存储数据。可选的,可以通过总网关接收数据分配请求的方式来存储数据。此外,接收数据分配请求可以在接收数据查询请求之前,也可以在接收数据查询请求之后,还可以在接收数据查询请求的同时,接收数据分配请求,在此不再具体进行限定。
87.此外,接收到的数据分配请求中包含第二目标数据标识以及第二目标数据标识对应的数据(可以以key-value键值对的形式存在),且第二目标数据标识以及第二目标数据标识对应的数据没有存储在分布式集群中,即第二目标数据标识对应的数据为新的数据,然后可以将第二目标数据标识以及第二目标数据标识对应的数据存储至分布式集群中。
88.另外,在将第二目标数据标识以及第二目标数据标识对应的数据存储至分布式集群中时,由于分布式集群有多个,且每个分布式集群中存储的数据量也不同,因此,可以根据分布式集群的状态来分配数据。可选的,分布式集群的状态可以包括饱和状态和未饱和状态。饱和状态表明分布式集群内部已经饱和,无法再存储新的数据。未饱和状态表明分布式集群内部还有一定的存储空间,可以存储新的数据。此外,还可以根据分布式集群整体的存储情况来确定饱和状态以及未饱和状态,即可以根据整体存储情况动态确定存储阈值,然后将存储空间大于存储阈值的分布式集群的状态设置为未饱和状态,将存储空间小于或等于存储阈值的分布式集群的状态设置为饱和状态,减少了数据存储时数据倾斜的问题。
89.进一步的,所述确定至少一分布式集群的状态,具体可以包括:
90.根据分布式集群的时延、效率值以及闲置比确定至少一分布式集群的状态。
91.具体的,在确定分布式集群的状态时,为了协调和完成数据的存储,在实际的存储区域确认过程中,需要考虑到非常多的因素,例如需要考虑时延、集群容量闲置比和集群效率值等重要因素,然后可以根据上述因素确定分布式集群的状态(即饱和状态或未饱和状态)。
92.更进一步的,所述根据分布式集群的时延、效率值以及闲置比确定至少一分布式集群的状态,具体可以包括:
93.通过测试数据的执行耗时以及历史平均时延确定分布式集群的时延。
94.通过所述分布式集群中目标服务器的个数,以及所述分布式集群的平均服务器性能指数,确定所述分布式集群的效率值。
95.通过所述分布式集群的空闲容量值,以及所述分布式集群的总容量值确定所述分布式集群的闲置比。
96.根据所述时延、所述效率值以及所述闲置比确定目标参数。
97.根据所述目标参数与预存的历史参数确定所述至少一分布式集群的状态。
98.具体的,在根据分布式集群的时延、效率值以及闲置比确定至少一分布式集群的状态时,可以分别确定每个分布式集群的时延、效率值以及闲置比,然后可以根据分布式集群的时延、效率值以及闲置比来确定每个分布式集群的状态。
99.对于分布式集群的时延,每个次级网关与其对应的底层分布式集群的交互(主要是通过集群的主节点进行交互)都是有时延的,且该时延会极大的影响实际的交互效率,也会影响最终的区域划分,因此,可以通过测试数据来确定分布式集群的时延。
100.可选的,可以通过测试数据的执行耗时以及历史平均时延确定分布式集群的时延。更进一步的,所述通过测试数据的执行耗时以及历史平均时延确定分布式集群的时延,具体可以包括:
101.通过测试数据的执行耗时以及历史平均时延确定分布式集群的最大时延以及最小时延。
102.根据所述最大时延以及所述最小时延确定所述分布式集群的时延。
103.具体的,在确定分布式集群的时延时,可以通过测试数据来确定,即可以先确定测试数据通过总网关发送至各分布式集群中所消耗的时间(即测试数据的执行耗时),以及获取在该测试数据之前,其他的历史测试数据进行测试时所消耗的时间(即历史执行耗时),然后可以根据通过测试数据的执行耗时以及历史平均时延确定分布式集群的最大时延以及最小时延,并根据最大时延以及最小时延确定分布式集群的时延。
104.可选的,可以通过表达式:来确定最大时延t
max
。可以通过表达式来确定最小时延t
min

105.其中,i为分布式集群的编号,范围可以为从1-n

,n

是分布式集群的总个数,ti为一个测试周期内测试数据的执行耗时,δtm为m个历史测试周期内所有分布式集群的平均时延。t
max
和t
min
分别为耗时集合中的两个极值集合,即最大时延和最小时延。然后可以通过最大时延以及最小时延对应的权重值,来综合确定第i个分布式集群的时延δti。
106.对于分布式集群的效率值,除了受到耗时影响,服务器集群的性能也有较大的影响,因此,可以通过分布式集群中目标服务器的个数,以及分布式集群的平均服务器性能指数,来确定分布式集群的效率值。
107.可选的,可以通过分布式集群中目标服务器的个数与分布式集群的平均服务器性能指数的乘积,来确定分布式集群的效率值。对应的,可以通过表达式:来确定分布式集群的效率值。
108.其中,为每个分布式服务器集群的效率值;i为分布式集群的编号,范围可以从1-n

,n

为分布式集群的总个数;li为每个分布式服务器集群中目标服务器的个数,其中,目标服务器可以为核心服务器,核心服务器的确定规则可以根据实际应用场景自定义进行设置,在此不再详细进行限定;δγi为第i个分布式集群的平均服务器性能指数,可以根据现有的方式,综合分布式集群中服务器的硬件组成、服务器的个数等参数综合确定。
109.对于分布式集群的闲置比,也可以较为直接的影响分布式集群的状态,可以通过分布式集群的空闲容量值与分布式集群的总容量值的比值来确定分布式集群的闲置比。对
应的,可以通过表达式:si=θi/σi来确定每个分布式集群的闲置比(也可称为使用闲置比)。
110.其中,si为第i个分布式集群的闲置比,i为分布式集群的编号,范围可以从1-n

,n

为分布式集群的总个数;θi为第i个分布式集群的空闲容量值;σi为第i个分布式集群的总容量值。
111.在得到分布式集群的时延、效率值以及闲置比之后,可以根据分布式集群的时延、效率值以及闲置比确定目标参数,并根据目标参数与预存的历史参数确定每个分布式集群的状态(即饱和状态或未饱和状态)。对应的,可以通过表达式:
112.来确定第i个分布式集群的目标参数。
113.在得到各个分布式集群的目标参数之后,总网关可以将确定出的目标参数ωi与预存的历史参数ωb进行对比。若目标参数ωi高于历史参数ωb,则确定该目标参数ωi对应的第i个分布式集群的状态为饱和状态;若目标参数ωi低于或等于历史参数ωb,则确定该目标参数ωi对应的第i个分布式集群的状态为未饱和状态。其中,ωb为动态值,可以随着每一次的区域判断而变化,即随着判断的分布式集群不同而变化,且ωb为根据历史目标参数确定的,也可以根据历史目标参数的更新而对应变化。
114.综上,通过根据分布式集群的时延、空闲比以及效率值等因素来动态确定未饱和状态的分布式集群,然后将数据存储至未饱和状态的分布式集群中,既提高了数据分配的均衡性和准确性,也无需再盲目等待分布式集群的存储空间,提高了数据分配的及时性。
115.在另一实施例中,将所述数据分配请求中包含的所述第二目标数据标识,以及所述第二目标数据标识对应的数据存储至未饱和状态的分布式集群中,具体可以包括:
116.发送投票请求至至少一次级网关,其中,所述投票请求中包含状态为未饱和状态的待选择分布式集群。
117.接收所述至少一次级网关发送的投票结果,其中,所述投票结果中包含所述次级网关从状态为未饱和状态的分布式集群中选中的分布式集群。
118.根据所述至少一次级网关发送的投票结果确定目标分布式集群,并将所述第二目标数据标识,以及所述第二目标数据标识对应的数据存储至所述目标分布式集群中。
119.在本实施例中,在总网关确定状态为未饱和状态的分布式集群之后,由于状态为未饱和状态的分布式集群的数量可能有多个,因此,需要从多个状态为未饱和状态的分布式集群中选择一目标分布式集群来存储数据。
120.可选的,可以通过自动投票的方式来确定目标分布式集群。总网关可以先发送投票请求至至少一次级网关(可以为部分次级网关,也可以为所有次级网关,优先选择所有次级网关),各次级网关收到投票请求之后,可以从投票请求中包含的状态为未饱和状态的分布式集群中随机选择一分布式集群作为投票结果,并将该投票结果返回至总网关。总网关接收到各次级网关发送的投票结果之后,可以对投票结果进行汇总,然后可以将投票结果最高的分布式集群作为目标分布式集群。
121.综上,通过由次级网关进行投票,然后由总网关进行汇总来确定最终存储数据的目标分布式集群的方式,既提高了数据分配的灵活性与准确性,也规避了新的数据仍然被存入较为冗余的集群中,避免了数据倾斜的问题。
122.进一步的,根据所述至少一次级网关发送的投票结果确定目标分布式集群,具体
可以包括:
123.根据所述至少一次级网关发送的投票结果确定初始目标分布式集群。
124.若所述初始目标分布式集群有多个,则从所述初始目标分布式集群中确定一目标分布式集群。
125.具体的,在总网关对次级网关发送的投票结果进行汇总之后,可能出现分布式集群得票结果相同的情况,即可能出现多个得票结果相同的初始目标分布式集群,为了尽可能的遵循同一数据存储于一个分布式集群中的原则,可以由总网关从初始目标分布式集群中选择一目标分布式集群作为存储集群,并将第二目标数据标识,以及第二目标数据标识对应的数据存储至目标分布式集群中,进一步提高了数据分配的灵活性与准确性。
126.此外,根据所述至少一次级网关发送的投票结果确定目标分布式集群,具体可以包括:
127.确定目标投票结果,其中,所述目标投票结果为发送投票结果的时长低于最大时长阈值的次级网关的投票结果,所述最大时长阈值与分布式集群中服务器的数量正相关。
128.根据所述目标投票结果确定目标分布式集群。
129.具体的,在次级网关投票过程中,可能会出现一些异常情况,如次级网关发送投票结果的过程出现较大延时,或次级网关、分布式集群等设备出现网络故障等,针对不同的异常情况,可以采用不同的处理方式。
130.可选的,为了避免次级网关发送投票结果的过程出现较大延时,可以设置一最大时长阈值,若次级网关发送投票结果的时长大于该最大时长阈值,则直接舍弃该次级网关的投票结果,并根据投票结果的时长小于或等于最大时长阈值的目标投票结果来确定目标分布式集群。其中,最大时长阈值可以与分布式集群中服务器的数量正相关,即分布式集群中服务器的数量越多,最大时长阈值可以动态调整的更高。
131.进一步的,最大时长阈值的确定方法可以为:在所述确定目标投票结果之前,所述方法还可以包括:
132.根据分布式集群中服务器的数量确定分布式集群的复杂度。
133.根据分布式集群的复杂度、预设的基础时长阈值、分布式集群的数量以及每个分布式集群的加权系数确定最大时长阈值。
134.具体的,使用传统的轮询算法并不能考虑到每台服务器的处理能力,实际中每个分布式集群中的服务器数量,以及服务器的处理能力可能各不相同,因此,可以先根据每个分布式集群中服务器的数量来确定每个分布式集群的复杂度。
135.对应的,可以先根据表达式:来确定每个分布式集群中服务器的横坐标。
136.其中,j为分布式集群中服务器的编号;∈
ij
为第i个分布式集群中第j个服务器的内存参数信息;ω
ij
为第i个分布式集群中第j个服务器中处理器的参数信息;σ
ij
为第i个分布式集群中第j个服务器中磁盘的参数信息;δ∈为分布式集群中服务器的平均内存参数信息;δω为分布式集群中服务器的处理器的平均参数信息;δσ为分布式集群中服务器的磁盘的平均参数信息。
137.此外,还可以通过部署于服务器中的第三方软件确定第i个分布式集群中第j个服
务器的性能数据y
ij
,示例性的,可以为性能分值。
138.然后可以根据表达式:
139.确定第i个分布式集群对应的复杂度公式的斜率。
140.再根据表达式:
141.确定分布式集群的复杂度。
142.其中,n为第i个分布式集群内服务器的总数,βi为第i个分布式集群的复杂度;ki为第i个分布式集群中服务器的散点特征,可以综合分布式集群中服务器的台数、性能以及每台服务器与数据源的距离等综合确定;为复杂度公式的常量系数,根据采用现有的方式综合不同集群的历史数据来确定,在此不再详细进行限定。
143.在确定分布式集群的复杂度之后,根据分布式集群的复杂度、预设的基础时长阈值、分布式集群的数量以及每个分布式集群的加权系数确定最大时长阈值。可选的,可以通过对数计算得到每个分布式集群的时间复杂度系数,最终进行加权求和以及均值计算,得到所有分布式集群的平均统计时延,并将该平均统计时延作为最大时长阈值。
144.示例性的,可以通过表达式:来确定平均统计时延。
145.其中,μ为所有分布式集群的平均统计时延;n

为分布式集群的个数;ai为每个分布式集群的权重值;μn′
为最小化分布式集群的基础超时理论时间(即预设的基础时长阈值);δti′
为第i

个历史测试周期内所有分布式集群的平均时延,i

为历史测试周期的轮数,范围可以从1-m。
146.此外,每个分布式集群的权重值可以根据实际应用场景自定义进行设置,在此不再详细进行限定。
147.综上,通过对不同分布式集群的研究发现,当分布式集群的服务器数量增加时,由于网络、主机路由和数据传输时延等方面的影响,集群的复杂度与服务器的数量成线性关系,即可以根据服务器数量动态进行超时时间调整,在基础超时理论时间的基础上,可以根据实际服务数量大小来浮动调整最大时长阈值,拥有一个动态的时间冗余,不再局限于固定的超时时间,提高了超时时间确定的合理性,进而提高了次级网关投票时间有效性与准确性。且根据分布式集群的处理能力差异,可以给分布式集群分配不同的权重值(示例性的,可以为a1、a2、a3、a4等),使得最终确定的最大时长阈值可以获得更加平滑的时间序列值。
148.另外,异常情况还可能为网络中出现故障节点,总网关中的监督程序可以将该节点归入疑问序列,疑问序列中的节点在当轮次可以不参与投票。具体的,在网络中出现故障节点时,监督节点可以通过心跳探测包机制进行判断,由于可能出现网络抖动的情况,故可以实施多次探测(示例性的,可以实施三次探测),若多次探测均未返回结果,则可以确定该节点为故障节点,并将该节点的状态置为故障状态,然后在次级网关内部广播通知并隔离该节点,不再对该节点进行投票,对应的,也不再分配新数据到该节点。此外,还可以在实际
算法中剔除该节点,减少实际的权益,并在日志中记录该节点的隔离日志,方便后续的恢复和清理。
149.图4为本技术实施例提供的分布式数据处理方法的原理示意图,如图4所示,在该实施例中,总网关可以先接收数据分配请求,然后根据数据分配请求中包含的第二目标数据标识确定待分配的数据是否为新数据,若为新数据,则可以确定状态为未饱和状态的分布式集群,然后根据状态为未饱和状态的分布式集群生成投票请求,并将投票请求发送至至少一次级网关。次级网关可以根据投票请求中包含的状态为未饱和状态的分布式集群确定投票结果,并将投票结果返回至总网关,总网关可以根据至少一次级网关的投票结果确定是否有多个初始目标分布式集群。若有多个初始目标分布式集群,则可以由总网关进行投票,确定最终的目标分布式集群,并将第二目标数据标识对应的数据分配至目标分布式集群中。若只有一个初始目标分布式集群,则可以将该初始目标分布式集群确定为目标分布式集群,并将第二目标数据标识对应的数据分配至目标分布式集群中。
150.若根据数据分配请求中包含的第二目标数据标识确定待分配的数据不是新数据,则可以通过总网关中的数据标识列表确定第二目标数据标识对应的数据是否为满足条件的数据(热点数据或大数据)。若为满足条件的数据,则可以通过第二目标数据标识对应的次级网关来获取对应的数据。否则,可以直接从第二目标数据标识对应的分布式集群中获取对应的数据。此外,若数据分配请求中包含第二目标数据标识对应的新数据,则可以在从次级网关中或分布式集群中获取到对应的数据之后,可以将新数据与获取的数据进行比较,确定是否需要对存储的数据进行更新。即若新数据与获取的数据相同,则不需要对存储的数据进行更新,若不同,则可以将存储的数据更新为新数据。
151.综上,现有技术中在进行数据分配时,只是简单的进行负载均衡和hash判断,虽然也有部分采取区域划分的形式,但是他们采用的都是固定划分或者最小单位区域划分的方案,降低了数据分配方式的灵活性。本方案根据各个区域中的数据存储情况,考虑了实际的底层存储需求,将分布式集群的状态划分为饱和状态和未饱和状态,并引入了投票机制,最终以一种新的算法进行数据分配的投票归集,相对于传统的数据分片方式极大的提高了数据分配的稳定性和效率。且针对大型分布式网络,设计了总网关和次级网关的系统架构,综合考虑了节点数量、数据量、节点投票等信息,增加了系统稳定性,减少了可能出现的存储倾斜和穿刺故障的情况。
152.此外,在另一实施例中,提供了一种分布式数据处理方法,可以应用于目标次级网关,所述方法可以包括:
153.接收总网关发送的包含第一目标数据标识的数据获取请求,确定与第一目标数据标识对应的数据,其中,第一目标数据标识为终端设备或任意次级网关通过数据查询请求发送至总网关的,以使总网关判断第一目标数据标识是否在预存的数据标识列表中,若在数据标识列表中,则确定与第一目标数据标识对应的目标次级网关,并发送包含第一目标数据标识的数据获取请求至目标次级网关。
154.将所述第一目标数据标识对应的数据发送至总网关。
155.在本实施例中,通过在次级网关中存储符合条件的数据标识对应的数据,使得后期获取符合条件的数据时,可以直接从次级网关中获取,提高了数据的获取效率,同时也减少了向分布式集群发送数据获取请求的次数,降低了分布式集群的符合,避免了分布式集
群宕机的情况。
156.此外,所述方法还可以包括:
157.从目标分布式集群中获取所述数据标识列表中的数据标识对应的数据,并存储所述数据标识列表中的数据标识对应的数据,其中,所述目标分布式集群为与所述目标次级网关对应交互的分布式集群。
158.基于同样的思路,本说明书实施例还提供了上述方法对应的装置,图5为本技术实施例提供的分布式数据处理装置的结构示意图,如图5所示,本技术实施例提供的装置,可以包括:
159.接收模块501,用于接收数据查询请求,其中,所述数据查询请求中包含第一目标数据标识。
160.处理模块502,用于判断所述第一目标数据标识是否在预存的数据标识列表中,其中,所述数据标识列表中的数据标识对应的数据为访问量超过预设次数阈值或数据量大于预设数据量阈值的数据。
161.所述处理模块502,还用于若在所述数据标识列表中,则确定与所述第一目标数据标识对应的目标次级网关,并从所述目标次级网关获取所述第一目标数据标识对应的数据。
162.在另一实施例中,所述处理模块502,还用于:
163.接收至少一次级网关发送的数据信息,其中,所述数据信息中包含数据标识以及对应的数据,所述数据信息为所述至少一次级网关从对应的分布式数据库中获取的。
164.判断所述数据信息中的数据是否满足预设条件,其中,所述预设条件为数据的访问量超过预设次数阈值或数据的数据量大于预设数据量阈值。
165.若满足预设条件,则将满足预设条件的数据对应的数据标识添加至所述数据标识列表中。
166.确定发送所述满足预设条件的数据的次级网关,并将所述满足预设条件的数据与发送所述满足预设条件的数据的次级网关的对应关系存储至所述数据标识列表中。
167.在另一实施例中,所述处理模块502,还用于:
168.接收数据分配请求,其中,所述数据分配请求中包含第二目标数据标识,以及所述第二目标数据标识对应的数据。
169.确定至少一分布式集群的状态,其中,所述状态包含饱和状态和未饱和状态。
170.在本实施例中,所述处理模块502,还用于:
171.根据分布式集群的时延、效率值以及闲置比确定至少一分布式集群的状态。
172.进一步的,所述处理模块502,还用于:
173.通过测试数据的执行耗时以及历史平均时延确定分布式集群的时延。
174.通过所述分布式集群中目标服务器的个数,以及所述分布式集群的平均服务器性能指数,确定所述分布式集群的效率值。
175.通过所述分布式集群的空闲容量值,以及所述分布式集群的总容量值确定所述分布式集群的闲置比。
176.根据所述时延、所述效率值以及所述闲置比确定目标参数。
177.根据所述目标参数与预存的历史参数确定所述至少一分布式集群的状态。
178.将所述数据分配请求中包含的所述第二目标数据标识,以及所述第二目标数据标识对应的数据存储至未饱和状态的分布式集群中。
179.更进一步的,所述处理模块502,还用于:
180.通过测试数据的执行耗时以及历史平均时延确定分布式集群的最大时延以及最小时延。
181.根据所述最大时延以及所述最小时延确定所述分布式集群的时延。
182.在另一实施例中,所述处理模块502,还用于:
183.发送投票请求至至少一次级网关,其中,所述投票请求中包含状态为未饱和状态的待选择分布式集群。
184.接收所述至少一次级网关发送的投票结果,其中,所述投票结果中包含所述次级网关从状态为未饱和状态的分布式集群中选中的分布式集群。
185.根据所述至少一次级网关发送的投票结果确定目标分布式集群,并将所述第二目标数据标识,以及所述第二目标数据标识对应的数据存储至所述目标分布式集群中。
186.在本实施例中,所述处理模块502,还用于:
187.根据所述至少一次级网关发送的投票结果确定初始目标分布式集群。
188.若所述初始目标分布式集群有多个,则从所述初始目标分布式集群中确定一目标分布式集群。
189.进一步的,所述处理模块502,还用于:
190.确定目标投票结果,其中,所述目标投票结果为发送投票结果的时长低于最大时长阈值的次级网关的投票结果,所述最大时长阈值与分布式集群中服务器的数量正相关。
191.根据所述目标投票结果确定目标分布式集群。
192.此外,所述处理模块502,还用于:
193.根据分布式集群中服务器的数量确定分布式集群的复杂度。
194.根据所述分布式集群的复杂度、预设的基础时长阈值、分布式集群的数量以及每个分布式集群的加权系数确定最大时长阈值。
195.此外,在另一实施例中,提供了一种分布式数据处理装置,应用于目标次级网关,可以包括:
196.确定模块,用于接收总网关发送的包含第一目标数据标识的数据获取请求,确定与第一目标数据标识对应的数据,其中,第一目标数据标识为终端设备或任意次级网关通过数据查询请求发送至总网关的,以使总网关判断第一目标数据标识是否在预存的数据标识列表中,若在数据标识列表中,则确定与第一目标数据标识对应的目标次级网关,并发送包含第一目标数据标识的数据获取请求至目标次级网关。
197.发送模块,用于将所述第一目标数据标识对应的数据发送至总网关。
198.本技术实施例提供的装置,可以实现上述如图2所示的实施例的方法,其实现原理和技术效果类似,此处不再赘述。
199.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
200.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献