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

集群中容器的监控方法、装置和计算机可读存储介质与流程

2022-08-17 16:36:35 来源:中国专利 TAG:


1.本公开涉及云计算技术领域,特别涉及一种集群中容器的监控方法、装置和计算机可读存储介质。


背景技术:

2.在当前建设云网融合,云边协同一体的云计算云承载场景中,运营商已经事实部署了多套核心-边缘的云计算集群场景,通过在核心部署控制节点和控制系统来统一管理云边的不同场景不同架构的kubernetes容器集群。根据业务和运维需要,对集群状态的监控变成一种必然和迫切的需要。prometheus作为cncf(云原生计算基金会)毕业项目,事实上已经整合进kubernetes集群中成为监控组件的实质标准,为集群内部指标监控提供全面的指标采集和汇聚。
3.目前运营商业务平台场景面临多服务高峰值访问,高可靠性的要求,服务的部署方式具有多边缘,多个集群,裸机虚机混合的情况。集群中容器出现问题,例如,容器自动拉起出现的响应卡顿不及时、容器不可达等问题,可通过prometheus监控组件进行告警,进而利用集群容灾机制,通常采用删除节点进行重启的方法。


技术实现要素:

4.发明人发现:在多集群场景中,不同架构集群指标不具有普遍性,通过统一的异常判别标准,难以准确对异常情况进行识别。容器出现问题集群自动重启容器会造成信息丢失,无法对容器的异常情况进行准确分析。
5.本公开所要解决的一个技术问题是:如何提高容器的异常情况确定的准确性。
6.根据本公开的一些实施例,提供的一种集群中容器的监控方法,包括:响应于集群中服务节点和容器的相关指标变化,获取产生变化的指标;将产生变化的指标和集群的状态树进行比对,并确定集群中是否存在状态改变为异常状态的容器,其中,状态树中包括集群中每个服务节点下每个容器的状态和状态的采集时刻;在集群中存在状态改变为异常状态的容器的情况下,更新状态树,并提取容器的标识、异常状态的采集时刻;根据容器的标识获取异常状态的采集时刻容器的参数,以及异常状态的采集时刻之前预设历史时间段内各个历史时刻容器的参数,组成时序数据;根据时序数据,确定容器是否异常以及异常类型。
7.在一些实施例中,获取集群中服务节点和容器的相关指标中产生变化的指标包括:接收prometheus监控组件的告警信息;根据告警信息确定产生变化的指标。
8.在一些实施例中,将产生变化的指标和集群的状态树进行比对包括:根据产生变化的指标的属性,在集群的状态树中查找与产生变化的指标对应的树节点;将产生变化的指标的值与对应的树节点的值进行比对,确定是否存在差别。
9.在一些实施例中,确定集群中是否存在状态改变为异常状态的容器包括:在产生变化的指标的值与对应的树节点的值存在差别的情况下,将产生变化的指标的值与预设异
常判断条件进行对比,确定产生变化的指标相关的容器的状态是否改变为异常状态。
10.在一些实施例中,根据容器的标识获取异常状态的采集时刻容器的参数,以及异常状态的采集时刻之前预设历史时间段内各个历史时刻容器的参数包括:根据容器的标识从prometheus监控组件对集群的全部参数进行采集后生成的参数库中查找异常状态的采集时刻容器的参数,以及异常状态的采集时刻之前预设历史时间段内各个历史时刻容器的参数。
11.在一些实施例中,该方法还包括:遍历集群中各个服务节点和各个容器,获取各个服务节点的标识、各个容器的标识以及各个容器的状态;根据各个服务节点的标识、各个容器的标识以及各个容器的状态和状态的采集时刻构建状态树。
12.在一些实施例中,根据各个服务节点的标识、各个容器的标识以及各个容器的状态和状态的采集时刻构建状态树包括:根据集群的标识生成表示集群的根节点;根据各个服务节点的标识生表示各个服务节点的树节点,并作为根节点的子节点;针对每个服务节点,根据该服务节点下的各个容器的标识生成表示各个容器的树节点,并作为该服务节点对应的树节点的子节点;针对每个容器,根据该容器的状态和状态的采集时刻生成该容器对应的树节点的子节点。
13.在一些实施例中,根据时序数据,确定容器是否异常以及异常类型包括:将时序数据输入预先训练的机器学习模型,得到输出的容器是否异常的结果以及异常类型。
14.在一些实施例中,该方法还包括:将容器的标识、异常状态、异常类型和异常状态的采集时刻进行关联存储。
15.在一些实施例中,容器的参数包括:容器的cpu占用量、内存的占用量、磁盘的写入速度、应用程序接口api的吞吐率中至少一项。
16.根据本公开的另一些实施例,提供的一种集群中容器的监控装置,包括:
17.指标获取模块,用于响应于集群中服务节点和容器的相关指标变化,获取产生变化的指标;比对模块,用于将产生变化的指标和集群的状态树进行比对,并确定集群中是否存在状态改变为异常状态的容器,其中,状态树中包括集群中每个服务节点下每个容器的状态和状态的采集时刻;更新模块,用于在集群中存在状态改变为异常状态的容器的情况下,更新状态树,并提取容器的标识、异常状态的采集时刻;参数获取模块,用于根据容器的标识获取异常状态的采集时刻容器的参数,以及异常状态的采集时刻之前预设历史时间段内各个历史时刻容器的参数,组成时序数据;确定模块,用于根据时序数据,确定容器是否异常以及异常类型。
18.根据本公开的又一些实施例,提供的一种集群中容器的监控装置,包括:处理器;以及耦接至处理器的存储器,用于存储指令,指令被处理器执行时,使处理器执行如前述任意实施例的集群中容器的监控方法。
19.根据本公开的再一些实施例,提供的一种瞬时性计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例的集群中容器的监控方法。
20.本公开的方法中在多集群的场景中可以针对每个集群建立状态树,当获取到产生变化的指标的情况下,将产生变化的指标和集群的状态树进行比对,并确定集群中是否存在状态改变为异常状态的容器,如果存在,则更新状态树并获取该容器异常状态的采集时
刻以及之前预设历史时间段内各个历史时刻该容器的参数,组成时序数据,进而根据时序数据确定容器是否异常以及异常类型。由于每个集群通过状态树进行表示,并动态进行状态树的更新,可以针对每个集群独立进行容器异常情况的判断,并且针对异常状态的容器结合一段历史时间内的时序数据进行分析,提高了容器异常情况的确定的准确性。一旦服务节点和容器的相关指标变化即可根据本公开的方法快速定位异常状态的容器并获取相关参数,进行异常情况的识别,避免容器重启导致数据的丢失,提高容器异常情况确定的准确性。
21.通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
22.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1示出本公开的一些实施例的集群中容器的监控方法的流程示意图。
24.图2示出本公开的一些实施例的集群的状态树的示意图。
25.图3示出本公开的另一些实施例的集群中容器的监控方法的流程示意图。
26.图4示出本公开的又一些实施例的集群中容器的监控方法的流程示意图。
27.图5示出本公开的一些实施例的集群中容器的监控装置的结构示意图。
28.图6示出本公开的另一些实施例的集群中容器的监控装置的结构示意图。
29.图7示出本公开的又一些实施例的集群中容器的监控装置的结构示意图。
具体实施方式
30.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
31.本公开提出一种集群中容器的监控方法,下面结合图1~4进行描述。
32.图1为本公开集群中容器的监控方法一些实施例的流程图。如图1所示,该实施例的方法包括:步骤s102~s110。
33.在步骤s102中,响应于集群中服务节点和容器的相关指标变化,获取产生变化的指标。
34.每个集群中包括多个服务节点(node),每个服务节点上可以部署一个或多个容器组(pod),每个容器组可以包括一个或多个容器(container)。在一些实施例中,接收prometheus监控组件的告警信息,根据告警信息确定产生变化的指标。可以根据实际需要监控的信息设置prometheus中的告警条件,在达到告警条件的情况下,prometheus发出告警信息。例如,在容器连接不上的情况下,在容器迁移的情况下,在删除节点的情况下等,
prometheus发出告警信息。
35.服务节点和容器的相关指标包括但不限于:服务节点的数量(node_sum)、容器的数量(container_sum)、服务节点的状态(node_status)、容器的状态(container_status)中至少一项。根据告警信息可以确定产生变化的指标,以及指标的值。例如,在容器连接不上的情况下,根据prometheus发出的告警信息确定产生变化的指标为容器的状态,指标的值为不健康状态。
36.在步骤s104中,将产生变化的指标和集群的状态树进行比对,并确定集群中是否存在状态改变为异常状态的容器。
37.集群的状态树中包括集群中每个服务节点下每个容器的状态和状态的采集时刻。如图2所示,状态树的根节点表示集群,根节点的值可以设置为集群的标识,根节点的子节点表示各个服务节点,根节点的每个子节点的值可以设置为对应的服务节点的标识,每个服务节点对应的树节点的子节点为该服务节点部署的各个容器对应树节点,每个容器对应的树节点的值可以设置为该容器的标识。每个容器对应的树节点(叶子节点)的值包括该容器的状态和状态的采集时刻。
38.在一些实施例中,根据产生变化的指标的属性,在集群的状态树中查找与产生变化的指标对应的树节点;将产生变化的指标的值与对应的树节点的值进行比对,确定是否存在差别。例如,指标的属性包括指标所属对象的标识(服务节点的标识或容器的标识)。例如,产生变化的指标为容器的状态,指标的值为不健康状态的情况下,在状态树中查找产生变化的指标对应的容器的树节点,并将树节点中容器的状态与指标的值进行对比,确定是否存在差别。
39.在一些实施例中,在产生变化的指标的值与对应的树节点的值存在差别的情况下,将产生变化的指标的值与预设异常判断条件进行对比,确定产生变化的指标相关的容器的状态是否改变为异常状态。例如,指标的值为不健康状态而状态树中容器的状态为正常,则存在差别,进而判断不健康状态是否为预设异常状态(预设异常判断条件例如包括预设异常状态)。又例如,产生变化的指标的值为服务节点重启,而服务节点重启符合预设异常判断条件,则确定服务节点相关的容器的状态改变为异常状态。
40.容器的状态例如包括健康、正常、重启、暂停、删除中、非健康等状态,不限于所举示例。例如,重启、删除中、非健康属于预设异常状态,而健康、正常、暂停不属于预设异常状态。
41.在步骤s106中,在集群中存在状态改变为异常状态的容器的情况下,更新状态树,并提取容器的标识、异常状态的采集时刻。
42.在更新状态树时只需要根据产生变化的指标更新对应的树节点,不需要重新生成状态树,提高处理效率。在集群中不存在状态改变为异常状态的容器的情况下,不需要更新状态树。
43.除了集群中存在状态改变为异常状态的容器的情况需要更新状态树,还有其他情况可以更新状态树。在一些实施例中,在产生变化的指标的值与对应的树节点的值存在差别的情况下,将产生变化的指标的值与预设更新条件进行对比,如果满足预设更新条件,则更新状态树。例如,产生变化的指标的值为新增一个服务节点或者新增一个容器等,满足预设更新条件,则更新状态树。预设更新条件可以根据实际状态树中树节点的变化情况进行
设置。
44.集群中存在状态改变为异常状态的容器的情况下,更新状态树后可以抛出容器的标识、异常状态的采集时刻,还可以抛出容器的异常状态。这些数据可以以列表的形式进行存储,以便后续应用。容器的标识可以唯一标识一个容器,例如可以通过集群id,服务节点id和容器id对容器进行唯一标识,则容器的标识可以包括集群id,服务节点id和容器id,不限于所举示例。
45.在步骤s108中,根据容器的标识获取异常状态的采集时刻容器的参数,以及异常状态的采集时刻之前预设历史时间段内各个历史时刻容器的参数,组成时序数据。
46.在一些实施例中,根据容器的标识从prometheus监控组件对集群的全部参数进行采集后生成的参数库中查找异常状态的采集时刻容器的参数,以及异常状态的采集时刻之前预设历史时间段内各个历史时刻容器的参数。预设历史时间段例如为异常状态的采集时刻之前一小时、10分钟等,不限于所举示例。从prometheus下遍历容器的标识可查询到的全部参数,根据异常状态的采集时刻和预设历史时间段进行切分,得到异常状态的采集时刻以及异常状态的采集时刻之前预设历史时间段内各个历史时刻容器的参数,可以输出到s3存储。
47.容器的参数例如包括:容器的cpu占用量、内存的占用量、磁盘的写入速度、应用程序接口api的吞吐率中至少一项。
48.在步骤s110中,根据时序数据,确定容器是否异常以及异常类型。
49.在一些实施例中,将时序数据输入预先训练的机器学习模型,得到输出的容器是否异常的结果以及异常类型。可以从s3中导出异常状态的采集时刻以及异常状态的采集时刻之前预设历史时间段内各个历史时刻容器的参数输入到机器学习模型。机器学习模型例如为vae(变分自编码器)。异常类型例如为磁盘阻塞、cpu占用率高等,可以在模型训练时根据实际需求设置异常类型,不限于所举示例。机器学习模型输出的结果为数值,可以进行语义化处理,转换为可读文本。例如,机器学习模型输出的结果进行处理后为api,异常值0.45,异常区间2021-10-27-19-48-4430~2021-10-27-19-50-8700,即容器的api异常,异常区间表示异常的时间段。
50.在一些实施例中,将容器的标识、异常状态、异常类型和异常状态的采集时刻进行关联存储,还可以将机器学习模型输出的异常值、异常区间等数据进行关联存储。
51.上述实施例的方法中在多集群的场景中可以针对每个集群建立状态树,当获取到产生变化的指标的情况下,将产生变化的指标和集群的状态树进行比对,并确定集群中是否存在状态改变为异常状态的容器,如果存在,则更新状态树并获取该容器异常状态的采集时刻以及之前预设历史时间段内各个历史时刻该容器的参数,组成时序数据,进而根据时序数据确定容器是否异常以及异常类型。由于每个集群通过状态树进行表示,并动态进行状态树的更新,可以针对每个集群独立进行容器异常情况的判断,并且针对异常状态的容器结合一段历史时间内的时序数据进行分析,提高了容器异常情况的确定的准确性。一旦服务节点和容器的相关指标变化即可根据上述实施例的方法快速定位异常状态的容器并获取相关参数,进行异常情况的识别,避免容器重启导致数据的丢失,提高容器异常情况的确定的准确性。
52.下面结合图3描述本公开集群中容器的监控方法的另一些实施例。
53.图3为本公开集群中容器的监控方法另一些实施例的流程图。如图3所示,在步骤s102之前包括:步骤s302~s304。
54.在步骤s302中,遍历集群中各个服务节点和各个容器,获取各个服务节点的标识、各个容器的标识以及各个容器的状态。
55.在步骤s304中,根据各个服务节点的标识、各个容器的标识以及各个容器的状态和状态的采集时刻构建状态树。
56.例如可以对齐prometheus的数据接口获取集群中服务节点的数量和容器的数量,根据服务节点的数量和容器的数量遍历集群中全部服务节点和容器构建状态树。例如,根据集群的标识生成表示集群的根节点;根据各个服务节点的标识生表示各个服务节点的树节点,并作为根节点的子节点;针对每个服务节点,根据该服务节点下的各个容器的标识生成表示各个容器的树节点,并作为该服务节点对应的树节点的子节点;针对每个容器,根据该容器的状态和状态的采集时刻生成该容器对应的树节点的子节点,状态树如图2所示。
57.下面结合图4描述本公开的集群中容器的监控方法的一些应用例。
58.图4为本公开集群中容器的监控方法又一些实施例的流程图。如图4所示,该实施例的方法包括:步骤s402~s418。
59.在步骤s402中,从prometheus采集产生变化的指标。
60.在步骤s404中,将产生变化的指标和集群的状态树进行比对。
61.在步骤s406中,将产生变化的指标的值与预设异常判断条件进行对比,如果符合预设异常判断条件,则执行步骤s408,否则执行步骤s409。
62.在步骤s408中,更新状态树。
63.在步骤s409中,不更新状态树,返回步骤s402。
64.在步骤s410中,抛出状态改变为异常状态的容器的标识、异常状态的采集时刻。
65.在步骤s412中,根据容器的标识从参数库中查找异常状态的采集时刻容器的参数,以及异常状态的采集时刻之前预设历史时间段内各个历史时刻容器的参数。
66.在步骤s414中,将异常状态的采集时刻容器的参数,以及异常状态的采集时刻之前预设历史时间段内各个历史时刻容器的参数输入机器学习模型。
67.在步骤s416中,确定容器是否异常以及异常类型并进行存储。
68.在步骤s418中,将异常状态的采集时刻容器的参数,以及异常状态的采集时刻之前预设历史时间段内各个历史时刻容器的参数进行存储。
69.还可以对容器的异常状态等相关数据进行存储。
70.本公开的方案对联邦集群的下属服务节点和容器进行树形拓扑建模,生成状态树,跟踪状态树的动态变化;根据状态树中的异常状态对prometheus相关监控参数进行标记,并导入机器学习模型识别容器的异常情况。本公开的方案可以跟踪集群拓扑动态,定位和抛出异常容器或节点位置,对异常定位异常处理形成有效支撑。对无法继续采集数据的异常容器提供了时间定位机制,追溯过往数据进行处理分析,主动筛选时序数据,并对全部可采集的数据进行处理,定位发生异常的时间和异常类型等。高性能的状态树更新机制,局部更新降低计算损耗,o(1)复杂度。本公开的方案可以针对多容器集群的运维提供支撑,对容器级精度的精细追踪,海量应用下统一管控和感知异常提供定位能力。可以建立异常状态库,对现有异常的发生情况进行保存,以便后续智能化运维对数据进行后续挖掘和分析。
对数据中心智能化运维场景,提供了集群级的故障发生库,可以不断更新,在流处理领域通过实时比对数据,对现有集群场景容灾提供实时预测能力。
71.本公开的方案应用于多容器集群管理云平台,对物理网卡映射虚拟网卡的网元业务进行监控,及时定位网元应用故障并可复现问题,是集群的性能得到较大提升。
72.本公开还提供一种集群中容器的监控装置,下面结合图5进行描述。
73.图5为本公开集群中容器的监控装置的一些实施例的结构图。如图5所示,该实施例的装置50包括:指标获取模块510,比对模块520,更新模块530,参数获取模块540,确定模块550。
74.指标获取模块510用于响应于集群中服务节点和容器的相关指标变化,获取产生变化的指标。
75.在一些实施例中,指标获取模块510用于接收prometheus监控组件的告警信息;根据告警信息确定产生变化的指标。
76.比对模块520用于将产生变化的指标和集群的状态树进行比对,并确定集群中是否存在状态改变为异常状态的容器,其中,状态树中包括集群中每个服务节点下每个容器的状态和状态的采集时刻。
77.在一些实施例中,比对模块520用于根据产生变化的指标的属性,在集群的状态树中查找与产生变化的指标对应的树节点;将产生变化的指标的值与对应的树节点的值进行比对,确定是否存在差别。
78.在一些实施例中,比对模块520用于在产生变化的指标的值与对应的树节点的值存在差别的情况下,将产生变化的指标的值与预设异常判断条件进行对比,确定产生变化的指标相关的容器的状态是否改变为异常状态。
79.更新模块530用于在集群中存在状态改变为异常状态的容器的情况下,更新状态树,并提取容器的标识、异常状态的采集时刻。
80.参数获取模块540用于根据容器的标识获取异常状态的采集时刻容器的参数,以及异常状态的采集时刻之前预设历史时间段内各个历史时刻容器的参数,组成时序数据。
81.在一些实施例中,参数获取模块540用于根据容器的标识从prometheus监控组件对集群的全部参数进行采集后生成的参数库中查找异常状态的采集时刻容器的参数,以及异常状态的采集时刻之前预设历史时间段内各个历史时刻容器的参数。
82.确定模块550用于根据时序数据,确定容器是否异常以及异常类型。
83.在一些实施例中,确定模块550用于将时序数据输入预先训练的机器学习模型,得到输出的容器是否异常的结果以及异常类型。
84.在一些实施例中,容器的参数包括:容器的cpu占用量、内存的占用量、磁盘的写入速度、应用程序接口api的吞吐率中至少一项。
85.在一些实施例中,该装置50还包括:构建模块560,用于遍历集群中各个服务节点和各个容器,获取各个服务节点的标识、各个容器的标识以及各个容器的状态;根据各个服务节点的标识、各个容器的标识以及各个容器的状态和状态的采集时刻构建状态树。
86.在一些实施例中,构建模块560用于根据集群的标识生成表示集群的根节点;根据各个服务节点的标识生表示各个服务节点的树节点,并作为根节点的子节点;针对每个服务节点,根据该服务节点下的各个容器的标识生成表示各个容器的树节点,并作为该服务
节点对应的树节点的子节点;针对每个容器,根据该容器的状态和状态的采集时刻生成该容器对应的树节点的子节点。
87.在一些实施例中,该装置50还包括:存储模块570,用于将容器的标识、异常状态、异常类型和异常状态的采集时刻进行关联存储。
88.本公开的实施例中的集群中容器的监控装置可各由各种计算设备或计算机系统来实现,下面结合图6以及图5进行描述。
89.图6为本公开集群中容器的监控装置的一些实施例的结构图。如图6所示,该实施例的装置60包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行本公开中任意一些实施例中的集群中容器的监控方法。
90.其中,存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(boot loader)、数据库以及其他程序等。
91.图7为本公开集群中容器的监控装置的另一些实施例的结构图。如图7所示,该实施例的装置70包括:存储器710以及处理器720,分别与存储器610以及处理器620类似。还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730,740,750以及存储器710和处理器720之间例如可以通过总线760连接。其中,输入输出接口730为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口750为sd卡、u盘等外置存储设备提供连接接口。
92.本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
93.本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
94.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
95.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
96.以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和
原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
再多了解一些

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

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

相关文献