跨协议兼容调用方法、装置、设备及存储介质与流程

未命名 09-12 阅读:81 评论:0


1.本技术涉及计算机技术领域,尤其涉及一种跨协议兼容调用方法、装置、设备及存储介质。


背景技术:

2.谷歌远程过程调用(google remote procedure call,gprc)和超文本传输协议(hypertext transfer protocol,http)是两种不同的协议。http是一个简单的请求-响应协议,而grpc提供了一种轻量无感知的跨进程通信方式,gprc使用http作为传输协议来传输数据。
3.近年来由于云计算技术的发展,grpc和http混合应用的场景非常多,特别是在性能时延要求高或数据传输量大的服务之间,通常技术选型都趋向于grpc作为互联网数据中心(internet data center,iec)的内部通信协议,对外或者性能要求不高的接口采用http。而由于开源软件的蓬勃发展,很多机构在开发时,在符合协议的前提下修改开源软件以减小开发成本,通常支持的协议就是grpc或者http的一种,异构系统采用不同的服务框架和通信协议,服务之间的调用和通信就成了难题。
4.目前解决上述异构系统间调用和通信的方法是通过额外的网关组件来实现的,但这一方面需要额外的网络开销,并且开发成本较高,并且也变相提高了运维成本。


技术实现要素:

5.本技术提供一种跨协议兼容调用方法、装置、设备及存储介质,降低了异构系统间调用的开销和开发成本。
6.第一方面,本技术提供一种跨协议兼容调用方法,包括:为gprc服务配置web容器,并为web容器配置servlet接口,所述servlet接口用于在所述grpc服务和web服务器之间进行消息转换;为web容器配置servlet门面类,servlet门面类包括启动绑定门面类;通过servlet门面类启动grpc服务。
7.第二方面,本技术提供一种跨协议兼容调用装置,包括:接口配置模块,用于为gprc服务配置web容器,并为web容器配置servlet接口,所述servlet接口用于在所述grpc服务和web服务器之间进行消息转换;类配置模块,用于为web容器配置servlet门面类,servlet门面类包括启动绑定门面类;服务启动模块,用于通过servlet门面类启动grpc服务
8.本技术提供基于跨协议兼容调用方法、装置、设备及存储介质,通过为gprc服务配置web容器,并为web容器配置servlet接口,并为web容器配置servlet门面类,servlet门面类包括启动绑定门面类,即可通过servlet门面类启动grpc服务,这样可以使web服务器直接通过web容器调用grpc服务,无需额外的网关组件,从而降低了开销和开发难度。
附图说明
9.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
10.图1为本技术实施例提供的跨协议兼容调用方法的流程图一;
11.图2为本技术实施例提供的跨协议兼容调用方法的流程图二;
12.图3为本技术实施例提供的跨协议兼容调用装置的结构示意图;
13.图4为本技术实施例提供的电子设备的结构示意图。
14.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
15.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。本技术技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
16.grpc和http是两种不同的协议,它们有一些重要的区别。
17.其中,从传输协议角度看,grpc使用了http/2协议来传输数据,而http通常使用http/1.1或http/2。http/2是http的下一代协议,支持多路复用和流控制等特性,使得数据传输更加高效。
18.从序列化协议角度看,grpc使用protocol buffers作为默认的序列化协议,它是一种高效的二进制序列化协议。而http通常使用json或xml等文本格式的序列化协议,这些协议的数据量较大,传输效率不高。
19.从服务定义角度看,grpc使用接口定义语言(interface definition language,idl)来定义服务,idl可以用于生成不同编程语言的客户端和服务端代码,提供了更加规范和标准的接口定义。而http通常使用restful api来定义服务,restful api的接口定义相对较为灵活,但是缺少规范性。
20.从错误处理角度看,grpc使用状态码和状态消息来标识错误类型,这些错误码和消息是事先定义好的,可以帮助开发人员更快地定位问题。而http通常使用http状态码和错误消息来标识错误类型,这些错误码和消息没有统一的标准,开发人员需要自行解析。
21.从性能角度看,由于grpc使用了http/2协议和protocol buffers序列化协议,它通常比http具有更高的性能和更低的网络开销。
22.近年来由于云计算技术的发展,grpc和http混合应用的场景非常多,特别是在性能时延要求高或数据传输量大的服务之间,通常技术选型都趋向于grpc作为idc的内部通信协议,对外或者性能要求不高的接口采用http。而由于开源软件的蓬勃发展,很多机构在开发时,在符合协议的前提下修改开源软件以减小开发成本,通常支持的协议就是grpc或者http的一种,异构系统采用不同的服务框架和通信协议,服务之间的调用和通信就成了难题。
23.目前,grpc和http组成的异构系统间调用和通信的问题,通常通过额外的网关组件来实现,但是需要额外的网络开销,并且开发成本较高,增加部署流程和工艺,也变相提高了运维成本。
24.例如,一种基于网关的异构系统调用方法为:
25.1、由http客户端发起rest api调用,这个调用通常是传统的http 1.1的请求,这个请求不直接调用服务,而是调用网关。
26.2、网关通过解析协议,查询协议对应的服务地址,并且对协议进行转换,生成新的请求体。
27.3、由网关调用grpc服务,并且对返回的grpc响应进行解析,再转化成restful/json的响应,返回给客户端。
28.上述方法通过部署额外的网关组件,虽然实现了gprc与http之间的调用,但会增加额外的开销。
29.图1为本技术实施例提供的跨协议兼容调用方法的流程图一。如图1所示,该跨协议兼容调用方法包括:
30.步骤s110,为gprc服务配置web容器,并为web容器配置servlet接口,servlet接口用于在grpc服务和web服务器之间进行消息转换。
31.本实施例的跨协议兼容调用方法可以应用于web服务器中,该web服务器中的各种服务基于grpc和http混合开发,也就是混合grpc和http服务的web服务器。该web服务器可以部署于云端,或者部署于某一网络中的服务器中。
32.由于基于grpc开发的服务的传输协议采用的是http/2,而一些已有的服务是基于http/1.1开发的。另外,一些对时延或数据传输量要求不高的服务,为了降低开发成本也是基于http/1.1开发的。那么就需要解决在同一个web服务器中部署两种基于不同协议开发的服务的问题。为了避免部署额外的网关组件产生的额外开销,本技术实施例提出一种跨协议兼容调用方法,无需部署任何额外组件,即可实现基于不同协议开发的服务的相互调用。
33.本实施例提出的跨协议兼容调用方法,采用web容器的方法,通过修改grpc内核,使得grpc服务报文能够符合servlet规范且运行在web容器中。由于grpc协议基于http/2,因此可以通过上述方法,将grpc服务放入web容器中运行,这样就可以使web服务器既能够支持基于http/1.1开发的服务,也能够通过web容器支持基于grpc开发的服务。
34.为了将grpc服务放入web容器中运行,首先为grpc服务配置web容器,并为web容器配置servlet接口。web容器也可以称为servlet容器,是web服务器的一个组件,web容器提供了一个运行环境,它除了实现servlet规范定义的各种接口和类,为servlet的运行提供底层支持,还需要管理由用户编写的servlet类,例如实例化类、调用方法、销毁类等。servlet是在服务器上运行的小程序,servlet的主要功能在于交互式地浏览和修改数据,生成动态web内容。servlet的主要功能可以总结为如下过程:1、客户端发送请求至服务器端;2、服务器将请求信息发送至servlet;3、servlet生成响应内容并将其传给服务器,相应内容动态生成,通常取决于客户端的请求;4、服务器将响应返回给客户端。由此可见,servlet的功能与网关组件十分类似,因此在为grpc服务配置web容器后,为web容器配置servlet接口,只要servlet接口被配置为grpc服务匹配,那么即可实现通过web容器对grpc
服务的调用。为web容器配置的servlet接口用于在grpc服务和web服务器之间进行消息转换,也就是将web服务器的http请求和http响应转换为grpc请求和grpc响应。servlet接口的作用相当于在web服务器和grpc服务之间建立了一个网关,但servlet接口仅需基于web容器的方法,在为grpc服务配置的web容器中配置相应的接口转换方法,在实例化配置的web容器后即可使实例化的web容器具有消息转换的能力。
35.这样一方面,web服务器可以直接调用采用http开发的服务,另一方面,web服务器也可以通过web容器调用grpc服务,且并未增加任何额外的组件。
36.进一步地,为web容器配置servlet接口,包括:为web容器配置servlet中的dopost接口。为grpc服务配置web容器,并配置servlet接口,相当于使grpc能够符合servlet规范并且运行与web容器中,也就是相当于为grpc服务套一层servlet的外壳。一种实现方式是通过servlet中的dopost接口实现,为web容器配置servlet中的dopost接口。dopost是用于客户端向服务器发送请求的方法,dopost接口通过请求体传递参数,且dopost请求没有大小限制。dopost请求的参数被包含在请求体中,安全性相对较高。dopost请求中的参数不会被缓存,进一步提高了安全性。因此通过为web容器配置dopost接口,可以实现对web容器中的grpc服务的调用,且安全性较高。具体地,dopost接口用于将http客户端的servlet请求和servlet响应转换为grpc请求和grpc响应,当实例化的web容器接收到http post请求时,会检查该请求是否是一个grpc请求,这可以通过检查请求中的内容类型(content-type)字段是否包含grpc服务(application/grpc)来实现。如果确定接收到的请求为grpc请求,web容器会通过配置的servlet接口将http请求转换为grpc请求,并调用web容器中的grpc服务。grpc服务的响应同样通过servlet接口的转换转换为http响应并返回web服务器中的请求端。
37.为web容器配置servlet接口,还可以将dopost接口委托给已注册的grpc服务实现中,这样就能够根据请求中的路径路由到具体的服务名,定位到具体的方法调用。
38.步骤s120,为web容器配置servlet门面类,servlet门面类包括启动绑定门面类。
39.进一步地,为了实现通过web容器对grpc服务的调用,还需要为给grpc服务配置的web容器配置servlet门面类,该servlet门面类包括启动绑定门面类。servlet门面类用于统一承接所有符合servlet规范的服务,并且把grpc协议请求代理给具体实现。也就是说,为web容器配置包括启动绑定门面类的servlet门面类后,就可以获知该web容器专门用于实现对grpc服务的调用,这样便于通过web容器对grpc服务的调用。
40.为web容器配置servlet门面类,具体可以首先为web容器配置servlet门面类,servlet门面类包括启动绑定门面类;然后将通过web容器启动的grpc服务实现绑定到启动绑定门面类中。通过进行上述绑定,可以使得这些位于web容器中的grpc服务得以注册。上述启动绑定门面类可以为bootstrap类。
41.步骤s130,通过servlet门面类启动grpc服务。
42.为web容器配置了servlet门面类后,即可通过该servlet门面类启动grpc服务。由于为grpc服务配置的web容器配置的servlet门面类包括启动绑定门面类,那么通过启动绑定门面类可以直接定位到具有grpc服务的web容器,这样就可以直接运行web容器中的grpc服务。
43.本实施例提供的方法,采用了web容器且仅配置了servlet接口和门面类,无需侵
入式修改原有grpc服务实现,因此开发成本较低,无需对grpc服务进行重新开发。
44.具体地,通过servlet门面类启动grpc服务,可以是将servlet门面类实例添加到web容器上下文中;然后通过web容器上下文,在不通过web容器的状态下启动grpc服务。也就是说,将为web容器配置的servlet门面类实例添加到web容器上下文中,这样就无需通过web容器,而是在获取到web容器上下文之后,就可以或者该web容器中为grpc服务,那么就可以直接启动web容器中的grpc服务。例如在tomcat中,使用tomcat.addservlet方法,可以把servlet门面类实例添加到容器上下文中。
45.本实施例提供的跨协议兼容调用方法,通过为gprc服务配置web容器,并为web容器配置servlet接口,并为web容器配置servlet门面类,servlet门面类包括启动绑定门面类,即可通过servlet门面类启动grpc服务,这样可以使web服务器直接通过web容器调用grpc服务,无需额外的网关组件,从而降低了开销和开发难度。
46.另外,通过上述实施例的方法,通过web容器实现对gprc服务的调用,那么对于http服务,可以直接响应于web服务器的调用,也就是无需任何额外组件,web服务器即可实现http和grpc混合服务的调用。此时对于grpc客户端的服务调用,通过配置的servlet接口调用web容器中的grpc服务;使用web服务器响应web容器中的grpc服务。也就是说,可以在同一个服务端口上同时支持寸头的http调用和grpc调用,另外,在统一服务中,同样可以支持grpc和http协议。
47.在意实施例中,当配置了servlet接口的web容器被销毁时,相应地servlet接口和servlet门面类也需要同时销毁。
48.图2为本技术实施例提供的跨协议兼容调用方法的流程图二。如图2所示,该跨协议兼容调用方法包括:
49.步骤s210,建立监听流,监听流监听web服务器中接收的每个帧。
50.步骤s220,解析接收的每个帧,并将解析后的帧放入web服务器的待处理队列。
51.步骤s230,使用web服务器的服务线程依次处理待处理队列中的帧。
52.为了实现对gprc服务的调用,对于流式传输,可以建立监听流,该监听流监听web服务器接收的每一个帧,将接收的每个帧解析后,将解析后的帧放入web服务器的待处理队列中,接着使用web服务器的服务线程依次处理待处理队列中的帧。
53.本技术实施例提供的跨协议兼容调用方法,使得grpc支持传统的http调用,可以带来如下优势:
54.跨语言支持:grpc是一种跨语言的rpc框架,但是有些编程语言可能不支持grpc原生协议。通过支持http/1.1,grpc可以与使用任何编程语言编写的客户端进行通信。
55.兼容性:grpc使用了http/2协议的特性,例如多路复用和二进制数据流传输。但是,有些情况下(例如,低带宽网络环境),使用http/2可能会导致性能下降。使用http/1.1,可以保证grpc能够在任何网络环境下正常工作,并且具有更广泛的兼容性。
56.简单性:http/1.1是一种普及的协议,相比于http/2,更简单易懂。通过支持http/1.1,可以使grpc更容易被开发人员接受和使用。
57.透明性:由于http/1.1是一种标准协议,通过支持http/1.1,grpc可以在大多数web服务器上进行部署,并且可以使用任何http客户端进行访问。这使得grpc的部署更加灵活和透明。
58.跨平台支持:http/1.1是一种跨平台协议,可以在各种操作系统和硬件平台上运行。通过支持http/1.1,grpc可以跨平台运行,无需额外的编程工作。
59.可扩展性:让grpc运行在web容器中提供了一种可扩展性的基础,可以利用web拦截器和filter来实现包括:权限控制、日志记录、请求和相应的加密解密、编码解码、性能监控等。
60.综上,本实施例提供的跨协议兼容调用方法,基于较小的开发成本实现了较优的性能。
61.图3为本技术实施例提供的跨协议兼容调用装置的结构示意图。如图3所示,该跨协议兼容调用装置,包括:接口配置模块310、类配置模块320、服务启动模块330。
62.其中,接口配置模块310,用于为gprc服务配置web容器,并为web容器配置servlet接口。
63.类配置模块320,用于为web容器配置servlet门面类,servlet门面类包括启动绑定门面类。
64.服务启动模块330,用于通过servlet门面类启动grpc服务。
65.在一些实施例中,接口配置模块310,具体用于为web容器配置servlet中的dopost接口。
66.在一些实施例中,接口配置模块310,具体用于将dopost接口委托给已注册的grpc服务实现中。
67.在一些实施例中,类配置模块320,具体用于为web容器配置servlet门面类,servlet门面类包括启动绑定门面类;将通过web容器启动的grpc服务实现绑定到启动绑定门面类中。
68.在一些实施例中,启动绑定门面类为bootstrap类。
69.在一些实施例中,服务启动接口配置模块330,具体用于将servlet门面类实例添加到web容器上下文中;通过web容器上下文,在不通过web容器的状态下启动grpc服务。
70.在一些实施例中,对于http客户端的服务调用,使用web服务器直接响应调用。
71.在一些实施例中,对于grpc客户端的服务调用,通过配置的servlet接口调用web容器中的grpc服务;使用web服务器响应web容器中的grpc服务。
72.在一些实施例中,跨协议兼容调用装置还包括:流服务模块,用于建立监听流,监听流监听web服务器中接收的每个帧;解析接收的每个帧,并将解析后的帧放入web服务器的待处理队列;使用web服务器的服务线程依次处理待处理队列中的帧。
73.在一些实施例中,grpc服务基于http/2协议传输数据。
74.在一些实施例中,web容器支持http/1.1协议。
75.本技术实施例提供的跨协议兼容调用装置,可用于执行上述实施例中跨协议兼容调用方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
76.需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,接口配置模块310、类配置模块320、服务启动模块330均可以为单独设立的处理元件,也可以集成在上述
装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上接口配置模块310、类配置模块320、服务启动模块330的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
77.图4为本技术实施例提供的电子设备的结构示意图。如图4所示,该电子设备可以包括:收发器41、处理器42、存储器43。
78.处理器42执行存储器存储的计算机执行指令,使得处理器42执行上述实施例中的方案。处理器42可以是通用处理器,包括中央处理器cpu、网络处理器(network processor,np)等;还可以是数字信号处理器dsp、专用集成电路asic、现场可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
79.存储器43通过系统总线与处理器42连接并完成相互间的通信,存储器43用于存储计算机程序指令。
80.收发器41可以用于获取待运行任务和待运行任务的配置信息。
81.系统总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。收发器用于实现数据库访问装置与其他计算机(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(random access memory,ram),也可能还包括非易失性存储器(non-volatile memory)。
82.本技术实施例提供的电子设备,可以是上述实施例的金融机构系统中的计算机或服务器。
83.本技术实施例还提供一种运行指令的芯片,该芯片用于执行上述实施例中跨协议兼容调用方法的技术方案。
84.本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述实施例跨协议兼容调用方法的技术方案。
85.本技术实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,其存储在计算机可读存储介质中,至少一个处理器可以从计算机可读存储介质读取计算机程序,至少一个处理器执行计算机程序时可实现上述实施例中跨协议兼容调用方法的技术方案。
86.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
87.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。

技术特征:
1.一种跨协议兼容调用方法,其特征在于,包括:为gprc服务配置web容器,并为所述web容器配置servlet接口,所述servlet接口用于在所述grpc服务和web服务器之间进行消息转换;为所述web容器配置servlet门面类,所述servlet门面类包括启动绑定门面类;通过所述servlet门面类启动所述grpc服务。2.根据权利要求1所述的方法,其特征在于,所述为所述web容器配置servlet接口,包括:为所述web容器配置servlet中的dopost接口,所述dopost接口用于将http客户端的servlet请求和servlet响应转换为grpc请求和grpc响应。3.根据权利要求2所述的方法,其特征在于,所述为所述web容器配置servlet中的dopost接口之后,还包括:将所述dopost接口委托给已注册的grpc服务实现中。4.根据权利要求1所述的方法,其特征在于,所述为所述web容器配置servlet门面类,包括:为所述web容器配置servlet门面类,所述servlet门面类包括启动绑定门面类;将通过所述web容器启动的grpc服务实现绑定到所述启动绑定门面类中。5.根据权利要求4所述的方法,其特征在于,所述启动绑定门面类为bootstrap类。6.根据权利要求1所述的方法,其特征在于,所述通过所述servlet门面类启动所述grpc服务,包括:将所述servlet门面类实例添加到所述web容器上下文中;通过所述web容器上下文,在不通过所述web容器的状态下启动所述grpc服务。7.根据权利要求1~6任一项所述的方法,其特征在于,对于http客户端的服务调用,使用web服务器直接响应调用。8.根据权利要求1~6任一项所述的方法,其特征在于,对于grpc客户端的服务调用,通过配置的servlet接口调用web容器中的grpc服务;使用web服务器响应web容器中的grpc服务。9.根据权利要求1~6任一项所述的方法,其特征在于,还包括:建立监听流,所述监听流监听web服务器中接收的每个帧;解析接收的每个帧,并将解析后的帧放入所述web服务器的待处理队列;使用所述web服务器的服务线程依次处理所述待处理队列中的帧。10.根据权利要求1~6任一项所述的方法,其特征在于,所述grpc服务基于http/2协议传输数据。11.根据权利要求1~6任一项所述的方法,其特征在于,所述web容器支持http/1.1协议。12.一种跨协议兼容调用装置,其特征在于,包括:接口配置模块,用于为gprc服务配置web容器,并为所述web容器配置servlet接口,所述servlet接口用于在所述grpc服务和web服务器之间进行消息转换;类配置模块,用于为所述web容器配置servlet门面类,所述servlet门面类包括启动绑定门面类;
服务启动模块,用于通过所述servlet门面类启动所述grpc服务。13.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-12中任一项所述的方法。14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-12中任一项所述的方法。15.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-12中任一项所述的方法。

技术总结
本申请提供一种跨协议兼容调用方法、装置、设备及存储介质。涉及计算机技术领域。该方法包括:为gPRC服务配置web容器,并为web容器配置servlet接口,所述servlet接口用于在所述gRPC服务和web服务器之间进行消息转换;为web容器配置servlet门面类,servlet门面类包括启动绑定门面类;通过servlet门面类启动gRPC服务。本申请的方法,降低了异构系统间调用的开销和开发成本。销和开发成本。销和开发成本。


技术研发人员:陈江枫
受保护的技术使用者:建信金融科技有限责任公司
技术研发日:2023.07.04
技术公布日:2023/9/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐