基于概率分布的无服务器计算资源弹性伸缩方法及系统

未命名 08-05 阅读:142 评论:0


1.本发明涉及基于概率分布的无服务器计算资源弹性伸缩方法及系统,属于无服务器计算弹性伸缩技术领域。


背景技术:

2.随着容器技术的发展和微服务框架的普及,开发人员期望一种无需管理服务器操作以及硬件资源管理的云计算范式。传统的服务器计算需要开发人员以基于预订的收费方式来租赁服务器,并需要开发人员管理服务器的硬件资源,此外,在传统的服务器计算中,用户需要为经常闲置的虚拟机或容器付费。为了满足开发人员无需管理服务器和用户节省成本的需求,研究人员提出了无服务器计算的概念。据云原生计算基金会(cloud native computing foundation,cncf)定义,无服务器计算是指在构造和运行应用程序时无需管理服务器的一种计算范式。它描述了细粒度部署模型,由一个或多个函数组成的应用可上传到平台,并执行、扩缩容和基于实际运行时的资源消耗进行计费。根据云原生计算基金会对无服务器计算的定义,无服务器计算带来的主要优势为:可伸缩性,无服务器计算增加和释放计算资源不依赖运维团队,部署的服务能够在流量峰值到来时快速、自动地扩展,反之,能在流量减少时自动释放资源降低成本;现收现付计费模式,在无服务器计算中,用户只需为使用的计算资源付费,即只在执行云函数时才付费。
3.虽然无服务器计算有许多特点和优势,但与传统服务器计算之间的差异将带来许多挑战。这些挑战会对系统产生性能和安全等方面的巨大影响。在无服务器计算中,函数在无服务器平台上必须完成初始化工作才能执行。一旦函数被调用,第一步工作就是准备一个函数实例,是否创建新函数实例响应函数请求是冷启动和热启动的主要区别。通常来说,冷启动的延时要远远高于热启动。无服务器计算希望给用户提供一种高质量且低成本的服务,因此,如何以尽可能低的成本降低冷启动发生率是无服务器计算主要的性能挑战。
4.尽管现有的冷启动优化技术(例如缓存优化、实例复用、实例预热等)在多数情况下都是有效的,但在处理冷启动问题时,它仍会遇到一些性能问题。一方面,这些冷启动优化技术会带来额外的资源消耗或者计算时延。另一方面,一些延迟远远高于并发应用程序中的平均值,称为尾部延迟,由函数初始化、存储访问和突发函数调用流量造成。在实例预热技术中,通常采用时间序列预测的方法,例如移动平均算法、指数平滑法、arima等。此外,由于近年来深度学习和强化学习的快速发展,许多研究人员将深度学习和强化学习算法应用到实例预热技术中。然而,在云环境中存在的流量突发问题极大地增加了预测预热函数实例数量的难度。导致当出现流量突发情况时,集群中的函数实例难以及时响应请求流量而造成请求堵塞,这对低延时要求的服务是致命的。


技术实现要素:

5.对于无服务器计算的弹性伸缩,为了解决冷启动延迟问题,选择用提前预热函数实例,从而降低冷启动发生频率,避免函数冷启动发生,有效地降低了请求响应时间,使得
函数实例数能够快速响应请求,本发明结合无服务器计算场景的特性,提出了基于概率分布的无服务器计算资源弹性伸缩方法,该方法能够利用历史数据构造未来请求的概率分布,以最小化请求响应时间为目标,并且结合数据的离散程度计算最佳预热函数实例数量,能够更好地解决流量突发问题,有效地降低了无服务器计算请求的响应延时,降低了冷启动问题对无服务器计算的影响。
6.本发明提供的基于概率分布的无服务器计算资源弹性伸缩方法,具体方案如下:
7.参与对象包括用户请求、kubernetes集群及弹性伸缩器,所述kubernetes集群中部署了多个用户服务相应的函数,用户通过所述kubernetes集群提供的api或者http请求调用部署的函数,所述弹性伸缩器根据用户请求量扩缩函数实例以响应所述用户请求,其特征在于,所述弹性伸缩方法包括:
8.步骤一:根据参与对象的用户请求、kubernetes集群及弹性伸缩器建立网络模型;
9.步骤二:利用所述用户请求的历史数据构造未来请求的概率分布,再结合数据的离散程度计算预热函数实例数量;
10.步骤三:根据预热函数实例数量和就绪函数实例数量,弹性伸缩器进行相应的伸缩操作。
11.可选的,所述步骤二包括:
12.步骤21:所述用户请求经过网关路由到kubernetes集群,集群服务响应用户请求,同时向所述弹性伸缩器的监控模块报告请求量,所述弹性伸缩器的监控模块收集并保存用户请求数据;
13.步骤22:所述弹性伸缩器的分析模块对用户请求的历史数据进行分析,计算构造未来请求概率分布的相应参数μ和历史数据的离散程度cv,通过参数μ构造出相应的概率分布并结合离散程度cv计算出预热函数实例数量;
14.步骤23:所述弹性伸缩器的计划模块将预热函数实例数量与就绪函数实例数量进行比较,如果低于就绪函数实例数量,则发送扩容命令以及相应的数量给执行模块,反之亦然;
15.步骤24:弹性伸缩器的执行模块将根据接收的命令进行创建或者释放函数实例;
16.步骤25:每个伸缩周期开始时刻重复所述步骤22-步骤25的步骤进行弹性伸缩。
17.可选的,所述步骤22计算预热函数实例数量的方法包括:
18.对于第i个服务,令服务i∈s,计算在t时刻构造泊松分布的参数λ,即:
[0019][0020]
其中,表示在t时刻收集第i个服务的历史数据;s表示服务的集合;
[0021]
利用参数λ构造出未来请求的概率密度函数,即:
[0022][0023]
由概率密度函数求得累积概率分布,即:
[0024][0025]
再利用累积概率分布求得观测值ov,即:
[0026]
ov=f-1
(p)
[0027]
其中,p代表置信概率:
[0028]
p=α+(1-α)
×
tanh(cv)
[0029]
其中,α表示当时的置信概率;
[0030]
最后结合用户设置的目标值(tv)计算最佳预热函数实例数量:
[0031][0032]
其中,neworderinstances表示最佳预热函数实例数量。
[0033]
可选的,所述历史数据的离散程度cv的表达式为:
[0034][0035]
其中,var()为方差,mean()为均值。
[0036]
可选的,所述步骤22采用深度学习模型来计算构造未来请求概率分布的相应参数μ。
[0037]
本发明的第二个目的在于提供一种无服务器计算资源弹性伸缩系统,系统包括:kubernetes集群和弹性伸缩器;所述弹性伸缩器包括:监控模块、分析模块、计划模块和执行模块;
[0038]
所述kubernetes集群接收并响应用户请求,同时向所述监控模块报告请求量,所述监控模块收集并保存用户请求数据;
[0039]
所述分析模块对用户请求的历史数据进行分析,计算构造未来请求概率分布的相应参数μ和历史数据的离散程度cv,通过参数μ构造出相应的概率分布并结合离散程度cv计算出预热函数实例数量;
[0040]
所述计划模块将所述预热函数实例数量与就绪函数实例数量进行比较,如果低于就绪函数实例数量,则发送扩容命令以及相应的数量给执行模块;如果高于就绪函数实例数量,则发送释放命令以及相应的数量给执行模块;
[0041]
所述执行模块根据接收的命令进行创建或者释放函数实例。
[0042]
可选的,当revision处于非活跃状态时,客户请求通过网关转发到activator,然后由activator接收并缓存请求并向所述弹性伸缩器的监控模块报告请求量;当revision处于活跃状态时,所述客户请求直接转发到pod的user container中,所述弹性伸缩器的监控模块向queue-proxy container收集指标,所述分析模块利用历史数据计算请求的概率分布,再结合离散程度计算观测值ov,所述计划模块计算利用所述观测值ov相应的预热pod数,所述执行模块根据预热pod数进行相应的伸缩操作。
[0043]
可选的,所述系统将无服务器计算的弹性伸缩过程抽象为mape控制循环,实时地调整函数实例数量以响应动态负载变化。
[0044]
可选的,所述分析模块采用深度学习模型计算构造未来请求概率分布的相应参数μ。
[0045]
本发明的第三个目的在于提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据上述任一项
所述的无服务器计算资源弹性伸缩方法。
[0046]
本发明有益效果是:
[0047]
由于云环境中存在的流量突发问题,因此时间序列预测的方法,例如移动平均算法、指数平滑法、arima等,很难准确地预测预热函数实例数量,这会导致当出现流量突发情况时,集群中的函数实例难以及时响应请求流量而造成请求堵塞,这对低延时要求的服务是致命的,因此,本发明针对以上问题研究了流量突发情况下的数据特性,以最小化请求响应时间为目标,能有效降低冷启动问题对无服务器计算的影响。
[0048]
进一步,由于时间变化,用户请求的需求也会随之变化,因此无服务器计算的弹性伸缩机制需要一种自适应策略,通过监控云环境提供自动化决策。因此,基于强化学习和深度学习算法很适合于这一领域。经典的强化学习算法需要环境和动作空间具有离散性,但在无服务器计算弹性伸缩中,环境状态如内存、cpu利用率以及调用时间等都具有连续性。如果使用深度学习算法预测预热实例数,由于在云环境的突发性,很难在简单的模型下具有高准确性,但使用复杂的深度学习模型预测则会导致高昂的计算成本以及时间开销。因此本发明提出利用概率分布结合数据的离散程度来解决用户请求需求的时效性,且本发明的基于概率分布的无服务器计算资源弹性伸缩方法具有低时间复杂度,从而保证不会导致高昂的计算成本以及时间开销。
[0049]
根据本发明的基于概率分布的无服务器计算资源弹性伸缩方法,通过构造概率分布的方法计算预热函数实例数量,并结合数据的离散程度解决云环境的流量突发问题,并进行弹性伸缩,不仅能够保护用户请求被及时响应,还在保证请求低延时的前提下降低了计算预热函数实例数量过程中需要的计算成本以及时间开销。进一步,通过深度学习模型预测概率分布,本发明可以显著降低请求响应时间,避免函数冷启动的发生,有效降低了冷启动问题对无服务器计算的影响。
附图说明
[0050]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0051]
图1是根据本发明的弹性伸缩方法的网络模型结构图。
[0052]
图2是根据本发明的弹性伸缩方法中预测概率分布参数的深度学习模型图。
[0053]
图3是根据本发明的弹性伸缩方法的流程示意图。
具体实施方式
[0054]
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0055]
实施例一:
[0056]
本实施例提供一种无服务器计算资源弹性伸缩方法,参与对象包括用户请求、kubernetes集群及弹性伸缩器,所述kubernetes集群中部署了多个用户服务相应的函数,用户通过所述kubernetes集群提供的api或者http请求调用部署的函数,所述弹性伸缩器
根据用户请求量扩缩函数实例以响应所述用户请求,弹性伸缩方法包括:
[0057]
步骤一:根据参与对象的用户请求、kubernetes集群及弹性伸缩器建立网络模型;
[0058]
步骤二:利用所述用户请求的历史数据构造未来请求的概率分布,再结合数据的离散程度计算预热函数实例数量;
[0059]
步骤三:根据预热函数实例数量和就绪函数实例数量,弹性伸缩器将进行相应的伸缩操作。
[0060]
实施例二:
[0061]
本实施例提供一种基于概率分布的无服务器计算资源弹性伸缩方法,根据本实施例的基于概率分布的无服务器计算资源弹性伸缩方法,其具体技术方案如下:
[0062]
本实施例的无服务器计算资源弹性伸缩方法,参与对象包括用户请求、kubernetes集群及弹性伸缩器,kubernetes集群中部署了多个用户服务相应的函数,用户通过kubernetes集群提供的相应的api或者http请求调用部署的函数,弹性伸缩器根据用户请求量扩缩函数实例以快速响应用户请求,具体包括如下步骤:
[0063]
步骤一:根据参与对象的用户请求、kubernetes集群及弹性伸缩器建立网络模型;
[0064]
步骤二:利用用户请求的历史数据构造未来请求的概率分布,再结合数据的离散程度计算预热函数实例数量;
[0065]
步骤三:根据预热函数实例数量和就绪函数实例数量,弹性伸缩器将进行相应的伸缩操作。
[0066]
根据本实施例的基于概率分布的无服务器计算资源弹性伸缩方法还包括,在所述步骤二中还能有效地结合深度学习模型预测未来请求的概率分布。
[0067]
参考附图2,根据本实施例的基于概率分布的无服务器计算资源弹性伸缩方法,结合深度学习模型的方法为:弹性伸缩器记录用户请求的历史数据,并提供深度学习模型计算构造未来请求概率分布的相应参数,并将得到的相应参数构造出相应的概率分布,再结合数据的离散程度计算预热函数实例数量,将预热函数实例数量与就绪函数实例数量进行比较,如果低于就绪函数实例数量,则创建相应数量的函数实例,反之则释放相应数量的函数实例。
[0068]
在一种实施方式中,为方便描述,x={x
t-1
,x
t-2
,x
t-3
,

,x
t-n
}为收集的用户请求历史数据,x
t
∈n表示在t时刻的用户请求量。计算构造未来请求概率分布的相应参数μ=dl(x)和历史数据的离散程度其中dl(.)是深度学习网络模型,通过参数μ构造出相应的概率分布并结合离散程度cv计算出预热函数实例数量,将预热函数实例数量与就绪函数实例数量进行比较,如果低于就绪函数实例数量,则创建相应数量的函数实例,反之亦然。
[0069]
根据本实施例的基于概率分布的无服务器计算资源弹性伸缩方法,利用历史数据构造未来请求的概率分布,并且结合数据的离散程度计算最佳预热函数实例数量的具体步骤为:
[0070]
s1.用户请求经过网关路由到kubernetes集群,集群服务响应用户请求,同时向弹性伸缩器的监控模块报告请求量,弹性伸缩器的监控模块收集并保存用户请求数据;
[0071]
s2.弹性伸缩器的分析模块对用户请求的历史数据进行分析,计算构造未来请求
概率分布的相应参数μ=dl(x)和历史数据的离散程度通过参数μ构造出相应的概率分布并结合离散程度cv计算出预热函数实例数量;
[0072]
s3.弹性伸缩器的计划模块将预热函数实例数量与就绪函数实例数量进行比较,如果低于就绪函数实例数量,则发送扩容命令以及相应的数量给执行模块,反之亦然;
[0073]
s4.弹性伸缩器的执行模块将根据接收的命令进行创建或者释放函数实例;
[0074]
s5.每个时间周期开始时刻重复s2-s5的步骤进行弹性伸缩;
[0075]
参考附图3,预热函数实例数量计算方法采用如下计算规则:
[0076]
表示在t时刻收集第i个服务的历史数据;s表示服务的集合;pi表示第i个服务的函数实例集合;
[0077]
对于集群中所有的服务,预热函数实例数量计算的方式如下:
[0078]
对于第i个服务,令服务i∈s,计算在t时刻构造泊松分布的参数λ,即:
[0079][0080]
利用参数λ构造出未来请求的概率密度函数,即:
[0081][0082]
由概率密度函数求得累积概率分布,即:
[0083][0084]
再利用累积概率分布求得观测值(ov),即:
[0085]
ov=f-1
(p)
[0086]
其中,p代表置信概率,即未来数据值都包含在某一范围内的概率。这表明计算得出的pod数很大概率能够处理未来的最大请求负载,即:
[0087]
p=α+(1-α)
×
tanh(cv)
[0088]
利用tanh函数在定义域[0,+∞)区间上值域为[0,1),单调递增的性质可以使得p和cv正相关,且能保证p的取值范围为[0,1)。tanh函数公式:
[0089][0090]
α表示当时的置信概率,当历史数据都为定值时,得到的ov值会等于该值,即:
[0091]
α=f(λ)
[0092]
cv为代表离散程度的系数,即方差和平均值之比,即:
[0093][0094]
其中,var()为方差。
[0095]
结合用户设置的目标值(tv)计算最佳预热函数实例数量,即:
[0096]
[0097]
本实施例的基于概率分布的无服务器计算资源弹性伸缩方法,通过构造概率分布的方法计算预热函数实例数量,并结合数据的离散程度解决云环境的流量突发问题,并进行弹性伸缩,不仅能够保护用户请求被及时响应,还在保证请求低延时的前提下降低了计算预热函数实例数量过程中需要的计算成本以及时间开销。进一步,通过深度学习模型预测概率分布,本实施例可以显著降低请求响应时间,避免函数冷启动的发生,有效降低了冷启动问题对无服务器计算的影响
[0098]
实施例三:
[0099]
本实施例提供一种无服务器计算资源弹性伸缩系统,包括:kubernetes集群和弹性伸缩器;弹性伸缩器包括:监控模块、分析模块、计划模块和执行模块;
[0100]
kubernetes集群接收并响应用户请求,同时向监控模块报告请求量,监控模块收集并保存用户请求数据;
[0101]
分析模块对用户请求的历史数据进行分析,计算构造未来请求概率分布的相应参数μ和历史数据的离散程度cv,通过参数μ构造出相应的概率分布并结合离散程度cv计算出预热函数实例数量,本实施例采用深度学习模型计算构造未来请求概率分布的相应参数μ。
[0102]
计划模块将预热函数实例数量与就绪函数实例数量进行比较,如果低于就绪函数实例数量,则发送扩容命令以及相应的数量给执行模块;如果高于就绪函数实例数量,则发送释放命令以及相应的数量给执行模块;
[0103]
执行模块根据接收的命令进行创建或者释放函数实例。
[0104]
当revision中没有就绪pod时(非活跃状态),客户请求通过网关转发到activator,然后由activator接收并缓存请求并向弹性伸缩器的监控模块报告请求量。反之,当revision处于活跃状态时,客户请求直接转发到pod的user container中,弹性伸缩器的监控模块会向queue-proxy container收集指标,分析模块利用历史数据计算请求的概率分布,再结合离散程度计算观测值(ov),计划模块计算利用ov值相应的预热pod数,执行模块根据预热pod数进行相应的伸缩操作,参见图1。
[0105]
本实施例将无服务器计算的弹性伸缩过程抽象为mape(监控、分析、计划和执行)控制循环,能够实时地调整函数实例数量以响应动态负载变化。
[0106]
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
[0107]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种无服务器计算资源弹性伸缩方法,参与对象包括用户请求、kubernetes集群及弹性伸缩器,所述kubernetes集群中部署了多个用户服务相应的函数,用户通过所述kubernetes集群提供的api或者http请求调用部署的函数,所述弹性伸缩器根据用户请求量扩缩函数实例以响应所述用户请求,其特征在于,所述弹性伸缩方法包括:步骤一:根据参与对象的用户请求、kubernetes集群及弹性伸缩器建立网络模型;步骤二:利用所述用户请求的历史数据构造未来请求的概率分布,再结合数据的离散程度计算预热函数实例数量;步骤三:根据预热函数实例数量和就绪函数实例数量,弹性伸缩器进行相应的伸缩操作。2.根据权利要求1所述的无服务器计算资源弹性伸缩方法,其特征在于,所述步骤二包括:步骤21:所述用户请求经过网关路由到kubernetes集群,集群服务响应用户请求,同时向所述弹性伸缩器的监控模块报告请求量,所述弹性伸缩器的监控模块收集并保存用户请求数据;步骤22:所述弹性伸缩器的分析模块对用户请求的历史数据进行分析,计算构造未来请求概率分布的相应参数μ和历史数据的离散程度cv,通过参数μ构造出相应的概率分布并结合离散程度cv计算出预热函数实例数量;步骤23:所述弹性伸缩器的计划模块将预热函数实例数量与就绪函数实例数量进行比较,如果低于就绪函数实例数量,则发送扩容命令以及相应的数量给执行模块,反之亦然;步骤24:弹性伸缩器的执行模块将根据接收的命令进行创建或者释放函数实例;步骤25:每个伸缩周期开始时刻重复所述步骤22-步骤25的步骤进行弹性伸缩。3.根据权利要求2所述的无服务器计算资源弹性伸缩方法,其特征在于,所述步骤22计算预热函数实例数量的方法包括:对于第i个服务,令服务i∈s,计算在t时刻构造泊松分布的参数λ,即:其中,表示在t时刻收集第i个服务的历史数据;s表示服务的集合;利用参数λ构造出未来请求的概率密度函数,即:由概率密度函数求得累积概率分布,即:再利用累积概率分布求得观测值ov,即:ov=f-1
(p)其中,p代表置信概率:p=α+(1-α)
×
tanh(cv)其中,α表示当时的置信概率;
最后结合用户设置的目标值(tv)计算最佳预热函数实例数量:其中,neworderinstances表示最佳预热函数实例数量。4.根据权利要求3所述的无服务器计算资源弹性伸缩方法,其特征在于,所述历史数据的离散程度cv的表达式为:其中,var()为方差,mean()为均值。5.根据权利要求2所述的无服务器计算资源弹性伸缩方法,其特征在于,所述步骤22采用深度学习模型来计算构造未来请求概率分布的相应参数μ。6.一种无服务器计算资源弹性伸缩系统,其特征在于,所述系统包括:kubernetes集群和弹性伸缩器;所述弹性伸缩器包括:监控模块、分析模块、计划模块和执行模块;所述kubernetes集群接收并响应用户请求,同时向所述监控模块报告请求量,所述监控模块收集并保存用户请求数据;所述分析模块对用户请求的历史数据进行分析,计算构造未来请求概率分布的相应参数μ和历史数据的离散程度cv,通过参数μ构造出相应的概率分布并结合离散程度cv计算出预热函数实例数量;所述计划模块将所述预热函数实例数量与就绪函数实例数量进行比较,如果低于就绪函数实例数量,则发送扩容命令以及相应的数量给执行模块;如果高于就绪函数实例数量,则发送释放命令以及相应的数量给执行模块;所述执行模块根据接收的命令进行创建或者释放函数实例。7.根据权利要求6所述的无服务器计算资源弹性伸缩系统,其特征在于,当revision处于非活跃状态时,客户请求通过网关转发到activator,然后由activator接收并缓存请求并向所述弹性伸缩器的监控模块报告请求量;当revision处于活跃状态时,所述客户请求直接转发到pod的user container中,所述弹性伸缩器的监控模块向queue-proxy container收集指标,所述分析模块利用历史数据计算请求的概率分布,再结合离散程度计算观测值ov,所述计划模块计算利用所述观测值ov相应的预热pod数,所述执行模块根据预热pod数进行相应的伸缩操作。8.根据权利要求6所述的无服务器计算资源弹性伸缩系统,其特征在于,所述系统将无服务器计算的弹性伸缩过程抽象为mape控制循环,实时地调整函数实例数量以响应动态负载变化。9.根据权利要求6所述的无服务器计算资源弹性伸缩系统,其特征在于,所述分析模块采用深度学习模型计算构造未来请求概率分布的相应参数μ。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据权利要求1至5中任一项所述的无服务器计算资源弹性伸缩方法。

技术总结
本发明公开了基于概率分布的无服务器计算资源弹性伸缩方法及系统,属于无服务器计算弹性伸缩技术领域。本发明在Kubernetes集群中部署了多个用户服务相应的函数,用户通过集群提供的相应API或者HTTP请求调用部署的函数,弹性伸缩器根据用户请求量扩缩函数实例以快速响应用户请求。本发明通过构造概率分布的方法计算预热函数实例数量,并结合数据的离散程度解决云环境的流量突发问题进行弹性伸缩,不仅使用户请求被及时响应,还在保证请求低延时的前提下降低了计算预热函数实例数量过程中的计算成本和时间开销;通过深度学习模型预测概率分布,可以显著降低请求响应时间,有效降低了冷启动问题对无服务器计算的影响。低了冷启动问题对无服务器计算的影响。低了冷启动问题对无服务器计算的影响。


技术研发人员:李光辉 李威
受保护的技术使用者:江南大学
技术研发日:2023.04.13
技术公布日:2023/8/4
版权声明

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

飞行汽车 https://www.autovtol.com/

分享:

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

相关推荐