一种机场数据平台集群消费的处理方法、装置及存储介质与流程

文档序号:31936237发布日期:2022-10-26 01:50阅读:23来源:国知局
一种机场数据平台集群消费的处理方法、装置及存储介质与流程

1.本技术涉及机场数据处理技术领域,尤其是涉及一种机场数据平台集群消费的处理方法、装置及存储介质。


背景技术:

2.随着航空业的逐渐发展客流及航班量持续增长,机场信息系统建设成为机场建设的重要组成部分。现阶段,机场在信息化、数字化以及智慧化方面已取得了很大的进步,机场与外界的数据交换需求也有了显著的提高,为了更好的帮助机场实现异构系统间的数据交换及资源共享,解决“信息孤岛”问题,机场数据平台建设及发展日益重要。
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.图1为本技术实施例所提供的一种机场数据平台集群消费的处理方法的流程图之一;
42.图2为本技术实施例所提供的一种机场数据平台集群消费的处理方法的流程图之二;
43.图3为本技术实施例所提供的一种机场数据平台集群消费的处理方法的详细流程图;
44.图4为本技术实施例所提供的一种机场数据平台集群消费的处理装置的结构示意图之一;
45.图5为本技术实施例所提供的一种机场数据平台集群消费的处理装置的结构示意图之二;
46.图6为本技术实施例所提供的一种电子设备的结构示意图。
具体实施方式
47.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,应当理解,本技术中的附图仅起到说明和描述的目的,并不用于限定本技术的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本技术中使用的流程图示出了根据本技术的一些实施例实现的操作。应当理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本技术内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
48.另外,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的全部其他实施例,都属于本技术保护的范围。
49.为了使得本领域技术人员能够使用本技术内容,结合特定应用场景“对机场数据平台中的数据进行处理”,给出以下实施方式,对于本领域技术人员来说,在不脱离本技术的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。
50.本技术实施例下述方法、装置、电子设备或计算机可读存储介质可以应用于任何需要对机场数据平台进行数据处理的场景,本技术实施例并不对具体的应用场景作限制,任何使用本技术实施例提供的一种机场数据平台集群消费的处理方法、装置及存储介质的方案均在本技术保护范围内。
51.首先,对本技术可适用的应用场景进行介绍。本技术可应用于机场数据处理技术领域。
52.经研究发现,机场业务数据典型特点为多数据源、强有序性、高时效、安全可靠以及不可重复性。针对以上数据特点,目前机场数据平台建设均以消息中间件为基础,附加若干数据处理路由单元构成。机场数据平台对数据的强有序性、安全可靠性及不可重复性方面采用关键组件及消费端的冷备部署的方案,一旦数据路由或者接收异常,机场数据平台不能自动恢复消息路由及收发功能,需要人工检查处理(重启或冷备切换),以恢复机场数据交换业务,会导致数据传输错误以及不安全的问题,所以如何提高机场数据平台对数据处理的效率以及安全性成为了不容小觑的技术问题。
53.基于此,本技术实施例提供了一种机场数据平台集群消费的处理方法、装置及存储介质,通过集群内针对同一类数据类型的待处理数据消息,都仅有一个相对应的路由处理器进行处理,当有新的主路由处理器加入或者退出时,都会利用负载均衡算法重新分配各类机场数据,实现了路由处理器的自动负载,故障自动发现、自动转移及自动恢复,提高数据的路由处理效率,保障数据的处理安全。
54.请参阅图1,图1为本技术实施例所提供的一种机场数据平台集群消费的处理方法的流程图之一。如图1中所示,本技术实施例提供的处理方法,包括:
55.s101:获取待处理机场数据平台的多类待处理数据消息。
56.该步骤中,获取到待处理机场数据平台的多类待处理数据消息。
57.这里,待处理数据消息可以包括航班数据消息、交通数据信息、行李数据信息等。
58.其中,待处理数据消息的消息类型不相同。
59.s102:控制所述主路由处理器对每类所述待处理数据消息进行负载均衡分配,以使将每类所述待处理数据消息发送至相对应的唯一一个从路由处理器。
60.该步骤中,控制主路由处理器对每类待处理数据消息进行负载均衡分配,以使将每类待处理数据消息发送至相对应的唯一一个从路由处理器。
61.这里,相同类型的待处理数据消息对应唯一一个从路由处理器。
62.这里,路由处理器集群采用注册中心监控与路由处理器节点间raft算法实现,双重冗余设计,以确保集群中同一类待处理数据消息有且仅有一个路由处理器节点接收处理并路由转发,确保强有序消息的顺序性。若去掉注册中心,仅留下给予raft算法的路由处理器集群,会出现多个主路由处理器并行运行,出现同一类业务数据在多个从路由处理器节点接收处理的情况。例如:主路由处理器与两个从路由处理器的网络异常,但是主路由处理器和生产队列的网络并未断开,此时,两个从路由处理器就会重新选举出新的主路由处理器,但是新的主路由处理器会将之前与两个从路由处理器断线的旧主路由处理上的数据业务处理任务重新分配给其他节点,导致同一类业务数据被两个路由处理器节点接收处理的问题,进而导致乱序的出现。
63.这里,路由处理器集群启动时,调用sdk api启动工作线程池、集群通讯监听及就绪其他消息接收准备工作,等待主路由处理器选举及任务分配工作。
64.其中,路由处理器有5种状态(待选举状态、待命状态、待运行状态、运行状态、异常状态),待选举状态:集群各路由处理器启动完成,但是尚未选举出主路由处理器的状态;待命状态:从路由处理器成功加入集群并初始化完成工作线程池的状态;待运行状态:主路由处理器选举完成,但尚未确认能否启动负载均衡算法确认各类数据类型具体处理节点及通知从路由处理器处理该任务(选举完成,但是脑裂问题尚未排除);运行状态:主路由处理器
选举完成,并已与注册中心确认排除脑裂问题,将进入运行状态并对各业务类型数据处理任务进行负载并将任务分发通知至各节点。
65.其中,在路由处理器集群中各个从路由处理器以及主路由处理器的状态对应关系,如表1所示。
66.表1集群节点角色及状态对应表
[0067][0068]
其中,主路由处理利用负载均衡进行数据派发时,负载均衡映射表如表2所示。
[0069]
表2负载均衡映射表
[0070][0071]
负载均衡算法,将数据按业务类型划分,按业务的繁忙程度对业务进行分组,例如表2所示,a组包含flight_dyn、freight数据类型;b组包含flight_base、gtc业务类型;c组包含luggage业务类型。对应的我们可以看到这些类型的有序数据当集群有两个从路由处
理器时时,它在那个从路由处理器被处理,当集群三个节点时,它在那个从路由处理器被处理。
[0072]
在一种可能的实施方式中,所述控制所述主路由处理器对每类所述待处理数据消息进行负载均衡分配,以使将每类所述待处理数据消息发送至相对应的唯一一个从路由处理器,包括:
[0073]
a:监测所述路由处理器集群的状态。
[0074]
这里,注册中心监测路由处理器集群的状态。
[0075]
b:若监测到的所述路由处理器集群的状态不为脑裂状态时,控制所述主路由处理器从待运行状态切换至运行状态。
[0076]
这里,若监测到的路由处理器集群的状态不为脑裂状态时,控制主路由处理器从待运行状态切换至运行状态。
[0077]
这里,脑裂状态为路由处理器集群中主路由处理器与其他从路由处理器网络异常断开,导致其他从路由处理器以为主路由处理器故障,重新选举出新的主路由处理器,此时路由处理器集群中出现两个主路由处理器同时运行,导致一些数据处理错乱问题。
[0078]
c:所述主路由处理器处于运行状态时,控制所述主路由处理器利用负载均衡算法将每类所述待处理数据消息分配给相对应的待命状态的从路由处理器,以便将相对应的待处理数据消息的处理任务添加到各个从路由处理器相对应的工作线程池之中,以使将每类所述待处理数据消息发送至相对应的唯一一个从路由处理器。
[0079]
这里,在运行时控制主路由处理器利用负载均衡算法将每类待处理数据消息分配给相对应的待命状态的从路由处理器,以便通知各个待命状态的从路由处理器将相对应的待处理数据消息的处理任务添加到相对应的工作线程池之中,并行以使将每类待处理数据消息发送至相对应的从路由处理器将多类待处理数据消息进行路由转发。
[0080]
在具体实施例中,多路由处理器的集群部署叫做路由处理器集群并且从路由处理器会与主路由处理器相互实时通讯,告知该节点路由处理器的服务状况及运行情况。路由处理器集群启包含一个主路由处理器(leader)和多个从路由处理器(follower)。集群内部各路由处理器都处于活动状态(启动并运行/启动并待命),启动后主路由处理器会先进入待运行状态,确定无脑裂问题后,进入运行状态,采用特定负载均衡算法,将各类型待处理数据消息按负载均衡算法预分配给各个待命状态的从路由处理器及自己并通知各从路由处理器将该类机场数据信息提交到自己的工作线程池,并启动线程接收发送队列的数据并处理、路由转发(例如航班动态数据),线程启动后从路由处理器通知主路由处理器自己的业务处理线程启动结果。
[0081]
在一种可能的实施方式中,所述监测所述路由处理器集群的状态之后,所述处理方法还包括:
[0082]
a:若监测到的所述路由处理器集群的状态为脑裂状态时,在选举过程中实时监测所述主路由处理器是否依然处于所述脑裂状态。
[0083]
这里,若监测到的路由处理器集群的状态为脑裂状态时,在选举过程中实时监测主路由处理器是否依然存在脑裂状态。
[0084]
b:若是,则控制所述新的主路由处理器的状态为待运行状态,并在确认所述主路由处理器的长连接断开后,控制所述新的主路由处理器的工作状态由所述待运行状态切换
至运行状态。这里,若依然存在脑裂状态,则控制新的主路由处理器的状态为待运行状态,并在确认主路由处理器的长连接断开后,控制新的主路由处理器的工作状态从待运行状态切换至运行状态。
[0085]
这里,若不存在脑裂状态,则控制新的主路由处理器的状态为运行状态。
[0086]
在具体实施例中,针对脑裂现象引入注册中心概念,注册中心会时时监控路由处理器与生产队列的连接关系并持久化到各注册中心,新的主路由处理器在选举时,会主动询问注册中心,是否有脑裂现象存在,是否有其他路由处理器节点仍然连接至生产队列,倘若仍然有连接,新的主路由处理器状态会变为待运行状态,并发出告警推送至平台监控页面,以申请人工介入排查网络问题,在此期间,待运行状态得新主路由处理器会持续询问注册中心自己是否可以改变为运行状态并重新负载路由处理器并处理数据。以下两种情况待运行状态leader状态会变为运行状态。第一种,当原主路由处理器与生产队列断开连接时,待运行状态新的主路由处理器状态改变为运行状态,新的主路由处理器进行负载均衡并分发任务到各个从路由处理器,让各从路由处理器进行生产业务数据的处理路由工作;第二种,当网络恢复后,待运行状态新的主路由处理器因为任期编号(新的主路由处理器每选举一次,任期编号会加1)大于旧的主路由处理器,所以待运行状态新的主路由处理器会通知旧的主路由处理器将自己状态改变为从路由处理器重新加入路由处理器集群,待运行状态的新的主路由处理器在确认收到各个从路由处理器通知并确定无误后,将自己状态由待运行状态变为运行状态,为路由处理器进行负载均衡并分发任务到各个从路由处理器。
[0087]
s103:在控制所述主路由处理器对每类所述待处理数据消息进行负载均衡分配过程中,各个所述从路由处理器监测所述主路由处理器是否发生故障,若是,则向多个所述从路由处理器发送选举指令,以便在多个所述从路由处理器中选举出新的主路由处理器,新的主路由处理器代替所述主路由处理器。
[0088]
该步骤中,当监测到主路由处理器发生故障后,则在多个从路由处理器之中选举出新的主路由处理器,新的主路由处理器将状态由待命状态转化至待运行状态;新的主路由处理器向所述注册中心确认是否将待运行状态转化至运行状态;若是,则新的主路由处理器执行主路由处理器的工作线程池,当主路由处理器故障恢复正常时,主路由处理器加入路由处理器集群之中作为从路由处理器进入待命状态,重新分配多个从路由处理器负载处理的待处理数据消息。
[0089]
这里,除了各个从路由处理器监测主路由处理器之外,主路由处理器也会检测所述各从路由处理器是否故障,若是,则所述主路由处理器会将故障所述从路由处理器从集群中剔除,重新负载故障从路由数据处理任务到其他所述从路由处理器。
[0090]
这里,通过以下方式进行选举过程,将自己节点状态设置为follower状态,并检查验证路由处理器集群监听服务有没有在一段时间内(timesout,超时时间,例如200ms)来自主路由处理的心跳消息,如果接收到了来自主路由处理的心跳信息,则表明路由处理器集群选举已经成功,此时从路由处理会将自己的状态该改为待命状态,等待主路由处理器分发数据处理任务;如果超时时间后,依旧没收到主路由处理的心跳信息,此时从路由处理器会给term(任期)加1并将自己改变为候选主路由处理器,采用超时随机定时器(每个候选主路由处理器选择一个时间间隔内的随机值,例如150-300ms,该候选主路由处理器将变成新的主路由处理器。
[0091]
其中,路由处理器集群的各个路由处理器之间,基于raft一致性算法原理,在路由处理器集群路由处理器之间实现给予tcp长连接的互联互通。每个路由处理器在启动后,待命状态的从路由处理器以及待运行状态主路由处理器都会初始化工作线程池,主要负责管理路由处理器对生产队列的连接及路由处理任务。路由处理器节点在收到处理数据处理任务后,路由处理器会自动提交数据处理的工作任务给自己的工作线程池,工作线程池在接收到任务后,会立即开启此任务,提供生产业务数据的处理路由工作。当主路由处理器异常,进入异常状态时,主路由处理器会自动从工作线程池移除该异常任务,释放主路由处理器与生产队列的连接,并上报注册中心异常信息,然后自动删除掉进程(相当于关闭主路由处理器),此时剩余从路由处理器会重新选举新的主路由处理器,新的主路由处理器进入待运行状态,进而进入运行状态,对各业务类型数据处理任务重新进行负载并将任务分发通知至各节点。
[0092]
在具体实施例中,当主路由处理器故障后,集群会自动从剩余的从路由处理器中选举一个新主路由处理器。此时该新主路由处理器会将自己的状态由待命状态转变为待运行状态,并向注册中心确认自己是否可以转变为运行状态,得到确认后,它将正式接管前任主路由处理器的工作。前任主路由处理器在恢复后,会自动加入集群,作为从路由处理器,进入待命状态,主路由处理器将根据负载均衡算法,重新分配各节点待处理的业务数据类型,以实现资源的均衡利用。也就是说,无论何种状况,集群内针对同一类数据类型的数据,都仅有一个路由处理器节点对其处理,有新节点加入或者退出时,都会利用负载均衡算法重新计算各类业务数据的位置并重新负载,达到资源的最大利用,在保证数据的强有序这一基本要求的前提下实现路由处理器的高可用性和易扩展性。
[0093]
在一种可能的实施方式中,通过以下步骤确定出所述主路由处理器是否发生故障:
[0094]
监测所述主路由处理器是否与多个所述从路由处理器断开连接;若是,则确定出所述主路由处理器发生故障。
[0095]
这里,当主路由处理器与从路由处理器断开连接时,确定出主路由处理器发生故障,这里,不限定主路由处理器只发生这一种故障,现有技术中的任一种路由处理器故障均可。
[0096]
s104:控制多个所述从路由处理器将接收到的待处理数据消息转发至相对应的消息队列之中。
[0097]
该步骤中,控制多个从路由处理器将接收到的待处理数据消息转发至相对应的消息队列之中。
[0098]
这里,相同类型的待处理数据消息对应一个消息队列。
[0099]
本技术实施例提供的一种机场数据平台集群消费的处理方法,处理方法包括:获取待处理机场数据平台的多类待处理数据消息;控制主路由处理器对每类待处理数据消息进行负载均衡分配,以使将每类待处理数据消息发送至相对应的唯一一个从路由处理器;在进行负载均衡分配过程中,各个从路由处理器监测主路由处理器是否发生故障,若是,则向多个从路由处理器发送选举指令,以便在多个从路由处理器中选举出新的主路由处理器,新的主路由处理器代替主路由处理器;控制多个从路由处理器将接收到的待处理数据消息转发至相对应的消息队列之中。通过集群内针对同一类数据类型的待处理数据消息,
都仅有一个路由处理器进行处理,当有新的主路由处理器加入或者退出时,都会利用负载均衡算法重新分配各类机场数据,实现了路由处理器的自动负载,故障自动发现、自动转移及自动恢复,提高数据的路由处理效率,保障数据的处理安全。
[0100]
请参阅图2,图2为本技术实施例所提供的一种机场数据平台集群消费的处理方法的流程图之二。如图2中所示,本技术实施例提供的处理方法,包括:
[0101]
s201:获取待处理机场数据平台的多类待处理数据消息;
[0102]
s202:控制所述主路由处理器对每类所述待处理数据消息进行负载均衡分配,以使将每类所述待处理数据消息发送至相对应的唯一一个从路由处理器;
[0103]
s203:在控制所述主路由处理器对每类所述待处理数据消息进行负载均衡分配过程中,各个所述从路由处理器监测所述主路由处理器是否发生故障,若是,则向多个所述从路由处理器发送选举指令,以便在多个所述从路由处理器中选举出新的主路由处理器,新的主路由处理器代替所述主路由处理器;
[0104]
s204:控制多个所述从路由处理器将接收到的待处理数据消息转发至相对应的消息队列之中。
[0105]
其中,s201至s204的描述可以参照s101至s104的描述,并且能达到相同的技术效果,对此不做赘述。
[0106]
s205:监测所述应用系统集群的状态。
[0107]
该步骤中,监测应用系统集群的状态。
[0108]
这里,应用集群系统可包括四川航空应用系统等。
[0109]
s206:若监测到的所述应用系统集群的状态不为脑裂状态时,控制所述应用系统集群中的主应用系统从待运行状态切换至运行状态。
[0110]
该步骤中,若监测到的应用系统集群的状态不为脑裂状态时,控制应用系统集群中的主应用系统从待运行状态切换至运行状态。
[0111]
s207:所述主应用系统处于运行状态时,控制所述主应用系统利用负载均衡算法将每类消息队列分配给所述应用系统集群中的待命状态的从应用系统,以便通知各个所述待命状态的从应用系统将相对应的消息队列的处理任务提交到工作线程池之中。
[0112]
该步骤中,在运行时控制主应用系统利用负载均衡算法将每个消息队列分配给应用系统集群中的待命状态的从应用系统,通知各个所述待命状态的从应用系统将相对应的消息队列的处理任务提交到工作线程池之中。
[0113]
这里,从应用系统可为自动广播系统、自动行李系统等。
[0114]
这里,关于应用系统集群的处理方法和上述路由处理器集群的处理方法,此部分不在进行赘述。
[0115]
在另一种实施例中,每种数据类型都会分配一把分布式锁,集群中各节点向redis集群竞争分布式锁,一旦竞争到分布式锁将会连接至该业务类型消费队列,进行消息的接收及处理,并持续刷新分布式锁状态及更新分布式锁超时时间,以持续占有分布式锁。竞争不到锁的消费节点会持续尝试向redis集群获取分布式锁,一旦之前获取到锁的节点故障,持有锁被释放,则其他节点将有且仅有一个节点能获取到分布式锁并进行消息的接收及处理,持续刷新分布式锁状态及更新分布式锁超时时间,以持续占有分布式锁。故障节点重新加入集群后,将进入持续获取分布式锁状态,持续尝试向redis集群获取分布式锁。
[0116]
本技术实施例提供的一种机场数据平台集群消费的处理方法,包括获取待处理机场数据平台的多类待处理数据消息;控制主路由处理器对每类待处理数据消息进行负载均衡分配,以使将每类待处理数据消息发送至相对应的唯一一个从路由处理器;在进行负载均衡分配过程中,各个从路由处理器监测主路由处理器是否发生故障,若是,则向多个从路由处理器发送选举指令,以便在多个从路由处理器中选举出新的主路由处理器,新的主路由处理器代替主路由处理器;控制多个从路由处理器将接收到的待处理数据消息转发至相对应的消息队列之中。监测所述应用系统集群的状态;若所述应用系统集群的状态不为脑裂状态时,控制所述应用系统集群中的主应用系统从待运行状态切换至运行状态;在运行时控制所述主应用系统利用负载均衡算法将每类消息队列分配给所述应用系统集群中的待命状态的从应用系统,通知各个所述待命状态的从应用系统将相对应的消息队列的处理任务提交到工作线程池之中。通过集群内针对同一类数据类型的待处理数据消息,都仅有一个路由处理器进行处理,当有新的主路由处理器加入或者退出时,都会利用负载均衡算法重新分配各类机场数据,实现了路由处理器的自动负载,故障自动发现、自动转移及自动恢复,提高数据的路由处理效率,保障数据的处理安全。
[0117]
进一步的,请参阅图3,图3为本技术实施例所提供的一种机场数据平台集群消费的处理方法的详细流程图。如图3所示,生产者:上游业务系统(数据源),负责生产业务数据,然后通过调用机场数据平台sdk api发送数据到平台生产队列,本例中航班信息集成系统发送航班动态数据、班期数据及基础数据到平台生产队列;生产队列:机场数据平台消息中间件产品,可用于接收生产业务系统发送的数据;路由服务:主要包含路由处理器集群,路由处理器集群收生产队列的数据并根据平台的消息路由规则、过滤规则及重构规则,对数据进行处理并路由分发到消费队列;消费队列:存储由路由处理器路由分发的数据,等待下游应用系统进行消费;消费者:下游业务系统,接收消费队列的数据。这里,航班信息集成系统是机场数据平台下的子系统,航班信息集成系统负责生产业务数据,然后通过调用机场数据平台sdk api发送机场数据到平台生产队列;生产队列将接收到的待处理数据消息发送给主路由处理器;主路由处理器对每类机场数据消息处理任务进行负载均衡分配,以使将每类机场数据消息发送至唯一相对应的从路由处理器进行处理;从路由处理器以及主路由处理器进行路由分发,将相对应的待处理数据消息发送至相对应的消息队列之中;应用系统集群中的主应用系统对每类机场数据消息处理任务进行负载均衡分配,以使将每类机场数据消息发送至唯一相对应的从应用系统进行响应的业务处理。
[0118]
请参阅图4、图5,图4为本技术实施例所提供的一种机场数据平台集群消费的处理装置的结构示意图之一,图5为本技术实施例所提供的一种机场数据平台集群消费的处理装置的结构示意图之二。如图4中所示,所述机场数据平台集群消费的处理装置400包括:
[0119]
获取模块410,用于获取待处理机场数据平台的多类待处理数据消息;
[0120]
路由分发模块420,用于控制主路由处理器对每类所述待处理数据消息进行负载君合分配,以使将每类所述待处理数据消息发送至相对应的唯一一个从路由处理器;
[0121]
故障检测模块430,用于在控制所述主路由处理器对每类所述待处理数据消息进行负载均衡分配过程中,各个从路处理器监测所述主路由处理器是否发生故障,若是,则向多个所述从路由处理器发送选举指令,以便在多个所述从路由处理器中选举出新的主路由处理器,新的主路由处理器代替所述主路由处理器;
[0122]
转发模块440,用于控制多个所述从路由处理器将接收到的待处理数据消息转发至相对应的消息队列之中。
[0123]
进一步的,所述路由分发模块420在用于所述控制所述主路由处理器对每类所述待处理数据消息进行路由分发,以使将每类所述待处理数据消息发送至相对应的唯一一个从路由处理器时,所述路由分发模块420具体用于:
[0124]
监测路由处理器集群的状态;
[0125]
若监测到的所述路由处理器集群的状态不为脑裂状态时,控制所述主路由处理器从待运行状态切换至运行状态;
[0126]
在所述主路由处理器处于运行状态时,控制所述主路由处理器利用负载均衡算法将每类所述待处理数据消息分配给相对应的待命状态的从路由处理器,以便将相对应的待处理数据消息的处理任务添加到各个从路由处理器相对应的工作线程池之中,以使将每类所述待处理数据消息发送至相对应的唯一一个从路由处理器。
[0127]
进一步的,如图5所示,所述机场数据平台集群消费的处理装置400还包括监测模块450,所述监测模块450用于:
[0128]
若监测到的所述路由处理器集群的状态为脑裂状态时,在选举过程中实时监测所述主路由处理器是否依然处于所述脑裂状态;
[0129]
若是,则控制所述新的主路由处理器的状态为待运行状态,并在确认所述主路由处理器的长连接断开后,控制所述新的主路由处理器的工作状态由所述待运行状态切换至运行状态。
[0130]
进一步的,故障检测模块430通过以下步骤确定出所述主路由处理器是否发生故障:
[0131]
监测所述主路由处理器是否与多个所述从路由处理器断开连接;
[0132]
若是,则确定出所述主路由处理器发生故障。
[0133]
进一步的,如图4所示,机场数据平台集群消费的处理装置400还包括应用分发模块460,所述应用分发模块460用于:
[0134]
监测所述应用系统集群的状态;
[0135]
若监测到的所述应用系统集群的状态不为脑裂状态时,控制所述应用系统集群中的主应用系统从待运行状态切换至运行状态;
[0136]
在所述主应用系统处于运行状态时,控制所述主应用系统利用负载均衡算法将每类消息队列分配给所述应用系统集群中的待命状态的从应用系统,以便通知各个所述待命状态的从应用系统将相对应的消息队列的处理任务提交到工作线程池之中。
[0137]
本技术实施例提供的一种机场数据平台集群消费的处理装置,获取模块,用于获取待处理机场数据平台的多类待处理数据消息;路由分发模块,用于控制主路由处理器对每类所述待处理数据消息进行负载均衡分配,以使将每类所述待处理数据消息发送至相对应的唯一一个从路由处理器;故障检测模块,用于在控制所述主路由处理器对每类所述待处理数据消息进行负载均衡分配过程中,各个所述从路由处理器监测所述主路由处理器是否发生故障,若是,则向多个所述从路由处理器发送选举指令,以便在多个所述从路由处理器中选举出新的主路由处理器,新的主路由处理器代替所述主路由处理器;转发模块,用于控制多个所述从路由处理器将接收到的待处理数据消息转发至相对应的消息队列之中。通
过集群内针对同一类数据类型的待处理数据消息,都仅有一个路由处理器进行处理,当有新的主路由处理器加入或者退出时,都会利用负载均衡算法重新分配各类机场数据,实现了路由处理器的自动负载,故障自动发现、自动转移及自动恢复,提高数据的路由处理效率,保障数据的处理安全。
[0138]
请参阅图6,图6为本技术实施例所提供的一种电子设备的结构示意图。如图6中所示,所述电子设备600包括处理器610、存储器620和总线630。
[0139]
所述存储器620存储有所述处理器610可执行的机器可读指令,当电子设备600运行时,所述处理器610与所述存储器620之间通过总线630通信,所述机器可读指令被所述处理器610执行时,可以执行如上述图1以及图2所示方法实施例中的机场数据平台集群消费的处理方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
[0140]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1以及图2所示方法实施例中的机场数据平台集群消费的处理方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
[0141]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0142]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0143]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0144]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0145]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0146]
最后应说明的是:以上所述实施例,仅为本技术的具体实施方式,用以说明本技术的技术方案,而非对其限制,本技术的保护范围并不局限于此,尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员
在本技术揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本技术实施例技术方案的精神和范围,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1