首页> 中国专利> 云服务器的升级方法、升级设备及云服务器

云服务器的升级方法、升级设备及云服务器

摘要

本公开提供一种云服务器的升级方法、升级设备及云服务器,涉及计算机技术领域,能够解决在升级包较大或者网络条件较差时升级时间较长的问题。具体技术方案为:获取升级文件;对升级文件进行模块划分和标记,得到升级数据包,升级数据包包括:升级控制模块和至少一个功能模块;将升级数据包中的所有模块进行优先级排序,升级控制模块的优先级最高;将按照优先级排序的模块依次发送给升级端,以便升级端在接收完成升级控制模块时启动升级,并根据接收到的功能模块的优先级顺序逐一进行升级。本发明用于云服务器的升级。

著录项

  • 公开/公告号CN113238780A

    专利类型发明专利

  • 公开/公告日2021-08-10

    原文格式PDF

  • 申请/专利权人 西安万像电子科技有限公司;

    申请/专利号CN202110570880.6

  • 发明设计人 李帅明;

    申请日2021-05-25

  • 分类号G06F8/65(20180101);

  • 代理机构11265 北京挺立专利事务所(普通合伙);

  • 代理人彭豆

  • 地址 710075 陕西省西安市高新区唐延南路8号3G智能终端产业园4号厂房3层302室

  • 入库时间 2023-06-19 12:10:19

说明书

技术领域

本公开涉及计算机技术领域,尤其涉及一种云服务器的升级方法、升级设备及云服务器。

背景技术

桌面虚拟化(Virtual Desktop Infrastructure,VDI)是指将计算机的终端系统(也称作桌面)进行虚拟化,已达到桌面使用的安全性和灵活性,用户可通过任何设备,在任何地点、任何时间通过网络访问属于个人的桌面系统。而随着云计算的发展和成熟,云桌面的使用场景越来越广泛,高校、医疗、政府等多个行业开始渐渐普及云桌面办公,使用云桌面办公已成为一个整体趋势。

为了提高算力,需要对服务器端的版本进行升级。在现有的升级方案中,需要将升级包进行批量下发给服务器端,在服务器端完全接收所有升级包文件后再远程启动升级,但是,当升级包较大或者网络条件较差时,必须等待升级包完全接收才能启动升级,从而导致升级时间边长,影响效率。

发明内容

本公开实施例提供一种云服务器的升级方法、升级设备及云服务器,能够解决在升级包较大或者网络条件较差时升级时间较长的问题。所述技术方案如下:

根据本公开实施例的第一方面,提供一种云服务器的升级方法,该方法包括:

获取升级文件;

对升级文件进行模块划分和标记,得到升级数据包,升级数据包包括:升级控制模块和至少一个功能模块;

将升级数据包中的所有模块进行优先级排序,升级控制模块的优先级最高;

将按照优先级排序的模块依次发送给升级端,以便升级端在接收完成升级控制模块时启动升级,并根据接收到的功能模块的优先级顺序逐一进行升级。

通过将升级文件以数据流的方式传输到升级端,升级端不需要完全接收所有升级文件再启动升级,而是一边接收一边升级,从而解决了在升级包较大或者网络条件较差时升级时间较长的问题,节约升级时间,提高效率。

在一个实施例中,对升级文件进行模块划分和标记,得到升级数据包包括:

对升级文件按照业务功能进行模块划分和标记,得到升级数据包。

在一个实施例中,将升级数据包中的所有模块进行优先级排序包括:

在升级数据包包括多个功能模块时,检测多个功能模块中两两功能模块之间是否存在依赖关系;

在存在依赖关系时,根据依赖关系将升级数据包中的所有模块进行优先级排序,其中,被依赖的功能模块的优先级较高。

在一个实施例中,该方法还包括:在不存在依赖关系时,按照预设规则将升级数据包中的所有模块进行优先级排序。

在一个实施例中,该方法还包括:接收升级端反馈的升级状态,升级状态用于指示升级端在升级过程中的实时状态。

在一个实施例中,该方法还包括:在升级状态指示升级失败时,根据升级状态进行相应的处理,相应的处理包括以下情况中的至少一个:重新下发数据升级包、处理升级失败问题、检查网络状况、环境回滚。

根据本公开实施例的第二方面,提供一种云服务器的升级方法,该方法包括:

接收代理服务器发送的升级数据包中的升级控制模块,并在接收完成时启动升级,升级数据包包括按照优先级排序的升级控制模块和至少一个功能模块,升级控制模块的优先级最高;

接收代理服务器按照优先级顺序依次发送的升级数据包中的至少一个功能模块,并根据接收到的功能模块的优先级顺序逐一进行升级。

在一个实施例中,该方法还包括:发送升级状态给代理服务器,升级状态用于指示升级端在升级过程中的实时状态。

根据本公开实施例的第三方面,提供一种升级设备,升级设备包括处理器和存储器,存储器中存储有至少一条计算机指令,指令由处理器加载并执行以实现第一方面以及第一方面的任一实施例所描述的云服务器的升级方法中所执行的步骤。

根据本公开实施例的第四方面,提供一种云服务器,云服务器包括处理器和存储器,存储器中存储有至少一条计算机指令,指令由处理器加载并执行以实现第一方面以及第一方面的任一实施例所描述的云服务器的升级方法中所执行的步骤。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开实施例提供的一种云服务器的升级方法的流程图;

图2是本公开实施例提供的一种云服务器的升级方法的流程图;

图3是本公开实施例提供的一种云服务器的升级系统的结构图;

图4是本公开实施例提供的一种升级设备的结构图;

图5是本公开实施例提供的一种升级设备的结构图;

图6是本公开实施例提供的一种升级设备的结构图;

图7是本公开实施例提供的一种云服务器的结构图;

图8是本公开实施例提供的一种云服务器的结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本公开实施例提供一种云服务器的升级方法,如图1所示,该云服务器的升级方法包括以下步骤:

101、获取升级文件。

在本公开实施例中,升级文件由服务器厂商、软件厂商等供应商提供,在需要进行升级时,若客户端与云服务器直接进行交互,则各个厂商可以直接将升级文件发送给云服务器,也可以先发送是否升级的询问信息给客户端,在用户同意升级时再将升级文件发送给云服务器。或者,在客户端与云服务器通过代理服务器转发二者之间的所有请求和响应的系统时,则各个厂商可以通过代理服务器将升级文件发送给云服务器,也可以先发送是否升级的询问信息给客户端,在用户同意升级时再将升级文件通过代理服务器发送给云服务器。

102、对升级文件进行模块划分和标记,得到升级数据包。

其中,升级数据包包括升级控制模块和至少一个功能模块,升级控制模块为一种升级程序,该升级程序用于执行整个升级的过程。

在本公开实施例中,可对升级文件按照业务功能进行模块划分和标记,得到升级数据包。示例性的,对升级文件划分后的升级数据包包括:升级控制模块、模块A、模块B、模块C。

103、将升级数据包中的所有模块进行优先级排序,升级控制模块的优先级最高。

在本公开实施例中,升级控制模块为最高优先级,其它模块的优先级需要根据实际需要确定,下面列举几个示例进行具体说明。

在一个示例中,当升级数据包中仅包括升级控制模块和一个功能模块时,由于升级控制模块为最高优先级,则排序结果为升级控制模块、功能模块。

在一个示例中,当升级数据包中包括升级控制模块和多个功能模块时,将升级数据包中的所有模块进行优先级排序包括:检测多个功能模块中两两功能模块之间是否存在依赖关系;在存在依赖关系时,根据依赖关系将升级数据包中的所有模块进行优先级排序,其中,被依赖的功能模块的优先级较高。示例性的,要升级模块A,必须先将模块B升级后再处理,那么模块B的优先级就高于模块A。又示例性的,若多个功能模块中部分功能模块两两之间存在依赖关系,其余功能模块两两之间不存在依赖关系;

若不存在依赖关系时,则按照预设规则将升级数据包中的所有模块进行优先级排序。具体的,在多个功能模块中两两功能模块之间不存在依赖关系,则意味着多个功能模块相互之间均无依赖关系,属于相互独立的多个功能模块,则可以按照预设规则设置优先级顺序。

根据以上描述,若多个功能模块中部分功能模块两两之间存在依赖关系,其余功能模块两两之间不存在依赖关系,则在排序时,可以将存在依赖关系的功能模块优先于不存在依赖关系的功能模块进行排序,那么,得到的排序结果为:升级控制模块、存在依赖关系的功能模块、不存在依赖关系的功能模块,对于不存在依赖关系的功能模块可以按照预设规则设置优先级顺序。

104、将按照优先级排序的模块依次发送给升级端,以便升级端在接收完成升级控制模块时启动升级,并根据接收到的功能模块的优先级顺序逐一进行升级。

在本公开实施例中,优先级的高低决定了相应模块的下发顺序,一般情况下,优先级高的模块会优先下发。当升级端将优先级最高的升级控制模块接收完成时,立即启动升级,同时,等待下一个模块接收完成时启动该模块升级,即逐个接收各个功能模块,并按照根据接收到的功能模块的优先级顺序逐一进行升级。

需要说明的是,对于步骤101~104中所描述的技术方案的执行主体,可以是供应商服务器,也可以是代理服务器。若执行主体为供应商服务器,则可以将升级数据包中按照优先级排序的模块依次直接发送给升级端,也可以将升级数据包中按照优先级排序的模块通过代理服务器依次发送给升级端。若执行主体为代理服务器,则将按照优先级排序的模块依次直接发送给升级端。

在本公开的一个实施例中,升级端在升级过程中将其升级状态实时反馈给代理服务器,代理服务器接收升级端反馈的升级状态,其中,升级状态用于指示升级端在升级过程中的实时状态。在升级状态指示升级失败时,根据升级状态进行相应的处理,相应的处理包括以下情况中的至少一个:重新下发数据升级包、处理升级失败问题、检查网络状况、环境回滚。

本公开实施例提供的云服务器的升级方法,获取升级文件;对升级文件按照业务功能进行模块划分和标记,得到升级数据包,升级数据包包括:升级控制模块和至少一个功能模块;将升级数据包中的所有模块进行优先级排序,升级控制模块的优先级最高;将按照优先级排序的模块依次发送给升级端,以便升级端在接收到升级控制模块时启动升级,并根据接收到的功能模块的优先级顺序逐一进行升级。本公开实施例将升级文件以数据流的方式传输到升级端,升级端不需要完全接收所有升级文件再启动升级,而是一边接收一边升级,从而解决了在升级包较大或者网络条件较差时升级时间较长的问题,节约升级时间,提高效率。

本公开实施例提供一种云服务器的升级方法,如图2所示,该云服务器的升级方法包括以下步骤:

201、接收代理服务器发送的升级数据包中的升级控制模块,并在接收完成时启动升级。

其中,升级数据包包括升级控制模块和至少一个功能模块,且升级数据包中的所有模块按照优先级进行排序,升级控制模块的优先级最高。优先级的高低决定了相应模块的下发顺序,因此,优先级最高的升级控制模块优先发送给云服务器;当优先级最高的升级控制模块接收完成后,立即启动升级。

202、接收代理服务器按照优先级顺序依次发送的升级数据包中的至少一个功能模块,并根据接收到的功能模块的优先级顺序逐一进行升级。

在本公开实施例中,代理服务器将升级数据包中按照优先级排序的至少一个功能模块依次发送给云服务器,云服务器逐个接收各个功能模块,并基于接收到的功能模块完成升级。

在本公开实施例中,整个升级过程都是全自动的,升级过程主要分为升级前环境检查(这一步的目的是为了排除可能导致升级失败的因素)、数据备份、升级、升级后环境检查(可靠性测试)。具体的,当升级数据包中的升级控制模块接收完成后,启动升级(升级第一步骤为备份之前的数据或环境);一般升级有两种方式,第一种是卸载再安装;另一种是增量升级,不需要卸载,只修改版本更新的部分;这两种方式整个升级操作都是由升级程序自动完成,实现也比较简单,根据业务关联,对产品进行逐一升级即可;发送升级包模块的优先级也是参照业务关联的,所以是接收一个模块升级一个模块,如果网络稳定接收快,就存起来,等上一个模块升级完成再启动这个模块升级;如果网络很差,就等完全接收再启动该模块升级,即按照接收到的功能模块的优先级顺序进行逐一升级。

进一步的,该方法还包括:发送升级状态给代理服务器,升级状态用于指示升级端在升级过程中的实时状态。在升级状态指示升级失败时,代理服务器根据升级状态进行相应的处理,相应的处理包括以下情况中的至少一个:重新下发数据升级包、处理升级失败问题、检查网络状况、环境回滚。

本公开实施例提供的云服务器的升级方法,接收代理服务器发送的升级数据包中的升级控制模块,并在接收完成时启动升级;接收代理服务器按照优先级顺序依次发送的升级数据包中的至少一个功能模块,并根据接收到的功能模块的优先级顺序逐一进行升级。本公开实施例将升级文件以数据流的方式传输到升级端,升级端不需要完全接收所有升级文件再启动升级,而是一边接收一边升级,从而解决了在升级包较大或者网络条件较差时升级时间较长的问题,节约升级时间,提高效率。

基于上述图1对应的实施例提供的云服务器的升级方法,本公开另一实施例提供一种云服务器的升级方法,该方法可以应用于图3所示的云服务器的升级系统,该云服务器的升级系统包括:零终端、代理服务器、至少一个集群服务器,每个集群服务器包括多个主机,每个主机中运行有至少一个虚拟机,代理服务器与多个集群服务器处于同一个组网当中,用户可通过其使用的零终端连接至代理服务器。如图3所示,代理服务器为broker服务器,至少一个集群服务器包括N个集群服务器,分别用集群A、集群B、……、集群N表示,集群A包括3个主机,分别用主机A(host A)、主机B(host B)和主机C(host C)表示,集群B包括N个主机,分别用主机1(host1)、主机2(host 2)、……、主机N(host N)表示,主机A中运行有N个虚拟机(VM),分别用VM1、VM2、VM3、……、VMn表示,图3仅为示例性说明。

其中,图3所示的系统是基于在某些情况下,不希望客户端与服务器之间进行直接通信而提出的。例如,由于安全原因,用户可能希望将所有服务器放在位于防火墙后面的公司专用网络中,并且只允许代理程序访问它们。这种情况下,用户必须让代理服务器转发服务器和客户端这二者之间的所有请求和响应,而不是让它们直接相互通信。broker服务器(代理服务器)解耦客户端和服务端。服务端注册自己到broker,通过暴露接口的方式允许客户端接入服务,服务器端不必公开任何信息和数据,将添加客户端和服务器代理,以处理通过网络将方法调用及其参数发送到服务器,然后将响应发回客户端的所有传送工作。代理将完成所有数据封送和拆收、安全控制、传输通道配置和任何其他附加工作。客户端是通过broker发送请求的,broker转发请求到服务端,并将请求的结果或异常回发给客户端。通过使用broker服务器,应用可以通过发送消息访问远程的服务。用户在使用云桌面时,通过零终端访问broker服务器,由broker服务器中转连接请求和服务器集群信息,将虚拟桌面返回给零终端,以供用户使用。这种方式在广域网更为适用。

参照图3所示,broker服务器的升级功能,作用是针对服务器端版本做一个远程升级,现有升级过程的主要处理步骤如下:当需要对服务器端版本进行升级时,通过代理服务器,将升级包下发到每个集群服务器;然后,向集群服务器下发升级指令,由集群服务器执行升级指令,具体的,集群服务器根据接收到的升级包针对每一个虚拟机进行升级。

本公开实施例主要针对上述升级包的下发和升级步骤进行了改进,以数据流的形式进行升级包的下发,并基于数据流进行升级处理。

具体的,融入数据流概念后,本公开实施例优化如下:

1)数据包的生成:将数据包按照业务功能划分为不同模块,并进行标记;每一个数据包会被划分为:升级控制模块(一种升级程序)和多个不同的功能模块;其中,升级程序用于执行整个升级的全过程。例如,可以将也数据包划分为:升级控制模块、模块A、模块B、模块C等;

2)制定数据包模块优先级,其中升级程序为最高优先级;

具体的,本发明中,升级程序为最高优先级,其它模块的优先级需要根据实际需要确定:一般有依赖关系的两个功能模块之间,被依赖的功能模块的优先级较高,比如,要升级模块A,必须先将模块B升级后再处理,那么模块B的优先级就高于模块A;如果是相互独立的多个模块(相互之间均无依赖关系)则可以按照预设规则设置优先级顺序。

优先级的高低决定了相应模块的下发顺序,一般,优先级高的模块会优先下发。

3)通过代理服务器,将组成数据包的各功能模块按优先级下发至升级端。

也就是,下发给相应的集群服务器。

4)当最高优先级的升级控制模块接收完成后,立即启动升级(升级第一步骤为备份之前的数据或环境),同时,等待下一个模块接收完成。

5)逐个接收各个模块并基于接收到的模块完成升级。

当升级包中的升级程序接收完成后,启动升级;(这里对升级过程进行简单描述:升级过程主要分为升级前环境检查(整个升级过程都是全自动的,这一步的目的是为了排除可能导致升级失败的因素)、数据备份、升级、升级后环境检查(可靠性测试)。

一般升级有两种方式,第一种是卸载再安装;另一种是增量升级,不需要卸载,只修改版本更新的部分;这两种方式整个升级操作都是由升级程序自动完成,实现也比较简单,根据业务关联,对产品进行逐一升级即可;发送升级包模块的优先级也是参照业务关联的,所以是接收一个模块升级一个模块,如果网络稳定接收快,就存起来,等上一个模块升级完成再启动这个模块升级;如果网络很差,就等完全接收再启动该模块升级。

具体的,按照接收到的功能模块的优先级顺序进行逐一升级。

6)向代理服务器反馈升级结果。

具体的,升级过程将当前状态实时传输给代理服务器。代理服务器监控整个流程的升级状态,包括升级包下发成功与否、当前状态是否正常、是否在线(升级成功后主机自动上线)、是否升级成功等。

7)代理服务器处理升级失败场景(比如网络情况导致升级包无法完全下发、升级过程报错等)。

具体的,代理服务器根据升级状态进行问题分析和处理,如更改或优化升级指令、重新下发升级文件、处理升级失败问题、检查网络状况、环境回滚等。

本公开实施例提供的云服务器的升级方法,将升级文件以数据流的方式传输到升级端,升级端不需要完全接收所有升级文件再启动升级,而是一边接收一边升级,从而解决了在升级包较大或者网络条件较差时升级时间较长的问题,节约升级时间,提高效率。

基于上述图1对应的实施例中所描述的云服务器的升级方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。

本公开实施例提供一种升级设备,如图4所示,该升级设备40包括:获取模块401、划分模块402、排序模块403和发送模块404;

获取模块401,用于获取升级文件;

划分模块402,用于对升级文件按照业务功能进行模块划分和标记,得到升级数据包,升级数据包包括:升级控制模块和至少一个功能模块;

排序模块403,用于将升级数据包中的所有模块进行优先级排序,升级控制模块的优先级最高;

发送模块404,用于将按照优先级排序的模块依次发送给升级端,以便升级端在接收到升级控制模块时启动升级,并根据接收到的功能模块的优先级顺序逐一进行升级。

在一个实施例中,如图5所示,该升级设备40还包括:检测模块405;

检测模块405,用于在升级数据包包括多个功能模块时,检测多个功能模块中两两功能模块之间是否存在依赖关系;

排序模块403,用于在存在依赖关系时,根据依赖关系将升级数据包中的所有模块进行优先级排序,其中,被依赖的功能模块的优先级较高。

在一个实施例中,排序模块403,用于在不存在依赖关系时,按照预设规则将升级数据包中的所有模块进行优先级排序。

如图6所示,该升级设备40还包括:接收模块406和处理模块407。

在一个实施例中,接收模块406,用于接收升级端反馈的升级状态,升级状态用于指示升级端在升级过程中的实时状态。

在一个实施例中,处理模块407,用于在升级状态指示升级失败时,根据升级状态进行相应的处理,相应的处理包括以下情况中的至少一个:重新下发数据升级包、处理升级失败问题、检查网络状况、环境回滚。

本公开实施例提供的升级设备,获取升级文件;对升级文件按照业务功能进行模块划分和标记,得到升级数据包,升级数据包包括:升级控制模块和至少一个功能模块;将升级数据包中的所有模块进行优先级排序,升级控制模块的优先级最高;将按照优先级排序的模块依次发送给升级端,以便升级端在接收到升级控制模块时启动升级,并根据接收到的功能模块的优先级顺序逐一进行升级。本公开实施例将升级文件以数据流的方式传输到升级端,升级端不需要完全接收所有升级文件再启动升级,而是一边接收一边升级,从而解决了在升级包较大或者网络条件较差时升级时间较长的问题,节约升级时间,提高效率。

本公开实施例提供一种云服务器,如图7所示,该云服务器70包括:接收模块701和升级模块702;

接收模块701,用于接收代理服务器发送的升级数据包中的升级控制模块,升级数据包包括按照优先级排序的升级控制模块和至少一个功能模块,升级控制模块的优先级最高;

升级模块702,用于在升级控制模块接收完成时启动升级;

接收模块701,用于接收代理服务器按照优先级顺序依次发送的升级数据包中的至少一个功能模块;

升级模块702,用于根据接收到的功能模块的优先级顺序逐一进行升级。

在一个实施例中,如图8所示,该云服务器70包括:发送模块703;

发送模块703,用于发送升级状态给代理服务器,升级状态用于指示升级端在升级过程中的实时状态。

本公开实施例提供的云服务器,代理服务器以数据流的方式传输到升级端,升级端不需要完全接收所有升级文件再启动升级,而是一边接收一边升级,从而解决了在升级包较大或者网络条件较差时升级时间较长的问题,节约升级时间,提高效率。

本公开实施例还提供了一种升级设备,该升级设备包括接收器、发射器、存储器和处理器,该发射器和存储器分别与处理器连接,存储器中存储有至少一条计算机指令,处理器用于加载并执行至少一条计算机指令,以实现上述图1对应的实施例中所描述的云服务器的升级方法。

基于上述图1对应的实施例中所描述的云服务器的升级方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:Read Only Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例中所描述的云服务器的升级方法,此处不再赘述。

本公开实施例还提供了一种云服务器,该云服务器包括接收器、发射器、存储器和处理器,该发射器和存储器分别与处理器连接,存储器中存储有至少一条计算机指令,处理器用于加载并执行至少一条计算机指令,以实现上述图2对应的实施例中所描述的云服务器的升级方法。

基于上述图2对应的实施例中所描述的云服务器的升级方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:Read Only Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图2对应的实施例中所描述的云服务器的升级方法,此处不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号