CN114328587A - 一种ndc报文分布式解析系统架构集成方法及装置 - Google Patents
一种ndc报文分布式解析系统架构集成方法及装置 Download PDFInfo
- Publication number
- CN114328587A CN114328587A CN202111656391.9A CN202111656391A CN114328587A CN 114328587 A CN114328587 A CN 114328587A CN 202111656391 A CN202111656391 A CN 202111656391A CN 114328587 A CN114328587 A CN 114328587A
- Authority
- CN
- China
- Prior art keywords
- message
- ndc
- component
- node
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供一种NDC报文分布式解析系统架构集成方法及装置,该方法,各个组件初始化;当接收到NDC航班查询请求时,对NDC航班查询请求进行解析拆分,得到多个单航司请求,对多个单航司请求按预设合并规则进行合并,得到合并请求;加载合并请求的配置信息并选择报文处理节点;报文处理节点对合并请求进行处理;并将处理后的单航司请求对应的各个小报文片段传输给NDC报文聚合组件;NDC报文聚合组件按照预设的聚合策略聚合各个单航司请求对应的报文;NDC报文聚合后处理组件对聚合后的报文,进行数据提取并入库;从而实现以分布式的方式将报文解析压力分布到多台处理节点,大大提升了多航司大报文下的报文处理速度。
Description
技术领域
本发明属于计算机技术领域,更具体的说,尤其涉及一种NDC报文分布式解析系统架构集成方法及装置。
背景技术
近年,NDC(New Distribution Capability,新分销能力)实施进程加快,进入量化阶段。随着航空公司新分销能力的建立,航空公司渠道多元化是趋势,越来越多的航空公司发布了自己的NDC销售接口,用于每个航空公司都会发布大量的NDC航班信息,而且由于国际航线复杂,城市机场多,航班数据量非常庞大,使得当个航司对热门航线的查询会返回非常多的NDC Offer。
这使得对于多航司版本统一并聚合将面临很大数据量的挑战。现有的报文解析都没有专门设计基于NDC报文的,都是通用的xml报文解析,这会导致在面对多航司数据量大、Offer结构复杂、不同航司的NDC报文版本差异大等NDC报文特点,在报文解析上满足不了性能设计要求。
发明内容
有鉴于此,本发明的目的在于提供一种NDC报文分布式解析系统架构集成方法及装置,用于提升多航司大报文下的报文处理速度,让报文处理性能可以横向扩展,解决了应对能力。
本申请第一方面公开了一种NDC报文分布式解析系统架构集成方法,包括:
所述NDC报文分布式解析系统中各个组件初始化;
当NDC报文分布式解析系统接收到NDC航班查询请求时,对所述NDC航班查询请求进行解析拆分,得到多个单航司请求,对多个所述单航司请求按预设合并规则进行合并,得到合并请求;
加载所述合并请求的配置信息,根据所述配置信息选择报文处理节点;所述报文处理节点对所述合并请求进行处理;并将处理后的单航司请求对应的各个小报文片段传输给NDC报文聚合组件;
所述NDC报文聚合组件按照预设的聚合策略聚合各个单航司请求对应的报文;
NDC报文聚合后处理组件对聚合后的报文,进行数据提取并入库。
可选的,在上述NDC报文分布式解析系统架构集成方法中,所述报文处理节点对所述合并请求进行处理包括:
当所述处理节点接收到所述单航司请求时,所述NDC报文分布式解析系统中的报文拆分组件按照拆分规则对所述合并请求的报文进行拆分,得到多个小报文片段;
将各个所述小报文片段通过所述报文处理节点,调用报文翻译组件进行报文版本翻译;
将翻译后的所有所述小报文片段通过XML片段聚合组件进行聚合;
所述报文处理节点将单航司报文提交给NDC报文聚合组件。
可选的,在上述NDC报文分布式解析系统架构集成方法中,所述NDC报文分布式解析系统中各个组件初始化,包括:
服务治理组件,通过服务端口收集节点的健康状态信息维护节点状态信息;
策略选择组件,初始化内部任务分配策略、维护可用的任务执行节点、初始化任务调度引擎;
动态扩容组件,先加载动态扩容规则,然后向所述服务治理组件获取报文处理节点列表,并初始化动态扩容引擎;
报文处理节点,同时部署NDC报文翻译组件、NDC报文聚合组件、NDC报文聚合后处理组件;并在启动时加载报文翻译规则、报文聚合规则,以及初始化报文聚合后处理组件。
可选的,在上述NDC报文分布式解析系统架构集成方法中,服务治理组件,通过服务端口收集节点的健康状态信息维护节点状态信息,包括:
服务节点启动后,自动向所述服务治理组件进行注册;
所述服务治理组件按照预设周期,进行抓取服务节点状态,并依据所述服务节点的状态,维护节点服务状态列表,提供可用的NDC报文处理节点列表。
可选的,在上述NDC报文分布式解析系统架构集成方法中,策略选择组件,初始化内部任务分配策略、维护可用的任务执行节点、初始化任务调度引擎,包括:
所述策略选择组件,拉取服务治理组件中报文处理节点列表,并加载航司查询资源限制、任务队列阈值限制、节点平均响应时间限制、请求合并配置信息,接着,通过初始化策略选择引擎。
本申请第二方面公开了一种NDC报文分布式解析系统架构集成装置,包括:
初始化模块,用于实现所述NDC报文分布式解析系统中各个组件初始化;
请求拆分模块,用于实现当NDC报文分布式解析系统接收到NDC航班查询请求时,对所述NDC航班查询请求进行解析拆分,得到多个单航司请求,对多个所述单航司请求按预设合并规则进行合并,得到合并请求;
报文处理模块,用于实现加载所述合并请求的配置信息,根据所述配置信息选择报文处理节点;所述报文处理节点对所述合并请求进行处理;并将处理后的单航司请求对应的各个小报文片段传输给NDC报文聚合组件;
聚合模块,用于实现所述NDC报文聚合组件按照预设的聚合策略聚合各个单航司请求对应的报文;
入库模块,用于实现NDC报文聚合后处理组件对聚合后的报文,进行数据提取并入库。
可选的,在上述NDC报文分布式解析系统架构集成装置中,所述报文处理模块用于实现所述报文处理节点对所述合并请求进行处理时,具体用于:
当所述处理节点接收到所述单航司请求时,所述NDC报文分布式解析系统中的报文拆分组件按照拆分规则对所述合并请求的报文进行拆分,得到多个小报文片段;
将各个所述小报文片段通过所述报文处理节点,调用报文翻译组件进行报文版本翻译;
将翻译后的所有所述小报文片段通过XML片段聚合组件进行聚合;
所述报文处理节点将单航司报文提交给NDC报文聚合组件。
可选的,在上述NDC报文分布式解析系统架构集成装置中,所述报文处理模块用于实现所述NDC报文分布式解析系统中各个组件初始化时,具体用于:
服务治理组件,通过服务端口收集节点的健康状态信息维护节点状态信息;
策略选择组件,初始化内部任务分配策略、维护可用的任务执行节点、初始化任务调度引擎;
动态扩容组件,先加载动态扩容规则,然后向所述服务治理组件获取报文处理节点列表,并初始化动态扩容引擎;
报文处理节点,同时部署NDC报文翻译组件、NDC报文聚合组件、NDC报文聚合后处理组件;并在启动时加载报文翻译规则、报文聚合规则,以及初始化报文聚合后处理组件。
可选的,在上述NDC报文分布式解析系统架构集成装置中,所述报文处理模块用于实现服务治理组件通过服务端口收集节点的健康状态信息维护节点状态信息时,具体用于:
服务节点启动后,自动向所述服务治理组件进行注册;
所述服务治理组件按照预设周期,进行抓取服务节点状态,并依据所述服务节点的状态,维护节点服务状态列表,提供可用的NDC报文处理节点列表。
可选的,在上述NDC报文分布式解析系统架构集成装置中,所述报文处理模块用于实现策略选择组件初始化内部任务分配策略、维护可用的任务执行节点、初始化任务调度引擎时,具体用于:
所述策略选择组件,拉取服务治理组件中报文处理节点列表,并加载航司查询资源限制、任务队列阈值限制、节点平均响应时间限制、请求合并配置信息,接着,通过初始化策略选择引擎。
从上述技术方案可知,本发明提供的一种NDC报文分布式解析系统架构集成方法,NDC报文分布式解析系统中各个组件初始化;当NDC报文分布式解析系统接收到NDC航班查询请求时,对NDC航班查询请求进行解析拆分,得到多个单航司请求,对多个单航司请求按预设合并规则进行合并,得到合并请求;加载合并请求的配置信息,根据配置信息选择报文处理节点;报文处理节点对合并请求进行处理;并将处理后的单航司请求对应的各个小报文片段传输给NDC报文聚合组件;NDC报文聚合组件按照预设的聚合策略聚合各个单航司请求对应的报文;NDC报文聚合后处理组件对聚合后的报文,进行数据提取并入库,从而实现以分布式的方式将报文解析压力分布到多台处理节点,大大提升了多航司大报文下的报文处理速度,让报文处理性能可以横向扩展,解决了应对能力,例如:秒杀等突发情景下的报文解析速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种NDC报文分布式解析系统的示意图;
图2是本发明实施例提供的一种NDC报文分布式解析系统架构集成方法的流程图;
图3是本发明实施例提供的另一种NDC报文分布式解析系统架构集成方法的流程图;
图4-图6是本发明实施例提供的一种NDC报文分布式解析系统架构集成方法中相应组件的工作流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要说明的是,本申请采用到的术语解释如下:
1、XML:一种可扩展标记语言。
2、IATA:国际航空运输协会。
3、NDC:新分销能力(New Distribution Capability,简称NDC)是国际航协(IATA)力推的一项分销标准。
4、XSD:XML Schema Definition,用于定义XML的结构。
5、XML报文:是一种用于标记电子文件使其具有结构性的标记语言。XML报文是指用于双方系统通信交互的,并基于XML文档的一种结构性语言。
6、Xpath路径:其全称为XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言。
7、NDC报文:NDC主要制定了统一的基于XML格式报文的数据传输标准,航空公司与其合作伙伴之间可以通过这一统一标准来进行数据的交互。这些统一标准的报文即为NDC报文。NDC报文均以XML格式的文档呈现,对这些XML格式文档的定义文件为对应的XSD文件。不论XSD文件还是XML文件,均遵守其本身的技术规范,例如:其中存在一些“节点”、“属性”等内容,这些均属于标准的技术定义。
8、OfferItem:Offer中的订单项,用于展示可以供用户预订的航班、服务等信息。
9、Offer:航司返回的航班舱位、品牌运价、附加服务、使用规则等信息,称之为Offer。每个Offer可以有多个OfferItem,每个旅客类型对应一个OfferItem,每个附加服务会对应一个OfferItem。
10、OOMS:(Offer and Order Management System,报价及订单管理系统),为基于NDC标准构建的航司销售系统。该系统通过接口的形式,以NDC标准的报文与合作伙伴进行数据的交互。OOMS即为航司实现NDC的载体。
11、AirShopping接口:是IATA的NDC标准定义的接口,是NDC销售流程的第一步,通过AirShopping接口,输入起始地、目的地、旅行时间、旅客信息(如人数、旅客类型等),可以获得查询条件对应的航班舱位、品牌运价、享有的服务和规则信息。
12、OfferPrice:针对一个或多个航班运价或服务重新计算价格。
13、OrderCreate:可通过该接口预订机票及附加服务,也可以在预订的同时支付出票。
14、NDC接口:OOMS为航司实现NDC的载体,由于在航司销售的流程中业务环节及流程场景的多样性,使得OOMS必须提供各种不同的接口来满足整个业务流程中交互的需要,例如常见的NDC接口有:AirShopping(Offer查询,提供用户对所需的产品进行查询的功能)、OrderCreate(Order生成,提供用户向航司OOMS进行订单下单的功能)、OrderRetrieve(Order获取,提供用户向航司请求查看已预订的订单情况功能)等。不同的接口使用各自的NDC报文。
15、NDC版本:NDC是一个较新的、持续发展的项目,国际航协也在持续的对NDC进行优化、完善。体现在具体的交付物上,即NDC报文在每年会(针对所有NDC接口)发布两个更新迭代的版本,其版本号采用“年份”.“版本号”写法构成,例如:2017年发布的第二个版本的版本号位17.2;2018年发布的第一个版本为18.1等。
16、单机部署:一个系统业务量很小的时候所有的代码段都放在一个项目中进行部署,一般只部署在一台服务器上。
17、集群部署:将一个系统业务代码段放在一个项目中,并将该系统部署到多台服务器中。
18、分布式:将一个系统的业务代码段进行拆分在多个项目中,每个项目由多台服务器部署。
19、节点/服务器:用于部署应用的虚拟机或者物理机。
20、横向扩展:是将服务分割为众多的子服务并在负载平衡等技术的帮助下在应用中添加新的服务实例。
本申请提供了一种NDC报文分布式解析系统架构集成方法,用于解决现有技术中报文解析都没有专门设计基于NDC报文的,都是通用的xml报文解析,这会导致在面对多航司数据量大、Offer结构复杂、不同航司的NDC报文版本差异大等NDC报文特点,在报文解析上满足不了性能设计要求的问题。
需要说明的是,参见图1,该NDC报文分布式解析系统所涉及到的组件,包括:服务治理组件、策略选择组件、NDC报文翻译组件、NDC报文聚合组件、NDC报文聚合后处理组件、动态扩容组件。
服务治理组件:该组件主要用于发现报文处理节点,报文处理节点在启动的时候会向服务治理组件发送节点注册请求,该请求信息包括:节点IP、服务名称、节点压力信息[cpu负载、内存负载、磁盘IO负载、网络负载]、任务拒绝阀值。该组件会将这些节点状态信息记录并存储,由该组件负责发现报文处理节点是否健康。
策略选择组件:用于加载所有的策略配置信息如:航司查询资源限制、任务队列阈值限制、服务器平均响应时间限制、请求合并配置信息。
(1)航司查询资源限制:例如查询航司CA的航班必须要分配到哪个处理节点上处理。
(2)任务队列阈值限制:例如查询航司CA的航班必须保证处理节点上的任务队列长度小于100。
(3)节点平均响应时间限制:例如查询航司CA的航班必须在节点的平均响应时间小于1秒的节点上处理。
(4)请求合并配置信息:定义哪些航班查询是相同的航班查询,例如查询CA的北京到洛杉矶和北京虹桥到洛杉矶且出发时间相同的查询为相同航班查询,那么这样的两次请求将会合并为一个请求发送。
XML片段聚合组件:负责将接收到的报文按照配置好的拆分规则进行拆分,将一个大的XML报文分解成小的XML片段,然后调用XML报文翻译组件中的翻译器进行报文片段翻译,然后将多个片段合并成一个XML片段。
NDC报文翻译组件:将任务按照一定规则在当前节点机上进行执行,报文翻译就是将NDC报文的一种版本翻译成另外一种版本,报文翻译时会先加载翻译规则,如将A节点通过计算转换成B节点,执行完后将结果发送到NDC报文聚合组件。
NDC报文聚合组件:将所有解析好的NDC报文,按照一定规则进行聚合,然后返回一个固定版本的NDC报文,报文聚合的过程就是报文重新组合的过程例如:将其中的A节点和其他航司返回的A节点进行追加。
聚合方式有:
追加:多个片段追加在一起。
多选一:多个片段任意选择一个,其余丢弃。
NDC报文聚合后处理组件:将聚合好的NDC报文,进行后续处理和加工。聚合完整的NDC报文,可以按照定义的规则执行后续操作,例如:报文聚合完成后,提取报文中的订单信息并入库处理。
动态扩容组件:可以实时根据一定规则判断节点压力,然后按照一定规则进行弹性伸缩。例如:在所有报文处理节点响应时间大于10秒时,自动增加新报文处理节点;当所有报文处理节点的任务队列小于2时,自动释放多余的报文处理节点。
参见图2,该NDC报文分布式解析系统的集成方法,包括:
S101、NDC报文分布式解析系统中各个组件初始化。
需要说明的是,该NDC报文分布式解析系统中各个组件初始化之后,各个组件均处于初始化状态。
其中,各个组件的初始化状态的具体方式,可以是预先设置的,当然也可以是依据当前所处环境或者上位机下发的指令决定,此处不再一一赘述,视实际情况而定即可,均在本申请的保护范围内。
S102、当NDC报文分布式解析系统接收到NDC航班查询请求时,对NDC航班查询请求进行解析拆分,得到多个单航司请求,对多个单航司请求按预设合并规则进行合并,得到合并请求。
需要说明的是,该NDC航班查询请求也可以记为AirShopping请求。
也就是说,先将NDC航班查询请求拆分,再依据预设合并规则进行合并,以使合并后的请求符合当前系统的要求。
其具体的拆分和合并的过程,此处不做具体限定,视实际情况而定即可,均在本申请的保护范围内。
S103、加载合并请求的配置信息,根据配置信息选择报文处理节点;报文处理节点对合并请求进行处理;并将处理后的单航司请求对应的各个小报文片段传输给NDC报文聚合组件。
需要说明的是,可以有多个报文处理节点,然后依据配置信息来选择对应的报文处理节点。
每个报文处理节点的参数调用关系可以是固定的,当然其也可以是依据对应的配置信息确定,此处不再一一赘述,视实际情况而定即可,均在本申请的保护范围内。
S104、NDC报文聚合组件按照预设的聚合策略聚合各个单航司请求对应的报文。
也就是说,对每个单航司请求对应的小报文片段,将同一个的单航司请求的小报文组装为一个大报文,该大报文为该单航司请求对应的报文。
需要说明的是,该聚合策略可以有多种形式,此处不做具体限定,视实际情况而定即可,均在本申请的保护范围内。
S105、NDC报文聚合后处理组件对聚合后的报文,进行数据提取并入库。
需要说明的是,对数据进行提取可以是提取特征信息,该特征信息的内容,此处不做具体限定,视实际情况而定即可,均在本申请的保护范围内。
另外,入库是指存储至数据库。其中,具体的存储过程此处不再一一赘述,视实际情况而定即可,均在本申请的保护范围内。
在本实施例中,以分布式的方式将报文解析压力分布到多台处理节点,大大提升了多航司大报文下的报文处理速度,让报文处理性能可以横向扩展,解决了应对能力,例如:秒杀等突发情景下的报文解析速度。
在实际应用中,参见图3,步骤S103所涉及的报文处理节点对合并请求进行处理的具体过程可以为:
S201、当处理节点接收到单航司请求时,NDC报文分布式解析系统中的报文拆分组件按照拆分规则对合并请求的报文进行拆分,得到多个小报文片段。
S202、将各个小报文片段通过报文处理节点,调用报文翻译组件进行报文版本翻译。
S203、将翻译后的所有小报文片段通过XML片段聚合组件进行聚合。
S204、报文处理节点将单航司报文提交给NDC报文聚合组件。
如图6所示,当系统接收到NDC航班查询请求时,首先解析请求,将任务分解成多航司请求,策略选择组件会分析拆分出来的单航司请求,并根据请求合并策略所定义的规则进行请求合并,请求合并完成后,加载航司查询资源限制、任务队列阈值限制、节点平均响应时间限制等配置信息,根据配置信息选择报文处理节点,并由策略选择组件将多航司请求任务进行拆分,当处理节点接收到单航司请求时,首先报文拆分组件按照规则进行报文拆分,将大报文拆分成小报文片段,然后将小报文片段通过报文处理节点调用报文翻译组件进行报文版本翻译,翻译完成后,将所有的小报文片段通过XML片段聚合组件进行聚合,最后报文处理节点将单航司报文提交给NDC报文聚合组件,该组件会按照一定策略聚合所有航司报文,最后交给NDC报文聚合后处理组件,进行数据提取并入库。
在实际应用中,NDC报文分布式解析系统中各个组件初始化,包括:
(1)服务治理组件,通过服务端口收集节点的健康状态信息维护节点状态信息。
该服务治理组件采用单独部署方式。
该节点状态信息包括:节点IP、服务名称、节点压力信息、任务队列大小、任务拒绝阀值等信息;其中,该节点压力信息包括:cpu负载、内存负载、磁盘IO负载、网络负载等信息。
当然,上述节点状态信息和节点压力信息也还可以包括其他信息,此处不再一一赘述,均在本申请的保护范围内。
在实际应用中,参见图4,服务治理组件,通过服务端口收集节点的健康状态信息维护节点状态信息,包括:
服务节点启动后,自动向服务治理组件进行注册。
服务治理组件按照预设周期,进行抓取服务节点状态,并依据服务节点的状态,维护节点服务状态列表,提供可用的NDC报文处理节点列表。
(2)策略选择组件,初始化内部任务分配策略、维护可用的任务执行节点、初始化任务调度引擎。
该策略选择组件采用单独部署方式。
在实际应用中,参见图5,策略选择组件,初始化内部任务分配策略、维护可用的任务执行节点、初始化任务调度引擎,包括:
策略选择组件,拉取服务治理组件中报文处理节点列表,并加载航司查询资源限制、任务队列阈值限制、节点平均响应时间限制、请求合并配置信息,接着,通过初始化策略选择引擎。
航司查询资源限制:选择报文处理节点时,需要选择大于该资源限制的节点,如配置值为2,表示报文处理节点需要cpu内核数大于2个。
任务队列阈值限制:选择报文处理节点时,需要选择小于该资源限制的节点,如配置值为20,表示报文处理节点的任务队列数要小于20。
节点平均响应时间限制:选择报文处理节点时,需要选择小于该资源限制的节点,如配置值为2秒,表示报文处理节点的任务处理平均响应时间要小于2秒。
请求合并配置信息:在多个航司请求时,配置如何合并相同查询请求。例如:配置值为segment,表示以航段作为判断请求相同的条件。
(3)动态扩容组件,先加载动态扩容规则,然后向服务治理组件获取报文处理节点列表,并初始化动态扩容引擎。
该动态扩容组件采用单独部署方式。
(4)报文处理节点,同时部署NDC报文翻译组件、NDC报文聚合组件、NDC报文聚合后处理组件;并在启动时加载报文翻译规则,以及报文聚合规则,以及初始化报文聚合后处理组件。
需要说明的是,现有技术中提供的报文解析方案都是单机部署,无法利用服务器集群优势,没法进行线上横向扩展。
而本实施例中,报文处理节点中采用同时部署的方式,进而实现以分布式的方式将报文解析压力分布到多台处理节点,大大提升了多航司大报文下的报文处理速度,让报文处理性能可以横向扩展,解决了应对能力,例如:秒杀等突发情景下的报文解析速度。
需要说明的是,下面对各个组件的配置进行说明:
配置策略选择组件如表1所示。
表1:调度策略配置:
配置XML片段聚合组件如表2所示。
表2:片段拆分配置
配置报文翻译组件如表3所示。
表3:报文翻译组件配置
配置NDC报文聚合组件如表4所示。
表4:NDC报文聚合组件
配置NDC报文聚合后处理组件如表5所示。
表5:NDC报文聚合后处理组件
假设现在有3台报文处理节点,当前信息如表6所示:
表6:三台文处理节点的信息
以AirShopping查询请求为例,当配置策略选择组件接收到查询请求为代码段1所示的程序时,配置策略选择组件会先将该请求拆分为如代码段2和代码段3所示的两个单航司请求,这时如果是用多个这样的NDC航班查询请求一起请求服务器,策略选择组件会将多个这样的请求合并,合并流程是先读取航司的请求合并条件,由于当前配置为Segment,所以在请求合并时,以航段作为判断相同请求的条件,由于多个SQ或者QF航司请求都是SIN到TYO,所以所有这样重复的请求都将合并成2个请求发送。请求发送前会根据配置选择合适的报文处理节点,对于QF航司请求按照配置将选择分发到Node-1进行处理,而SQ航司将分发到Node-3进行处理。报文处理节点接收到请求后,会将该请求发送给处理航司,并等待航司返回,航司返回结果后(假设返回为如代码段4所示的结果),根据XML片段聚合组件配置中的XPATH配置进行片段拆分,拆分成三部分如代码段5、代码段6和代码段7所示的部分,然后读取报文翻译组件配置并进行报文翻新,翻译完成后进行片段聚合,结果为代码段8和代码段9所示结果,这两个结果分别在Node-1和Node-3,两个节点上,然后NDC报文聚合组件会收集到这两个结果,并加载报文合并配置进行报文合并,结果为如代码段10所示,最后提取数据并入库,按照NDC报文聚合后处理组件中的XPATH配置,获取数据flight-QF-1和flight-SQ-1进行入库。
其中,XPATH为:/IATA_AirShoppingRS/OfferList/FlightNum根据这个XPATH在代码段:10中提取数据为flight-QF-1和flight-SQ-1,并入库。
代码段1:
代码段3:
代码段4:
代码段5:
<DataList>
<Agent>agent</Agent>
</DataList>
代码段6:
<Airline>QF</Airline>
代码段:7:
<Offer>
<FlightNum>flight-QF-1</FlightNum>
</Offer>
代码段8:
代码段:9:
代码段:10:
在本实施例中,可以针对NDC销售场景,进行分布式报文转换。应对大流量高并发大报文下的报文解析场景、大大提高了报文解析速度和效率。通同时,多节点分布式的方式处理多报文返回,使得多航司查询在高并发下的性能不会限制在单机节点上,而是可以以横向扩展的方式提高多航司NDC报文的查询速度。
本申请另一实施例提供了一种NDC报文分布式解析系统架构集成装置,其特征在于,包括:
初始化模块,用于实现NDC报文分布式解析系统中各个组件初始化。
请求拆分模块,用于实现当NDC报文分布式解析系统接收到NDC航班查询请求时,对NDC航班查询请求进行解析拆分,得到多个单航司请求,对多个单航司请求按预设合并规则进行合并,得到合并请求。
报文处理模块,用于实现加载合并请求的配置信息,根据配置信息选择报文处理节点;报文处理节点对合并请求进行处理;并将处理后的单航司请求对应的各个小报文片段传输给NDC报文聚合组件。
聚合模块,用于实现NDC报文聚合组件按照预设的聚合策略聚合各个单航司请求对应的报文。
入库模块,用于实现NDC报文聚合后处理组件对聚合后的报文,进行数据提取并入库。
在实际应用中,报文处理模块用于实现报文处理节点对合并请求进行处理时,具体用于:
当处理节点接收到单航司请求时,NDC报文分布式解析系统中的报文拆分组件按照拆分规则对合并请求的报文进行拆分,得到多个小报文片段。
将各个小报文片段通过报文处理节点,调用报文翻译组件进行报文版本翻译。
将翻译后的所有小报文片段通过XML片段聚合组件进行聚合。
报文处理节点将单航司报文提交给NDC报文聚合组件。
在实际应用中,报文处理模块用于实现NDC报文分布式解析系统中各个组件初始化时,具体用于:
服务治理组件,通过服务端口收集节点的健康状态信息维护节点状态信息。
策略选择组件,初始化内部任务分配策略、维护可用的任务执行节点、初始化任务调度引擎。
动态扩容组件,先加载动态扩容规则,然后向服务治理组件获取报文处理节点列表,并初始化动态扩容引擎。
报文处理节点,同时部署NDC报文翻译组件、NDC报文聚合组件、NDC报文聚合后处理组件;并在启动时加载报文翻译规则,以及报文聚合规则,以及初始化报文聚合后处理组件。
在实际应用中,报文处理模块用于实现服务治理组件通过服务端口收集节点的健康状态信息维护节点状态信息时,具体用于:
服务节点启动后,自动向服务治理组件进行注册。
服务治理组件按照预设周期,进行抓取服务节点状态,并依据服务节点的状态,维护节点服务状态列表,提供可用的NDC报文处理节点列表。
在实际应用中,报文处理模块用于实现策略选择组件初始化内部任务分配策略、维护可用的任务执行节点、初始化任务调度引擎时,具体用于:
策略选择组件,拉取服务治理组件中报文处理节点列表,并加载航司查询资源限制、任务队列阈值限制、节点平均响应时间限制、请求合并配置信息,接着,通过初始化策略选择引擎。
上述各个模块的工作过程和原理,详情参见上述实施例提供的NDC报文分布式解析系统架构集成方法,此处不再一一赘述,均在本申请的保护范围内。
在本实施例中,以分布式的方式将报文解析压力分布到多台处理节点,大大提升了多航司大报文下的报文处理速度,让报文处理性能可以横向扩展,解决了应对能力,例如:秒杀等突发情景下的报文解析速度。
本说明书中的各个实施例中记载的特征可以相互替换或者组合,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种NDC报文分布式解析系统架构集成方法,其特征在于,包括:
所述NDC报文分布式解析系统中各个组件初始化;
当NDC报文分布式解析系统接收到NDC航班查询请求时,对所述NDC航班查询请求进行解析拆分,得到多个单航司请求,对多个所述单航司请求按预设合并规则进行合并,得到合并请求;
加载所述合并请求的配置信息,根据所述配置信息选择报文处理节点;所述报文处理节点对所述合并请求进行处理;并将处理后的单航司请求对应的各个小报文片段传输给NDC报文聚合组件;
所述NDC报文聚合组件按照预设的聚合策略聚合各个单航司请求对应的报文;
NDC报文聚合后处理组件对聚合后的报文,进行数据提取并入库。
2.根据权利要求1所述的NDC报文分布式解析系统架构集成方法,其特征在于,所述报文处理节点对所述合并请求进行处理包括:
当所述处理节点接收到所述单航司请求时,所述NDC报文分布式解析系统中的报文拆分组件按照拆分规则对所述合并请求的报文进行拆分,得到多个小报文片段;
将各个所述小报文片段通过所述报文处理节点,调用报文翻译组件进行报文版本翻译;
将翻译后的所有所述小报文片段通过XML片段聚合组件进行聚合;
所述报文处理节点将单航司报文提交给NDC报文聚合组件。
3.根据权利要求1所述的NDC报文分布式解析系统架构集成方法,其特征在于,所述NDC报文分布式解析系统中各个组件初始化,包括:
服务治理组件,通过服务端口收集节点的健康状态信息维护节点状态信息;
策略选择组件,初始化内部任务分配策略、维护可用的任务执行节点、初始化任务调度引擎;
动态扩容组件,先加载动态扩容规则,然后向所述服务治理组件获取报文处理节点列表,并初始化动态扩容引擎;
报文处理节点,同时部署NDC报文翻译组件、NDC报文聚合组件、NDC报文聚合后处理组件;并在启动时加载报文翻译规则、报文聚合规则,以及初始化报文聚合后处理组件。
4.根据权利要求3所述的NDC报文分布式解析系统架构集成方法,其特征在于,服务治理组件,通过服务端口收集节点的健康状态信息维护节点状态信息,包括:
服务节点启动后,自动向所述服务治理组件进行注册;
所述服务治理组件按照预设周期,进行抓取服务节点状态,并依据所述服务节点的状态,维护节点服务状态列表,提供可用的NDC报文处理节点列表。
5.根据权利要求3所述的NDC报文分布式解析系统架构集成方法,其特征在于,策略选择组件,初始化内部任务分配策略、维护可用的任务执行节点、初始化任务调度引擎,包括:
所述策略选择组件,拉取服务治理组件中报文处理节点列表,并加载航司查询资源限制、任务队列阈值限制、节点平均响应时间限制、请求合并配置信息,接着,通过初始化策略选择引擎。
6.一种NDC报文分布式解析系统架构集成装置,其特征在于,包括:
初始化模块,用于实现所述NDC报文分布式解析系统中各个组件初始化;
请求拆分模块,用于实现当NDC报文分布式解析系统接收到NDC航班查询请求时,对所述NDC航班查询请求进行解析拆分,得到多个单航司请求,对多个所述单航司请求按预设合并规则进行合并,得到合并请求;
报文处理模块,用于实现加载所述合并请求的配置信息,根据所述配置信息选择报文处理节点;所述报文处理节点对所述合并请求进行处理;并将处理后的单航司请求对应的各个小报文片段传输给NDC报文聚合组件;
聚合模块,用于实现所述NDC报文聚合组件按照预设的聚合策略聚合各个单航司请求对应的报文;
入库模块,用于实现NDC报文聚合后处理组件对聚合后的报文,进行数据提取并入库。
7.根据权利要求6所述的NDC报文分布式解析系统架构集成装置,其特征在于,所述报文处理模块用于实现所述报文处理节点对所述合并请求进行处理时,具体用于:
当所述处理节点接收到所述单航司请求时,所述NDC报文分布式解析系统中的报文拆分组件按照拆分规则对所述合并请求的报文进行拆分,得到多个小报文片段;
将各个所述小报文片段通过所述报文处理节点,调用报文翻译组件进行报文版本翻译;
将翻译后的所有所述小报文片段通过XML片段聚合组件进行聚合;
所述报文处理节点将单航司报文提交给NDC报文聚合组件。
8.根据权利要求6所述的NDC报文分布式解析系统架构集成装置,其特征在于,所述报文处理模块用于实现所述NDC报文分布式解析系统中各个组件初始化时,具体用于:
服务治理组件,通过服务端口收集节点的健康状态信息维护节点状态信息;
策略选择组件,初始化内部任务分配策略、维护可用的任务执行节点、初始化任务调度引擎;
动态扩容组件,先加载动态扩容规则,然后向所述服务治理组件获取报文处理节点列表,并初始化动态扩容引擎;
报文处理节点,同时部署NDC报文翻译组件、NDC报文聚合组件、NDC报文聚合后处理组件;并在启动时加载报文翻译规则、报文聚合规则,以及初始化报文聚合后处理组件。
9.根据权利要求8所述的NDC报文分布式解析系统架构集成装置,其特征在于,所述报文处理模块用于实现服务治理组件通过服务端口收集节点的健康状态信息维护节点状态信息时,具体用于:
服务节点启动后,自动向所述服务治理组件进行注册;
所述服务治理组件按照预设周期,进行抓取服务节点状态,并依据所述服务节点的状态,维护节点服务状态列表,提供可用的NDC报文处理节点列表。
10.根据权利要求8所述的NDC报文分布式解析系统架构集成装置,其特征在于,所述报文处理模块用于实现策略选择组件初始化内部任务分配策略、维护可用的任务执行节点、初始化任务调度引擎时,具体用于:
所述策略选择组件,拉取服务治理组件中报文处理节点列表,并加载航司查询资源限制、任务队列阈值限制、节点平均响应时间限制、请求合并配置信息,接着,通过初始化策略选择引擎。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111656391.9A CN114328587A (zh) | 2021-12-30 | 2021-12-30 | 一种ndc报文分布式解析系统架构集成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111656391.9A CN114328587A (zh) | 2021-12-30 | 2021-12-30 | 一种ndc报文分布式解析系统架构集成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328587A true CN114328587A (zh) | 2022-04-12 |
Family
ID=81018178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111656391.9A Pending CN114328587A (zh) | 2021-12-30 | 2021-12-30 | 一种ndc报文分布式解析系统架构集成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114328587A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661978A (zh) * | 2023-08-01 | 2023-08-29 | 浙江云融创新科技有限公司 | 一种分布式的流程处理方法、装置及分布式业务流程引擎 |
-
2021
- 2021-12-30 CN CN202111656391.9A patent/CN114328587A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661978A (zh) * | 2023-08-01 | 2023-08-29 | 浙江云融创新科技有限公司 | 一种分布式的流程处理方法、装置及分布式业务流程引擎 |
CN116661978B (zh) * | 2023-08-01 | 2023-10-31 | 浙江云融创新科技有限公司 | 一种分布式的流程处理方法、装置及分布式业务流程引擎 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11422853B2 (en) | Dynamic tree determination for data processing | |
CN111338812B (zh) | 数据处理方法及装置 | |
US9712402B2 (en) | Method and apparatus for automated deployment of geographically distributed applications within a cloud | |
US9996593B1 (en) | Parallel processing framework | |
US11394794B2 (en) | Fast ingestion of records in a database using data locality and queuing | |
US10681164B2 (en) | Input and output schema mappings | |
CN109756559B (zh) | 面向嵌入式机载系统分布式数据分发服务的构建及使用方法 | |
CN106777311B (zh) | 航班舱位状态缓存方法和系统 | |
US10585710B2 (en) | Dynamic code component deployment in cloud-based service platforms | |
CN106919590B (zh) | 一种多业务复用处理方法、装置、及系统 | |
CN112308515B (zh) | 一种面向ndc聚合器的ndc处理系统及其业务请求处理方法 | |
US20150271254A1 (en) | Server-processor hybrid system for processing data | |
US8090873B1 (en) | Methods and systems for high throughput information refinement | |
CN108875042A (zh) | 一种混合联机分析处理系统及数据查询方法 | |
WO2018121025A1 (zh) | 比较数据表的数据的方法和系统 | |
CN110188307A (zh) | 一种多租户数据隔离方法、服务器及系统 | |
CN110708372A (zh) | 点餐软件统一对接系统 | |
CN114328587A (zh) | 一种ndc报文分布式解析系统架构集成方法及装置 | |
CN110119396A (zh) | 数据管理方法及相关产品 | |
CN107276914B (zh) | 基于cmdb的自助资源分配调度的方法 | |
Wu et al. | Design and implementation of B2B E-commerce platform based on microservices architecture | |
US7827132B2 (en) | Peer based event conversion | |
CN105138581B (zh) | 一种移动信息写入和读取方法及系统 | |
CN110365749A (zh) | 消息推送方法、消息推送系统和一种存储介质 | |
CN113590323A (zh) | 面向MapReduce的数据传输方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |