基于人工智能服务云平台的微服务管理方法和系统与流程

文档序号:15221605发布日期:2018-08-21 17:32阅读:393来源:国知局

本申请涉及人工智能领域,特别是涉及一种基于人工智能服务云平台的微服务管理方法和系统。



背景技术:

随着人工智能的发展,人工智能涉及的研究范围越来越广,随之发展起来的人工智能服务所能实现的功能也越来越多,主要包括语音识别、图像识别、自然语言处理和推荐系统等等。人工智能服务给人们生活带来了诸多便利,提升了人们的生活品质。目前人工智能服务直接部署在物理机上的应用服务器内,并提供相应的api(applicationprogramminginterface,应用程序编程接口)以通过调用实现相应的功能。

该种部署方式使得人工智能服务之间相互独立,各个人工智能服务均能提供多样化的服务功能,随着提供的服务功能的增加,人工智能服务也越来越复杂。当增加服务功能时,需要在现有的人工智能服务基础上进行大量修改,因而不便于服务功能的扩展。进一步的,由多个人工智能服务组成相应的人工智能服务云平台时,扩展人工智能服务云平台则需扩展整个的人工智能服务,不便于扩展人工智能服务云平台的服务功能,从而导致人工智能服务云平台的扩展性低。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够增强人工智能服务云平台的扩展性的基于人工智能服务云平台的微服务管理方法和系统。

一种基于人工智能服务云平台的微服务管理方法,所述方法包括:

通过容器调度中心获取目标微服务实例的运行指标参数;当所述运行指标参数符合容器扩展条件时创建容器,通过创建的容器运行微服务实例;运行的微服务实例与所述目标微服务实例属于相同的微服务类型;

通过微服务注册中心接收所述微服务实例发送的微服务注册请求,生成相应的微服务注册记录;将所述微服务注册记录同步至微服务转发中心;

通过所述微服务转发中心,按照所述微服务注册记录将对应所述微服务类型的部分微服务请求分发至通过创建的容器运行的微服务实例。

一种基于人工智能服务云平台的微服务管理系统,所述系统包括:容器调度中心、微服务注册中心和微服务转发中心;

所述容器调度中心,用于获取目标微服务实例的运行指标参数;当所述运行指标参数符合容器扩展条件时创建容器,通过创建的容器运行微服务实例;运行的微服务实例与所述目标微服务实例属于相同的微服务类型;

所述微服务注册中心,用于接收所述微服务实例发送的微服务注册请求,生成相应的微服务注册记录;将所述微服务注册记录同步至微服务转发中心;

所述微服务转发中心,用于按照所述微服务注册记录将对应所述微服务类型的部分微服务请求分发至通过创建的容器运行的微服务实例。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

通过容器调度中心获取目标微服务实例的运行指标参数;当所述运行指标参数符合容器扩展条件时创建容器,通过创建的容器运行微服务实例;运行的微服务实例与所述目标微服务实例属于相同的微服务类型;

通过微服务注册中心接收所述微服务实例发送的微服务注册请求,生成相应的微服务注册记录;将所述微服务注册记录同步至微服务转发中心;

通过所述微服务转发中心,按照所述微服务注册记录将对应所述微服务类型的部分微服务请求分发至通过创建的容器运行的微服务实例。

一种服务器,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:

通过容器调度中心获取目标微服务实例的运行指标参数;当所述运行指标参数符合容器扩展条件时创建容器,通过创建的容器运行微服务实例;运行的微服务实例与所述目标微服务实例属于相同的微服务类型;

通过微服务注册中心接收所述微服务实例发送的微服务注册请求,生成相应的微服务注册记录;将所述微服务注册记录同步至微服务转发中心;

通过所述微服务转发中心,按照所述微服务注册记录将对应所述微服务类型的部分微服务请求分发至通过创建的容器运行的微服务实例。

上述基于人工智能服务云平台的微服务管理方法、系统、计算机可读存储介质和服务器,通过容器调度中心实时获取目标微服务实例的运行指标参数,并当获取的运行指标参数符合预设扩展条件时实时创建相应的容器,且创建的容器中运行的微服务实例与相应目标微服务实例属于相同微服务类型,通过该种方式实现了微服务实例的扩展,增强了人工智能服务云平台的扩展性。进一步的,通过微服务注册中心对扩展的微服务实例进行注册,并将注册的微服务注册记录同步至微服务转发中心,以通过微服务转发中心根据同步的微服务注册记录将相应服务类型的部分微服务请求分发至相应的微服务实例,实现了微服务实例的负载均衡,提高了微服务请求的响应效率,方便了微服务的管理和扩展,从而方便了人工智能服务云平台的统一管理和扩展,进一步增强了人工智能服务云平台的扩展性。

附图说明

图1为一个实施例中基于人工智能服务云平台的微服务管理方法的应用环境图;

图2为一个实施例中基于人工智能服务云平台的微服务管理方法的流程示意图;

图3为另一个实施例中基于人工智能服务云平台的微服务管理方法的流程示意图;

图4为又一个实施例中基于人工智能服务云平台的微服务管理方法的流程示意图;

图5为一个实施例中基于人工智能服务云平台的微服务管理方法的流程框图;

图6为一个实施例中基于人工智能服务云平台的微服务管理装置的结构框图;

图7为另一个实施例中基于人工智能服务云平台的微服务管理装置的结构框图;

图8为又一个实施例中基于人工智能服务云平台的微服务管理装置的结构框图;

图9为再一个实施例中基于人工智能服务云平台的微服务管理装置的结构框图;

图10为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的基于人工智能服务云平台的服务管理方法,可以应用于如图1所示的应用环境中。其中,终端110通过网络与服务器120通过网络进行通信。终端110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器120可以是独立的服务器或者是多个服务器组成的服务器集群。服务器120上可以运行有容器调度中心、服务注册中心和服务转发中心。其中,容器调度中心、服务注册中心和服务转发中心具体可以运行在相同的服务器上,也可以分别运行在不同的服务器上。

在一个实施例中,如图2所示,提供了一种基于人工智能服务云平台的微服务管理方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:

s202,通过容器调度中心获取目标微服务实例的运行指标参数;当运行指标参数符合容器扩展条件时创建容器,通过创建的容器运行微服务实例;运行的微服务实例与目标微服务实例属于相同的微服务类型。

其中,容器是精简版的操作系统。容器中包含了微服务实例运行所需的基础环境。容器比如说可以是docker容器,其中,docker是一个开源的微服务实例容器引擎,基于该微服务实例容器引擎,微服务实例和相应的依赖包可以被打包存储至可移植的容器中,然后将存储有微服务实例的容器发布至任一的linux机器上,或者对存储有微服务实例的容器进行虚拟化。

容器调度中心是管理和调度容器的计算机程序。容器调度中心可以根据微服务实例的运行指标参数实现运行该微服务实例的容器的自动化部署。容器调度中心具体可以实现容器的创建和删除。容器调度中心创建容器时,先获取运行于创建的容器中的微服务实例的镜像,根据获取的镜像创建相应的容器,通过创建的容器运行相应的微服务实例。容器调度中心比如说可以是k8s(kubernetes,开源的大规模容器集群管理系统)。

微服务是soa(service-oriented-architecture,面向服务的体系结构)的一种变体。微服务将服务实例作为松散耦合的服务的集合。在微服务体系结构中,服务是细粒度的,服务之间的协议是轻量级的。将服务实例分解为多个不同的微服务实例,提高了微服务体系结构的模块性,使得服务实例更容易理解、开发和测试。

微服务实例是提供基础服务功能的计算机程序。微服务实例具体可以是实现特定服务功能的服务程序。微服务实例具体可以是人脸识别微服务实例、语音合成微服务实例、图像识别微服务实例和文字识别微服务实例等。目标微服务实例是获取相应运行指标参数的微服务实例。目标微服务实例可以是任一的微服务实例。微服务类型是微服务实例所属的服务类型。微服务类型用于区分不同服务功能的微服务实例。微服务类型具体可以表示为微服务实例实现的服务功能,比如人脸识别微服务、语音合成微服务或文字识别微服务等。

运行指标参数是运行过程中产生的指标参数。运行指标参数具体可以包括运行微服务实例的容器运行时产生的指标参数,和微服务实例所在服务节点运行时产生的指标参数。运行指标参数具体可以是cpu(centralprocessingunit,中央处理器)利用率、内存使用率和调用量等中至少一种。服务节点是组成服务器集群的服务器。容器扩展条件是扩展容器的约束条件。容器扩展条件是容器调度中心判断是否扩展容器的依据。容器扩展条件用于与微服务实例的运行参数进行比较,从而判定是否创建运行相应微服务实例的容器。

具体地,通过容器调度中心分别获取运行目标微服务实例的容器和目标微服务实例所在服务节点各自对应的运行指标参数,将分别获取的对应于容器和服务节点的运行指标参数与容器扩展条件进行比对。当运行指标参数符合容器扩展条件时,通过容器调度中心创建运行相应微服务实例的容器。创建的容器中运行的微服务实例与目标微服务实例属于相同的微服务类型。

在一个实施例中,通过容器调度中心将分别获取的对应于容器和服务节点的运行指标参数进行综合分析,将综合分析的运行指标参数与容器扩展条件进行比较,获得相应的比较结果。当综合分析的运行指标参数符合容器扩展条件时,通过容器调度中心获取目标微服务实例的镜像,根据获取的镜像创建相应的容器,创建的容器中运行的微服务实例与目标微服务实例属于相同的微服务类型。

在一个实施例中,通过容器调度中心分别获取运行目标微服务实例的容器和目标微服务实例所在服务器集群中每个服务节点各自对应的运行指标参数,将容器的指标参数与容器扩展条件进行比较,当容器的指标参数符合容器扩展条件时,创建运行相应微服务实例的容器。通过容器调度中心根据每个服务节点的运行指标参数确定创建的容器的部署位置。

s204,通过微服务注册中心接收微服务实例发送的微服务注册请求,生成相应的微服务注册记录;将微服务注册记录同步至微服务转发中心。

其中,微服务注册中心是对微服务实例进行注册的计算机程序。微服务注册请求是触发对微服务实例进行注册操作的请求。微服务注册请求具体可以包括注册的微服务实例所属的微服务类型、注册的微服务实例所在服务节点的标识和注册的微服务实例对应的服务节点端口号。微服务注册记录是注册时生成的对应于注册的微服务实例的记录。微服务注册记录具体可以对应记录注册的微服务实例所属的微服务类型、注册的微服务实例所在服务节点的标识和注册的微服务实例对应的服务节点端口号。微服务转发中心是转发服务请求的计算机程序。微服务转发中心可用于将接收的服务请求分发至相应的微服务实例。

具体地,通过微服务注册中心接收运行于创建的容器中的微服务实例发送的微服务注册请求,根据接收的微服务注册请求获取注册的微服务实例所属的微服务类型、注册的微服务实例所在服务节点的标识和对应于注册的微服务实例的服务节点端口号,根据获取的微服务类型、服务节点的标识和服务节点端口号生成相应的微服务注册记录;将对应于微服务注册请求生成的微服务注册记录同步至微服务转发中心。

在一个实施例中,通过微服务注册中心接收运行于创建的容器中的微服务实例发送的微服务注册请求,解析接收的微服务注册请求,获得注册的微服务实例所属的微服务类型、注册的微服务实例所在服务节点的标识和对应于注册的微服务实例的服务节点端口号,根据解析的微服务注册请求生成相应的微服务注册记录。

在一个实施例中,通过微服务注册中心接收运行于创建的容器中的微服务实例发送的微服务注册请求,根据接收的微服务注册请求对应查询注册的微服务实例所属的微服务类型、注册的微服务实例所在服务节点的标识和对应于注册的微服务实例的服务节点端口号,根据查询到的微服务类型、服务节点的标识和服务节点端口号生成相应的微服务注册记录。

服务节点的标识用于唯一标识相应的服务节点。服务节点的标识具体可以是数字、符号和字母等字符中的至少一种组成的字符串。服务节点端口号是服务节点的端口号。服务节点端口号用于唯一标识服务节点的端口。服务节点对应有多于一个的端口,每个端口各自对应有唯一的端口号。

s206,通过微服务转发中心,按照微服务注册记录将对应微服务类型的部分微服务请求分发至通过创建的容器运行的微服务实例。

其中,微服务请求是请求实现相应微服务功能的参数。微服务请求中包括微服务实例响应于接收到的微服务请求时处理的对象数据。微服务请求具体可以是实现人脸识别的目标图像、进行文字识别的目标文字序列或进行语音识别的语音数据等。

具体地,通过微服务转发中心接收微服务注册中心同步的微服务注册记录,当接收到的微服务请求,与通过创建的容器运行的微服务实例所属的微服务类型对应时,根据同步的微服务注册记录将接收到的部分微服务请求分发至通过创建的容器运行的微服务实例。

在一个实施例中,通过微服务转发中心接收微服务注册中心同步的微服务注册记录,将同步的微服务注册记录存储在本地,当接收到微服务请求时,确定微服务请求对应的微服务类型,根据同步的微服务注册记录确定对应于微服务类型的微服务实例,将接收的微服务请求发送至确定的微服务实例。

上述基于人工智能服务云平台的微服务管理方法,通过容器调度中心实时获取目标微服务实例的运行指标参数,并当获取的运行指标参数符合预设扩展条件时实时创建相应的容器,且创建的容器中运行的微服务实例与相应目标微服务实例属于相同的微服务类型,通过该种方式实现了微服务实例的扩展,增强了人工智能服务云平台的扩展性。进一步的,通过微服务注册中心对扩展的微服务实例进行注册,并将注册的微服务注册记录同步至微服务转发中心,以通过微服务转发中心根据同步的微服务注册记录将相应服务类型的部分微服务请求分发至相应的微服务实例,实现了微服务实例的负载均衡,提高了微服务请求的响应效率,方便了微服务实例的管理和扩展,从而方便了人工智能服务云平台的统一管理和扩展,进一步增强了人工智能服务云平台的扩展性。

在一个实施例中,上述基于人工智能服务云平台的微服务管理方法还包括:通过负载均衡器接收客户端的微服务请求,获取与微服务请求相应的请求路径参数,将微服务请求和请求路径参数发送至微服务转发中心;步骤s206包括:通过微服务转发中心对接收的请求路径参数进行解析,获得相应的微服务类型;根据获得的微服务类型查询对应的微服务注册记录列表,从查询到的微服务注册记录列表中选择微服务注册记录;将微服务请求分发至与选择的微服务注册记录相应的微服务实例。

其中,负载均衡器是实现负载均衡功能的计算机程序。负载均衡器用于将接收到的微服务请求分发至多于一个的微服务转发中心中的任一微服务转发中心。负载均衡器用于均衡各个微服务转发中心接收到的微服务请求的数量。请求路径参数是客户端请求微服务时发送相应微服务请求的路径参数。换句话说,请求路径参数是负载均衡器接收微服务请求的路径参数。请求路径参数可以包含负载均衡器所在服务节点的标识、负载均衡器对应的服务节点端口号和微服务请求对应的微服务类型。对应于相同微服务类型的服务请求所对应的请求路径参数相同。微服务注册记录列表是由微服务注册记录组成的微服务注册记录集合。

具体地,通过负载均衡器接收客户端的微服务请求,根据接收到的微服务请求获取相应的请求路径参数,将获取的请求路径参数和微服务请求发送至微服务转发中心。通过微服务转发中心接收负载均衡器发送的请求路径参数和微服务请求,解析接收到的请求路径参数,获得相应的微服务类型;从微服务注册中心同步的微服务注册记录中查询对应于解析获得的微服务类型的微服务注册记录列表,从查询到的微服务注册记录列表中选择任一微服务注册记录,根据选择的微服务注册记录确定相应的微服务实例,将接收到的微服务请求发送至确定的微服务实例。

在一个实施例中,微服务转发中心多于一个。通过负载均衡器接收客户端的微服务请求,获取微服务请求对应的请求路径参数,从多于一个的微服务转发中心中选择微服务转发中心,将获取的微服务请求和相应的请求路径参数发送至选择的微服务转发中心。

在一个实施例中,通过负载均衡器从多于一个的微服务转发中心中选择微服务转发中心时,负载均衡器可以从多个微服务转发中心随机选择微服务转发中心,也可以以遍历轮询的方式从多个微服务转发中心选择微服务转发中心,还可以根据多个微服务转发中心当前各自的负载选择微服务转发中心。

上述实施例中,通过负载均衡器获取客户端的微服务请求和相应的请求路径参数,并将获取的微服务请求和请求路径参数发送至微服务转发中心,以通过微服务转发中心解析请求路径参数获取相应的微服务类型,将接收到的微服务请求发送至根据微服务类型对应确定的微服务实例,以通过确定的微服务实例及时响应接收到的微服务请求,提高了微服务请求的响应效率,提高了微服务实例的管理效率,从而提高了人工智能服务云平台的管理效率。

在一个实施例中,微服务注册记录中包含有注册的微服务实例所属的微服务类型、注册的微服务实例所在服务节点的标识,以及与注册的微服务实例对应的服务节点端口号;将微服务请求分发至与选择的微服务注册记录相应的微服务实例,包括:根据选择的微服务注册记录中记录的服务节点的标识和服务节点端口号,确定相应的微服务实例;将微服务请求分发至确定的微服务实例。

具体地,通过微服务转发中心从查询到的微服务注册记录列表中选择微服务注册记录后,从选择的微服务注册记录中获取与微服务类型对应记录的服务节点的标识和相应的服务节点端口号,根据获取的服务节点的标识和服务节点端口号确定相应的微服务实例,将接收到的微服务请求发送至确定的微服务实例。

在一个实施例中,通过创建的容器运行的微服务实例具有相应的微服务实例端口,微服务实例端口是微服务实例间进行数据交互的基础,微服务注册中心和微服务转发中心通过微服务实例端口访问和调用相应的微服务实例。通过微服务注册中心对微服务实例进行注册时,将微服务实例端口的端口号映射至微服务实例所在服务节点的服务节点端口号,根据服务节点端口号即可对应确定相应的微服务实例端口的端口号,从而确定相应的微服务实例。运行于相同服务节点上的每个微服务实例对应的微服务实例端口的端口号分别映射至该相同服务节点的不同的服务节点端口号。

在一个实施例中,通过微服务注册中心接收注册的微服务实例发送的心跳数据包,当在预设时长内未接收到微服务实例发送的心跳数据包时,则表示运行该微服务实例的容器被删除,对应删除该微服务实例的微服务注册记录,或在该微服务实例对应的微服务注册记录中添加运行异常的标注。

上述实施例中,通过微服务转发中心根据解析获得的微服务类型从同步的微服务注册记录中选择微服务注册记录,根据选择的微服务注册记录中记录的服务节点和服务节点端口号对应确定选择的微服务实例,将微服务请求发送至确定的微服务实例,提高了微服务请求的响应效率,提高了微服务实例的可管理性和可扩展性,从而增强了人工智能服务云平台的管理性和扩展性。

如图3所示,在一个实施例中,当通过创建的容器运行的微服务实例是通用语言微服务实例时;通过微服务注册中心接收微服务实例发送的微服务注册请求,生成相应的微服务注册记录;上述基于人工智能服务云平台的微服务管理方法还包括以下步骤:

s302,当通过创建的容器运行的微服务实例是异构语言微服务实例时,通过注册于微服务注册中心的异构语言注册代理中心,接收微服务实例发送的微服务注册请求,生成相应的微服务注册记录。

其中,异构语言是与通用语言不同的其他语言。异构语言是区别于上述基于人工智能服务云平台的微服务管理方法中所应用的计算机语言的计算机语言。异构语言具体可以是python(面向对象的解释型计算机程序设计语言)、nodejs(直译式脚本语言)和php(hypertextpreprocessor,英文超级文本预处理语言)等中的至少一种。通用语言是实现上述基于人工智能服务云平台的微服务管理方法的基础计算机语言。通用语言具体可以java(面向对象编程语言)。

异构语言微服务实例是基于异构语言编写并运行的计算机程序。异构语言注册代理中心是对异构语言微服务实例进行注册的计算机程序。异构语言注册代理中心是微服务注册中心和相应的异构语言微服务实例之间进行数据交互的桥梁。异构语言注册代理中心将自身注册于微服务注册中心,并对运行于创建的容器、且属于指定微服务类型的异构语言微服务实例进行注册,将对应生成的微服务注册记录存储在本地,从而实现异构语言微服务实例在微服务注册中心的注册。

具体地,当通过创建的容器运行的微服务实例是异构语言微服务实例时,微服务实例向注册于微服务注册中心的异构语言注册代理中心发送微服务注册请求,通过异构语言注册代理中心接收微服务实例发送的微服务注册请求,根据接收的微服务注册请求获取注册的微服务实例所属的微服务类型、注册的微服务实例所在服务节点的标识和对应于注册的微服务实例的服务节点端口号,根据获取的微服务类型、服务节点的标识和服务节点端口号生成相应的微服务注册记录。

在一个实施例中,通过容器调度中心接收容器创建指令,根据接收到的容器创建指令创建相应的容器,通过创建的容器运行异构语言注册代理中心。通过微服务注册中心接收异构语言注册代理中心发送的注册请求,根据接收到的注册请求生成对应于注册的异构语言注册代理中心的注册信息。

s304,通过微服务转发中心,按照微服务注册中心所同步的异构语言注册代理中心的注册信息,将对应微服务类型的微服务请求分发至异构语言注册代理中心。

具体地,通过微服务注册中心对异构语言注册代理中心进行注册,生成相应的注册信息,将生成的注册信息同步至微服务转发中心。通过微服务转发中心接收微服务请求,当对应于接收到的微服务请求的微服务类型,与注册于异构语言注册代理中心的微服务实例所属的微服务类型相同时,根据微服务注册中心所同步的异构语言注册代理中心的注册信息,将接收到的微服务请求分发至异构语言注册代理中心。

s306,通过异构语言注册代理中心,按照生成的微服务注册记录,将对应微服务类型的部分微服务请求分发至通过创建的容器运行的微服务实例。

具体地,通过异构语言注册代理中心接收微服务转发中心分发的微服务请求,接收到的微服务请求对应的微服务类型与注册的微服务实例所属的微服务类型相同,根据对微服务实例进行注册时对应生成的微服务注册记录,将接收到的部分微服务请求分发至通过创建的容器运行的微服务实例。本实施例中,通过创建的容器运行的微服务实例,以及通过异构语言注册代理中心进行注册的微服务实例均为异构语言微服务实例。

上述实施例中,当通过创建的容器运行的微服务实例为异构语言微服务实例时,通过注册于微服务注册中心的异构语言注册代理中心将通过创建的容器运行的微服务实例间接注册于微服务注册中心,实现了对异构语言微服务实例的扩展,提高了异构语言微服务实例的扩展性,从而提高了人工智能服务云平台的扩展性。通过异构语言注册代理中心接收通过微服务转发中心发送的、与注册的异构语言微服务实例所属的微服务类型对应的微服务请求,根据注册时对应生成的微服务注册记录将接收到的微服务请求分发至注册的异构语言微服务实例,实现了异构语言微服务实例的负载均衡,提高了微服务请求的响应效率,提高了异构语言微服务实例的可管理性和可扩展性,方便了人工智能服务云平台对于异构语言微服务实例的统一管理,进一步增强了人工智能服务云平台的扩展性。

在一个实施例中,上述基于人工智能服务云平台的微服务管理方法还包括:通过负载均衡器接收客户端的微服务请求,获取与微服务请求相应的请求路径参数,将微服务请求和请求路径参数发送至微服务转发中心;步骤s304包括:通过微服务转发中心对接收的请求路径参数进行解析,获得相应的微服务类型;根据获得的微服务类型查询对应的注册信息;查询到的注册信息是微服务注册中心所同步的异构语言注册代理中心的注册信息;将微服务请求分发至查询到的异构语言注册代理中心。

具体地,通过负载均衡器接收客户端的微服务请求,根据接收到的微服务请求获取相应的请求路径参数,将获取的请求路径参数和微服务请求发送至微服务转发中心。通过微服务转发中心接收负载均衡器发送的请求路径参数和微服务请求,解析接收到的请求路径参数,获得相应的微服务类型;从微服务注册中心同步的对应于异构语言注册代理中心的注册信息中查询对应于解析获得的微服务类型的注册信息,根据查询到的注册信息确定相应的异构语言注册代理中心,将接收到的微服务请求发送至确定的异构语言注册代理中心。

在一个实施例中,通过微服务注册中心对异构语言注册代理中心进行注册,生成相应的注册信息,将生成的注册信息同步至微服务转发中心。通过微服务转发中心根据同步的注册信息将对应微服务类型的微服务请求发送至异构语言注册代理中心。通过异构语言注册代理中心将接收到的微服务请求分发至注册的异构语言微服务实例。

上述实施例中,通过负载均衡器将接收到的微服务请求和对应获取的请求路径参数发送至微服务转发中心,以通过微服务转发中心解析请求路径参数获取相应的微服务类型,将接收到的微服务请求发送至根据同步的注册信息和解析获得的微服务类型对应确定的异构语言注册代理中心,以使得异构语言注册代理中心将接收到的微服务请求分发至注册的异构语言微服务实例,以通过异构语言微服务实例及时响应接收到的微服务请求,提高了微服务请求的响应效率,提高了异构语言微服务实例的管理效率,从而提高了人工智能服务云平台的管理效率。

在一个实施例中,注册信息中包含有注册于异构语言注册代理中心的微服务实例所属的微服务类型、注册的异构语言注册代理中心所在服务节点的标识、以及与注册的异构语言注册代理中心对应的服务节点端口号;将微服务请求分发至查询到的异构语言注册代理中心,包括:根据查询到的注册信息中记录的服务节点的标识和服务节点端口号,确定相应的异构语言注册代理中心;将微服务请求分发至确定的异构语言注册代理中心。

具体地,通过微服务转发中心从微服务注册中心同步的对应于异构语言注册代理中心的注册信息中查询到对应于解析获得的微服务类型的注册信息后,从查询到的注册信息中获取与微服务类型对应记录的服务节点的标识和相应的服务节点端口号,根据获取的服务节点的标识和服务节点端口号确定相应的异构语言注册代理中心,将接收到的微服务请求发送至确定的异构语言注册代理中心。

上述实施例中,通过微服务转发中心根据解析获得的微服务类型从微服务注册中心同步的注册信息中查询与解析获得的微服务类型对应的注册信息,根据查询到的注册信息中记录的服务节点和服务节点端口号对应确定查询到的异构语言注册代理中心,将微服务请求发送至查询到的异构语言注册代理中心,以通过异构语言注册代理中心将微服务请求分发至相应的异构语言微服务实例,提高了微服务请求的响应效率,提高了异构语言微服务实例的可管理性和可扩展性,从而增强了人工智能服务云平台的管理性和扩展性。

在一个实施例中,微服务注册记录中包含有注册的微服务实例所属的微服务类型、注册的微服务实例所在服务节点的标识,以及与注册的微服务实例对应的服务节点端口号;步骤s306包括:根据接收的微服务请求查询相应的微服务注册记录列表;从查询到的微服务注册记录列表中选择微服务注册记录;根据选择的微服务注册记录中记录的服务节点的标识和服务节点端口号,确定相应的微服务实例;将微服务请求分发至确定的微服务实例。

具体地,通过异构语言注册代理中心接收通过微服务转发中心发送的微服务请求后,根据接收到的微服务请求查询对异构语言微服务实例进行注册时对应生成的微服务注册记录,获得相应的微服务注册记录列表;从查询到的微服务注册记录列表中选择用于响应微服务请求的微服务注册记录,根据选择的微服务注册记录中记录的服务节点的标识和服务节点端口号确定相应的微服务实例,将接收到的微服务请求发送至确定的微服务实例,以使得微服务实例响应于接收到的微服务实例。

在一个实施例中,通过异构语言注册代理中心从查询到的微服务注册记录列表中选择微服务注册记录时,具体的选择方式包括:从查询到的微服务注册记录列表中随机选择微服务注册记录;以遍历轮询的方式从查询到的微服务注册记录列表中选择微服务注册记录;根据查询到的微服务注册记录列表中每个微服务注册记录各自对应的微服务实例的当前负载选择微服务注册记录。

在一个实施例中,通过异构语言注册代理中心接收注册的异构语言微服务实例发送的心跳数据包,当在预设时长内未接收到异构语言微服务实例发送的心跳数据包时,则表示运行该异构语言微服务实例的容器被删除,对应删除该异构语言微服务实例的微服务注册记录,或在该异构语言微服务实例对应的微服务注册记录中添加运行异常的标注。

在一个实施例中,通过异构语言注册代理中心向注册的异构语言微服务实例按预设周期发送微服务发现请求,微服务发现请求用于询问相应的异构语言微服务实例是否处于正常运行状态,并接收异构语言微服务实例对应于微服务发现请求反馈的运行数据,当在预设时长内未接收到异构语言微服务实例反馈的运行数据时,表示相应的异构语言微服务实例处于运行异常状态,删除该异构语言微服务实例对饮的微服务注册记录。通过该种方式实现了异构语言注册代理中心对注册的异构语言微服务实例的运行状态的检测,以便于将微服务请求分发至运行正常的异构语言微服务实例,保证了微服务请求被及时响应。

在一个实施例中,通过微服务注册中心接收注册的异构语言注册代理中心发送的心跳数据包,当在预设时长内未接收到异构语言注册代理中心发送的心跳数据包时,则表示异构语言注册代理中心处于运行异常状态,对应删除该异构语言注册代理中心的注册信息,或在该异构语言注册代理中心对应的注册信息中添加运行异常的标注。

上述实施例中,通过异构语言注册代理中心根据选择的微服务注册记录中记录的服务节点的标识和服务节点端口号确定相应的微服务实例,将微服务请求发送至对应确定的微服务实例,以使得微服务实例及时响应于接收到的微服务请求,提高了微服务请求的响应效率。通过上述方式确定响应微服务请求的微服务实例,方便了微服务实例的统一管理,降低了管理维护微服务实例的成本,进而方便了人工智能服务云平台的统一管理,增强了人工智能服务云平台的扩展性。

在一个实施例中,上述基于人工智能服务云平台的微服务管理方法还包括:当运行指标参数符合容器缩减条件时,通过容器调度中心删除运行目标微服务实例的容器。

其中,容器缩减条件是容器调度中心删除容器以缩减容器数量的约束条件。容器扩展条件是容器调度中心判断是否删除容器的依据。容器扩展条件用于与微服务实例的运行参数进行比较,从而判定是否删除运行相应微服务实例的容器。

具体地,通过容器调度中心分别获取运行目标微服务实例的容器和目标微服务实例所在服务节点各自对应的运行指标参数,将分别获取的对应于容器和服务节点的运行指标参数与容器扩展条件进行比对;当获取的运行指标参数符合容器缩减条件时,删除运行目标微服务实例的容器。

上述实施例中,通过容器调度中心根据获取的对应于目标微服务实例的运行指标参数和容器缩减条件,删除符合容器缩减条件的容器,以删除相应的目标微服务实例。根据运行指标参数将目标微服务实例缩减至合适的数量,动态平衡了系统响应于微服务请求的压力,减少了处理闲置状态的目标微服务实例,提高了目标微服务实例的调用效率,从而方便了目标微服务实例的管理,进而增强了人工智能服务云平台的可管理性。

如图4所示,在一个具体的实施例中,提供了一种基于人工智能服务云平台的微服务管理方法,该方法具体包括以下步骤:

s402,通过容器调度中心获取目标微服务实例的运行指标参数;当运行指标参数符合容器扩展条件时创建容器,通过创建的容器运行微服务实例;运行的微服务实例与目标微服务实例属于相同的微服务类型。

s404,当通过创建的容器运行的微服务实例是通用语言微服务实例时;通过微服务注册中心接收微服务实例发送的微服务注册请求,生成相应的微服务注册记录;将微服务注册记录同步至微服务转发中心。

s406,通过负载均衡器接收客户端的微服务请求,获取与微服务请求相应的请求路径参数,将微服务请求和请求路径参数发送至微服务转发中心。

s408,通过微服务转发中心,按照微服务注册记录将对应微服务类型的部分微服务请求分发至通过创建的容器运行的微服务实例。

s410,当通过创建的容器运行的微服务实例是异构语言微服务实例时,通过注册于微服务注册中心的异构语言注册代理中心,接收微服务实例发送的微服务注册请求,生成相应的微服务注册记录。

s412,通过负载均衡器接收客户端的微服务请求,获取与微服务请求相应的请求路径参数,将微服务请求和请求路径参数发送至微服务转发中心。

s414,通过微服务转发中心,按照微服务注册中心所同步的异构语言注册代理中心的注册信息,将对应微服务类型的微服务请求分发至异构语言注册代理中心。

s416,通过异构语言注册代理中心,按照生成的微服务注册记录,将对应微服务类型的部分微服务请求分发至通过创建的容器运行的微服务实例。

上述实施例中,通过容器调度中心根据对应于目标微服务实例获取的运行指标参数和容器扩展条件创建相应的容器,创建的容器中运行的微服务实例与目标微服务实例属于相同的微服务类型,从而实现了目标微服务实例的扩展,增强了人工智能服务云平台的扩展性。进一步的,通过微服务注册中心对扩展的目标微服务实例进行注册,并将生成的微服务注册记录同步至微服务转发中心,以使得微服务转发中心根据微服务注册记录将微服务请求发送至微服务实例,提高了微服务请求的响应效率,方便了人工智能服务云平台的统一管理,增强了人工智能服务云平台的扩展性。当目标微服务实例为异构语言微服务实例时,通过注册于微服务注册中心的异构语言注册代理中心对异构语言微服务实例进行注册,以根据生成的微服务注册记录将微服务转发中心发送的微服务请求发送至微服务实例,增强了异构语言微服务实例的扩展性,进一步增强了人工智能服务云平台的扩展性。

如图5所示,在一个具体的实施例中,提供了一种基于人工智能服务云平台的微服务管理方法,该方法具体包括以下步骤:

通过容器调度中心获取目标微服务实例的运行指标参数,根据获取的运行指标参数创建相应的容器,创建的容器中运行的微服务实例与所述目标微服务实例属于相同的微服务类型。其中,本实施例中的目标微服务实例可以是人工智能微服务实例,目标微服务实例具体可以是人脸识别微服务实例、语音合成微服务实例、文字识别微服务实例或其他人工智能微服务实例。本实施例中的通用语言可以是java。当目标微服务实例是异构语言微服务实例时,目标微服务实例具体可以是基于python的微服务实例、基于nodejs的微服务实例、基于php的微服务实例或基于其他语言的微服务实例。

当通过创建的容器运行的微服务实例是通用语言微服务实例时;通过微服务注册中心接收微服务实例发送的微服务注册请求,生成相应的微服务注册记录,完成微服务注册过程;将生成的微服务注册记录同步至微服务转发中心;按预设周期向注册的微服务实例发送微服务发现请求,并接收微服务实例对应反馈的运行数据,完成服务发现过程。当通过创建的容器运行的微服务实例是异构语言微服务实例时,通过注册于微服务注册中心的异构语言注册代理中心,接收微服务实例发送的微服务注册请求,生成相应的微服务注册记录,完成微服务注册过程;按预设周期向注册的微服务实例发送微服务发现请求,并接收微服务实例对应反馈的运行数据,完成服务发现过程。通过微服务注册中心将注册异构语言注册代理中心时生成的注册信息同步至微服务转发中心,完成代理注册过程,按预设周期向注册的异构语言注册代理中心发送微服务发现请求,并接收异构语言注册代理中心对应反馈的运行数据,完成代理发现过程。

通过负载均衡器接收客户端发送的微服务请求,获取与微服务请求相应的请求路径参数,将获取的微服务请求和请求路径参数发送至微服务转发中心。

通过微服务转发中心对接收的请求路径参数进行解析,获得相应的微服务类型。当解析获得的微服务类型对应的微服务实例是通用语言微服务实例时,通过微服务转发中心根据获得的微服务类型查询对应的微服务注册记录列表,从查询到的微服务注册记录列表中选择微服务注册记录;将接收到的微服务请求分发至与选择的微服务注册记录相应的微服务实例。

当解析获得的微服务类型对应的微服务实例是异构语言微服务实例时,通过微服务转发中心根据获得的微服务类型查询对应的注册信息;查询到的注册信息是微服务注册中心所同步的异构语言注册代理中心的注册信息;将接收到的微服务请求分发至查询到的异构语言注册代理中心。通过异构语言注册代理中心按照生成的微服务注册记录,将对应微服务类型的部分微服务请求分发至通过创建的容器运行的微服务实例。

上述实施例中,通过将组成人工智能服务云平台的人工智能服务实例微服务化为相应的微服务实例,增加了微服务实例的稳定性,方便了人工智能服务云平台的统一管理,降低了人工智能服务云平台的管理维护成本,相应的增强了人工智能服务云平台的扩展性。

应该理解的是,虽然图2至图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图6所示,提供了一种基于人工智能服务云平台的微服务管理系统600,包括:容器调度中心601、微服务注册中心602和微服务转发中心603,其中:

容器调度中心601,用于获取目标微服务实例的运行指标参数;当运行指标参数符合容器扩展条件时创建容器,通过创建的容器运行微服务实例;运行的微服务实例与目标微服务实例属于相同的微服务类型。其中,容器调度中心601还用于管理和调度上述基于人工智能服务云平台的微服务管理系统中的通过容器运行的微服务注册中心602和通过容器运行的微服务转发中心603。

微服务注册中心602,用于接收微服务实例发送的微服务注册请求,生成相应的微服务注册记录;将微服务注册记录同步至微服务转发中心603。

微服务转发中心603,用于按照微服务注册记录将对应微服务类型的部分微服务请求分发至通过创建的容器运行的微服务实例。

上述基于人工智能服务云平台的微服务管理系统,通过容器调度中心实时获取目标微服务实例的运行指标参数,并当获取的运行指标参数符合预设扩展条件时实时创建相应的容器,且创建的容器中运行的微服务实例与相应目标微服务实例属于相同的微服务类型,通过该种方式实现了微服务实例的扩展,增强了人工智能服务云平台的扩展性。进一步的,通过微服务注册中心对扩展的微服务实例进行注册,并将注册的微服务注册记录同步至微服务转发中心,以通过微服务转发中心根据同步的微服务注册记录将相应服务类型的部分微服务请求分发至相应的微服务实例,实现了微服务实例的负载均衡,提高了微服务请求的响应效率,方便了微服务实例的管理和扩展,从而方便了人工智能服务云平台的统一管理和扩展,进一步增强了人工智能服务云平台的扩展性。

如图7所示,在一个实施例中,基于人工智能服务云平台的微服务管理系统600还包括:负载均衡器604;

负载均衡器604,用于接收客户端的微服务请求,获取与微服务请求相应的请求路径参数,将微服务请求和请求路径参数发送至微服务转发中心603。

微服务转发中心603,还用于对接收的请求路径参数进行解析,获得相应的微服务类型;根据获得的微服务类型查询对应的微服务注册记录列表,从查询到的微服务注册记录列表中选择微服务注册记录;将微服务请求分发至与选择的微服务注册记录相应的微服务实例。

其中,容器调度中心601还用于管理和调度上述基于人工智能服务云平台的微服务管理系统中的通过容器运行的负载均衡器604。

上述实施例中,通过负载均衡器获取客户端的微服务请求和相应的请求路径参数,并将获取的微服务请求和请求路径参数发送至微服务转发中心,以通过微服务转发中心解析请求路径参数获取相应的微服务类型,将接收到的微服务请求发送至根据微服务类型对应确定的微服务实例,以通过确定的微服务实例及时响应接收到的微服务请求,提高了微服务请求的响应效率,提高了微服务实例的管理效率,从而提高了人工智能服务云平台的管理效率。

在一个实施例中,微服务注册记录中包含有注册的微服务实例所属的微服务类型、注册的微服务实例所在服务节点的标识,以及与注册的微服务实例对应的服务节点端口号;微服务转发中心603,还用于根据选择的微服务注册记录中记录的服务节点的标识和服务节点端口号,确定相应的微服务实例;将微服务请求分发至确定的微服务实例。

上述实施例中,通过微服务转发中心根据解析获得的微服务类型从同步的微服务注册记录中选择微服务注册记录,根据选择的微服务注册记录中记录的服务节点和服务节点端口号对应确定选择的微服务实例,将微服务请求发送至确定的微服务实例,提高了微服务请求的响应效率,提高了微服务实例的可管理性和可扩展性,从而增强了人工智能服务云平台的管理性和扩展性。

如图8所示,在一个实施例中,当通过创建的容器运行的微服务实例是异构语言微服务实例时,基于人工智能服务云平台的微服务管理系统600还包括:注册于微服务注册中心的异构语言注册代理中心605。

异构语言注册代理中心605,用于接收微服务实例发送的微服务注册请求,生成相应的微服务注册记录;微服务转发中心603,还用于按照微服务注册中心602所同步的异构语言注册代理中心605的注册信息,将对应微服务类型的微服务请求分发至异构语言注册代理中心605;异构语言注册代理中心605,还用于按照生成的微服务注册记录,将对应微服务类型的部分微服务请求分发至通过创建的容器运行的微服务实例。

上述实施例中,当通过创建的容器运行的微服务实例为异构语言微服务实例时,通过注册于微服务注册中心的异构语言注册代理中心将通过创建的容器运行的微服务实例间接注册于微服务注册中心,实现了对异构语言微服务实例的扩展,提高了异构语言微服务实例的扩展性,从而提高了人工智能服务云平台的扩展性。通过异构语言注册代理中心接收通过微服务转发中心发送的、与注册的异构语言微服务实例所属的微服务类型对应的微服务请求,根据注册时对应生成的微服务注册记录将接收到的微服务请求分发至注册的异构语言微服务实例,实现了异构语言微服务实例的负载均衡,提高了微服务请求的响应效率,提高了异构语言微服务实例的可管理性和可扩展性,方便了人工智能服务云平台对于异构语言微服务实例的统一管理,进一步增强了人工智能服务云平台的扩展性。

如图9所示,在一个实施例中,基于人工智能服务云平台的微服务管理系统600还包括:负载均衡器604;负载均衡器604,用于接收客户端的微服务请求,获取与微服务请求相应的请求路径参数,将微服务请求和请求路径参数发送至微服务转发中心603;微服务转发中心603,还用于对接收的请求路径参数进行解析,获得相应的微服务类型;根据获得的微服务类型查询对应的注册信息;查询到的注册信息是微服务注册中心602所同步的异构语言注册代理中心605的注册信息;将微服务请求分发至查询到的异构语言注册代理中心605。

上述实施例中,通过负载均衡器将接收到的微服务请求和对应获取的请求路径参数发送至微服务转发中心,以通过微服务转发中心解析请求路径参数获取相应的微服务类型,将接收到的微服务请求发送至根据同步的注册信息和解析获得的微服务类型对应确定的异构语言注册代理中心,以使得异构语言注册代理中心将接收到的微服务请求分发至注册的异构语言微服务实例,以通过异构语言微服务实例及时响应接收到的微服务请求,提高了微服务请求的响应效率,提高了异构语言微服务实例的管理效率,从而提高了人工智能服务云平台的管理效率。

在一个实施例中,注册信息中包含有注册于异构语言注册代理中心的微服务实例所属的微服务类型、注册的异构语言注册代理中心所在服务节点的标识、以及与注册的异构语言注册代理中心对应的服务节点端口号;微服务转发中心603,还用于根据查询到的注册信息中记录的服务节点的标识和服务节点端口号,确定相应的异构语言注册代理中心;将微服务请求分发至确定的异构语言注册代理中心。

上述实施例中,通过微服务转发中心根据解析获得的微服务类型从微服务注册中心同步的注册信息中查询与解析获得的微服务类型对应的注册信息,根据查询到的注册信息中记录的服务节点和服务节点端口号对应确定查询到的异构语言注册代理中心,将微服务请求发送至查询到的异构语言注册代理中心,以通过异构语言注册代理中心将微服务请求分发至相应的异构语言微服务实例,提高了微服务请求的响应效率,提高了异构语言微服务实例的可管理性和可扩展性,从而增强了人工智能服务云平台的管理性和扩展性。

在一个实施例中,微服务注册记录中包含有注册的微服务实例所属的微服务类型、注册的微服务实例所在服务节点的标识,以及与注册的微服务实例对应的服务节点端口号;异构语言注册代理中心605,还用于根据接收的微服务请求查询相应的微服务注册记录列表;从查询到的微服务注册记录列表中选择微服务注册记录;根据选择的微服务注册记录中记录的服务节点的标识和服务节点端口号,确定相应的微服务实例;将微服务请求分发至确定的微服务实例。

上述实施例中,通过异构语言注册代理中心根据选择的微服务注册记录中记录的服务节点的标识和服务节点端口号确定相应的微服务实例,将微服务请求发送至对应确定的微服务实例,以使得微服务实例及时响应于接收到的微服务请求,提高了微服务请求的响应效率。通过上述方式确定响应微服务请求的微服务实例,方便了微服务实例的统一管理,降低了管理维护微服务实例的成本,进而方便了人工智能服务云平台的统一管理,增强了人工智能服务云平台的扩展性。

在一个实施例中,容器调度中心601,还用于当运行指标参数符合容器缩减条件时,删除运行目标微服务实例的容器。

上述实施例中,通过容器调度中心根据获取的对应于目标微服务实例的运行指标参数和容器缩减条件,删除符合容器缩减条件的容器,以删除相应的目标微服务实例。根据运行指标参数将目标微服务实例缩减至合适的数量,动态平衡了系统响应于微服务请求的压力,减少了处理闲置状态的目标微服务实例,提高了目标微服务实例的调用效率,从而方便了目标微服务实例的管理,进而增强了人工智能服务云平台的可管理性。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端或服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种基于人工智能服务云平台的微服务管理方法。

本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各实施例中基于人工智能服务云平台的微服务管理方法的各步骤。

在一个实施例中,提供了一种服务器,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述各实施例中基于人工智能服务云平台的微服务管理方法的各步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1