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

微服务管理方法、装置、计算机设备和存储介质与流程

2022-03-13 20:20:33 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种微服务管理方法、装置、计算机设备和存储介质。


背景技术:

2.随着互联网技术的不断发展,基于微服务实现的无服务架构逐渐发展起来,无服务架构是一种无服务器执行环境,以便于开发者在无需购买和管理服务器的情况下运行代码。开发者只需按照无服务架构支持的语言编写核心代码并设置代码运行条件,即能够通过无服务架构安全的运行代码。
3.目前的无服务架构通常是基于serverless(云函数)实现的,但是该种无服务架构存在微服务冷启动的问题,由此降低了微服务的处理效率。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高微服务的处理效率的微服务管理方法、装置、计算机设备和存储介质。
5.一种微服务管理方法,所述方法包括:
6.获取微服务的接口当前对应的运行版本与生效版本;所述生效版本是基于终端发送的运行版本更新请求确定的待运行版本;
7.当所述运行版本与所述生效版本不一致时,获取所述生效版本对应的接口代码数据;
8.在保持所述微服务的在线状态的情况下,运行所述接口代码数据以更新所述接口。
9.一种微服务管理装置,所述装置包括:
10.获取模块,用于获取微服务的接口当前对应的运行版本与生效版本;所述生效版本是基于终端发送的运行版本更新请求确定的待运行版本;
11.判定模块,用于当所述运行版本与所述生效版本不一致时,获取所述生效版本对应的接口代码数据;
12.更新模块,用于在保持所述微服务的在线状态的情况下,运行所述接口代码数据以更新所述接口。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
14.获取微服务的接口当前对应的运行版本与生效版本;所述生效版本是基于终端发送的运行版本更新请求确定的待运行版本;
15.当所述运行版本与所述生效版本不一致时,获取所述生效版本对应的接口代码数据;
16.在保持所述微服务的在线状态的情况下,运行所述接口代码数据以更新所述接
口。
17.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
18.获取微服务的接口当前对应的运行版本与生效版本;所述生效版本是基于终端发送的运行版本更新请求确定的待运行版本;
19.当所述运行版本与所述生效版本不一致时,获取所述生效版本对应的接口代码数据;
20.在保持所述微服务的在线状态的情况下,运行所述接口代码数据以更新所述接口。
21.上述微服务管理方法、装置、计算机设备和存储介质,在微服务管理过程中,动态获取微服务的接口当前对应的运行版本与生效版本,其中,该生效版本是基于终端发送的运行版本更新请求确定的待运行版本,当判定该运行版本与生效版本不一致时,表征该接口当前对应的运行版本与终端请求的待运行版本不一致,则获取该生效版本对应的接口代码数据,并在保持微服务的在线状态的情况下,通过运行该生效版本对应的接口代码数据来实现该接口的热更新。这样,在动态获取的运行版本与生效版本不一致时,也即是在需要更新接口时,在保持服务常驻的情况下,实现接口的热更新,以避免因服务的重启与唤醒而导致冷启动延迟的问题,从而能够解决微服务冷启动的问题,进而能够提高微服务的处理效率。
附图说明
22.图1为一个实施例中微服务管理方法的应用环境图;
23.图2为一个实施例中微服务管理方法的流程示意图;
24.图3为一个实施例中在目标平台上部署微服务的原理示意图;
25.图4为一个实施例中xnode架构的产品侧能力示意图;
26.图5为另一个实施例中微服务管理方法的流程示意图;
27.图6为一个实施例中微服务管理装置的结构框图;
28.图7为一个实施例中计算机设备的内部结构图。
具体实施方式
29.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
30.本技术提供的微服务管理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与管理服务器104进行通信。管理服务器104获取微服务的接口当前对应的运行版本与生效版本,该生效版本是基于终端102发送的运行版本更新请求对应确定的待运行版本,当该运行版本与生效版本不一致时,获取该生效版本对应的接口代码数据,并在保持微服务的在线状态的情况下,运行该接口代码数据以实现接口的更新。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
31.在一个实施例中,管理服务器104是部署有基于nodejs/xnode(一种开发框架/运行环境)的无服务架构的服务器,用于实现该无服务架的功能。可以理解,该基于nodejs/xnode的无服务架构是基于微服务实现的无服务架构,由此,基于nodejs/xnode的无服务架构也可理解为基于nodejs/xnode的微服务架构、xnode架构或xnode平台。这样,管理服务器104与微服务架构相对应。
32.在一个实施例中,如图2所示,提供了一种微服务管理方法,以该方法应用于图1中的管理服务器为例进行说明,包括以下步骤:
33.步骤202,获取微服务的接口当前对应的运行版本与生效版本;生效版本是基于终端发送的运行版本更新请求确定的待运行版本。
34.其中,微服务是能够独立运行、且实现特定功能的服务。运行版本也即接口运行版本,是指微服务的接口当前运行的版本,也即是指当前实际运行的接口版本。生效版本也即接口生效版本,是指当前已生效的接口版本,也即是指接口当前的待运行版本。运行版本更新请求是指触发接口运行版本更新操作的请求,用于指示管理服务器更新接口的当前运行版本。可以理解,管理服务器根据运行版本更新请求更新接口的当前运行版本,可以是指将接口的当前运行版本切换为已有的其他版本,也可以是指新增接口对应的版本,并将接口的当前运行版本切换为该新增的版本。
35.具体地,当满足微服务的接口版本更新条件时,管理服务器获取该微服务的接口当前对应的运行版本与生效版本。接口版本更新条件是触发接口的运行版本更新操作的条件或依据,比如接收到终端针对微服务的接口发送的运行版本更新请求,还比如自前一次触发接口运行版本更新操作起达到预设时长,预设时长可自定义,比如1分钟,这样,管理服务器会定期获取微服务的接口当前对应的运行版本与生效版本,并基于所获取到的运行版本与生效版本执行后续相关操作。
36.在一个实施例中,微服务的每个接口配置有相应的版本号,以便于基于版本号更新接口的运行版本。管理服务器上所部署的xnode架构对接口提供了版本管理机制,通过接口的版本号能够实现接口的新增与回退等功能,还能够提供多版本的接口代码数据的对比能力。
37.在一个实施例中,运行版本更新请求中携带有待运行版本的版本号,还可携带有当前的运行版本的版本号,以指示管理服务器将待运行版本确定为生效版本,并将当前的运行版本切换为该生效版本。
38.在一个实施例中,管理服务器在接收到终端针对接口发送的运行版本更新请求后,通过一个进程将该运行版本更新请求所指定的待运行版本确定为该接口对应的生效版本,并通过进程间通信给另一个进程发送运行版本更新指令,以指示该另一个进程将该接口当前的运行版本切换为生效版本,以实现接口的热更新。但是,由于进程通过进程间通信向另一个进程发送运行版本更新指令时,可能存在发送失败的情况,由此,通过定期获取接口对应的运行版本与生效版本,并基于所获取到的运行版本与生效版本执行后续接口更新的相关操作,能够保证接口能够被及时更新。
39.步骤204,当运行版本与生效版本不一致时,获取生效版本对应的接口代码数据。
40.其中,接口代码数据是指接口的代码逻辑所对应的数据,也即是指接口逻辑对应的数据。本实施例中,将接口的代码逻辑以数据的形式保存在接口数据库中,以便于基于接
口代码数据实现接口的热更新。
41.具体地,管理服务器将针对接口所获取到的运行版本与生效版本进行比较,当判定运行版本与生效版本不一致时,则获取该生效版本对应的接口代码数据。
42.在一个实施例中,管理服务器根据生效版本的版本号从接口数据库中获取相应的接口代码数据。该接口数据库可以是管理服务器的本地数据库,还可以是用于存储接口代码数据的其他计算机设备的数据库,在此不作具体限定。
43.步骤206,在保持微服务的在线状态的情况下,运行接口代码数据以更新接口。
44.其中,保持微服务的在线状态是指实现服务常驻,也即是指在更新接口的过程中保持相应微服务的在线状态,而无需重新启动与加载微服务。
45.具体地,管理服务器在获取到接口的生效版本对应的接口代码数据后,运行该生效版本对应的接口代码数据,并停止运行接口当前对应的运行版本所对应的接口代码数据,以实现接口更新。而且,管理服务器在按照上述方式更新接口的过程中,始终保持该接口对应的微服务的在线状态,也即是在接口更新过程中保证相应微服务的服务常驻,以实现接口的热更新。
46.在一个实施例中,管理服务器通过一个进程获取到接口的生效版本对应的接口代码数据后,通过进程间通信向该接口的执行进程下发接口更新指令,以指示该执行进程基于所接收到的更新指令,更新针对该接口运行的接口代码数据,并运行更新后的接口代码数据,从而实现接口的热更新。可以理解,进程间通信具体可以是指基于nodejs实现的进程间通信。这样,xnode架构通过在nodejs运行时,热加载接口当前对应的生效版本所对应的接口代码数据,达到接口热更新的目的。
47.上述微服务管理方法,在微服务管理过程中,动态获取微服务的接口当前对应的运行版本与生效版本,其中,该生效版本是基于终端发送的运行版本更新请求确定的待运行版本,当判定该运行版本与生效版本不一致时,表征该接口当前对应的运行版本与终端请求的待运行版本不一致,则获取该生效版本对应的接口代码数据,并在保持微服务的在线状态的情况下,通过运行该生效版本对应的接口代码数据来实现该接口的热更新。这样,在动态获取的运行版本与生效版本不一致时,也即是在需要更新接口时,在保持服务常驻的情况下,实现接口的热更新,以避免因服务的重启与唤醒而导致冷启动延迟的问题,从而能够解决微服务冷启动的问题,进而能够提高微服务的处理效率,以及提高微服务的适用场景。
48.在一个实施例中,上述微服务管理方法还包括:接收终端发送的第一资源申请请求;第一资源申请请求携带有微服务标识、目标平台标识与第一资源申请参数;根据目标平台标识生成第二资源申请参数;根据微服务标识、第一资源申请参数与第二资源申请参数,生成第二资源申请请求;将第二资源申请请求发送至目标平台标识对应的目标平台;第二资源申请请求,用于指示目标平台根据第一资源申请参数与第二资源申请参数,为微服务标识分配相应的资源。
49.其中,资源申请请求是用于触发资源申请操作的请求。第一资源申请请求用于指示管理服务器基于目标平台标识自动生成申请资源所需的第资源申请参数,并调用目标平台标识对应的目标平台为微服务分配资源。第二资源申请请求用于指示目标平台根据第一资源申请参数与第二资源申请参数为相应微服务分配资源。微服务标识用于唯一标识微服
务。目标平台标识用于唯一标识目标平台,具体可以是用于唯一标识针对微服务申请资源的平台。第一资源申请参数是在目标平台为微服务申请资源所需提供的参数,包括但不限于是模块名与模块描述等。第二资源申请参数是由管理服务器基于第一资源申请参数自动生成的参数,具体可以是基于目标平台标识自动生成的参数,包括但不限于是产品类型、是否容器方式部署、模块类型、路由方式、开发负责人、业务负责人与调用端模块等。目标平台根据第二资源申请参数为微服务分配的资源,是该微服务在该目标平台上运行时所需的资源,比如cpu与内存,在此不一一列举。
50.具体地,终端根据用户针对微服务触发的资源申请操作,确定为该微服务申请资源的目标平台与相应的第一资源申请参数,生成携带该微服务对应的微服务标识、该目标平台对应的目标平台标识与第一资源申请参数的第一资源申请请求,并将所生成的第一资源申请请求发送的管理服务器。管理服务器根据第一资源申请请求所指定的目标平台标识,自动生成相应的第二资源申请参数,并生成携带微服务标识、第一资源申请参数与第二资源资源参数的第二资源申请请求,进而将所生成的第二资源申请请求发送至目标平台标识对应的目标平台。该目标平台根据第二资源申请请求所指定的第一资源申请参数与第二资源申请参数,为微服务标识对应的微服务分配相应的资源。
51.在一个实施例中,管理服务器所接入的可供微服务申请资源的平台包括但不限于是yard(微信内部云资源管理与调度系统)、stke(公司内的上云容器平台,基于腾讯云容器服务(tencent kubernetes engine,tke)实现,原生kubernetes技术,提供容器服务)与devnet(腾讯内部开发网络,与其他网络有网络隔离)开发机。
52.在一个实施例中,管理服务器上所部署的xnode架构提供了自动化的资源申请能力,能够在目标平台上为微服务申请资源,免去人工填写与人工提单的过程,从而减少了资源申请时间。针对yard环境,xnode架构提供自动化执行命令,分析协议与入参,并封装流程,以通过一键执行实现资源的自动申请。针对stke环境,由stke开放接口,xnode架构提供执行脚本,以通过一键执行实现资源的自动申请。
53.上述实施例中,基于终端发送的第一资源申请请求自动生成第二资源申请参数,而无需人工填写第二资源申请参数,并触发用于指示目标平台为微服务分配资源的第二资源申请请求,以针对微服务实现资源的自动申请,从而能够提高资源申请效率,以便于在基于所申请的资源进行微服务部署时,能够提高微服务的部署效率,进而能够提高微服务的处理效率。
54.在一个实施例中,上述微服务管理方法还包括:接收终端发送的服务部署请求;服务部署请求携带有微服务标识与目标平台标识;确定与微服务标识相关联的仓库标识;生成携带微服务标识与仓库标识的服务部署指令;将服务部署指令发送至目标平台标识所关联的部署服务器;服务部署指令用于指示部署服务器,根据仓库标识对应的远程仓库在目标平台标识对应的目标平台上部署微服务标识对应的微服务。
55.其中,服务部署请求是触发服务部署操作的请求,用于指示管理服务器在目标平台上部署微服务。仓库标识用于唯一标识远程仓库,远程仓库也即是指git(工蜂)仓库。微服务所关联的远程仓库中存储有该微服务运行所需的代码数据。服务部署指令用于指示部署服务器基于微服务所关联的远程仓库,在目标平台上部署该微服务。
56.具体地,终端根据用户触发的服务部署操作,确定待部署的微服务与待部署该微
服务的目标平台,以及触发生成携带该微服务对应的微服务标识与该目标平台对应的目标平台标识的服务部署请求,并将所生成的服务部署请求发送至管理服务器。管理服务器根据服务部署请求所指定的微服务标识,查询与该微服务标识相关联的仓库标识,并生成携带该微服务标识与仓库标识的服务部署指令。管理服务器根据服务部署请求所指定的目标平台标识,确定与相应目标平台相关联的部署服务器,并将所生成的服务部署指令发送至该部署服务器。部署服务器基于服务部署指令所指定的仓库标识,从相应远程仓库中拉取微服务运行所基于的代码数据,并通过目标平台标识对应的目标平台运行该代码数据,以在该目标平台上实现微服务标识对应的微服务的部署。
57.在一个实施例中,管理服务器基于服务部署请求在目标平台上部署微服务之前,已根据该微服务对应的第一资源申请请求,预先在该目标平台上为该微服务申请相应的资源。管理服务器针对每个平台预先配置并关联相应的部署服务器,以便于调用部署服务器在相应平台上部署微服务。
58.在一个实施例中,部署服务器提供了ci/cd(ci是指持续集成,cd是指持续交付和/或持续部署)能力,以便于管理服务器通过调用部署服务器实现微服务在相应目标平台上的一键部署。
59.在一个实施例中,部署服务器是基于蓝盾流水线、jenkins(一款开源自动化服务器,用于自动化连续集成和交付软件所涉及的重复技术任务)或orange-ci实现的。以蓝盾流水线为例,部署服务器用于实现蓝盾流水线的功能。devnet主要负责开发联调,需要能快速部署,实现自动化流程,由此,xnode架构通过蓝盾流水线模版,提供将微服务一键部署到devnet网络下的能力。yard是应用最普遍的运维环境,这里主要部署测试、预发布和正式的微服务,xnode架构通过提供自定义执行脚本,生成配置文件,并接入蓝盾流水线,以通过蓝盾流水线对接微信变更系统,自动选择模块和填写变更,以实现服务自动化提单,免去人工填写操作,从而能够提高服务部署效率。针对stke环境,xnode架构提供对应的基础镜像,对接stke开放api(application programming interface,应用程序接口)接口,并接入蓝盾流水线,以通过蓝盾流水线基于stke开放的api接口将微服务一键部署至stke。可以理解,针对devnet、yard与stke等平台分别配置并关联相应的蓝盾流水线,以便于xnode架构调用相应的蓝盾流水线将微服务自动化部署至相应平台。
60.在一个实施例中,本技术提供的xnode架构与yard做了比较好的部署继承,解决了不同网络间的通信问题与权限控制问题,减少了xnode开发人员重复性的环境搭建和服务部署时间,提升了效率。
61.在一个实施例中,xnode架构针对微服务提供的自动化部署流程,依靠蓝盾流水线能力来实现,并根据微服务是否已部署的状态,执行不同的初始化流程,并部署不同的服务文本。若目标平台上尚未部署当前待部署的微服务,则按照上述部署流程将该微服务部署至相应目标平台上。若目标平台上已部署有微服务,则根据终端针对该微服务触发并发送的服务更新请求,调用蓝盾流水线在相应目标平台上更新该微服务,以实现该微服务的重新部署。其中,在基于服务更新请求更新目标平台上的微服务的过程中,通过蓝盾流水线从该微服务所关联的远程仓库中重新拉取代码数据,删除目标平台上针对该微服务当前运行的代码数据,并通过运行该重新拉取的代码数据来实现微服务的更新。
62.在一个实施例中,管理服务器在调用部署服务器将微服务部署至相应目标平台
后,对当前所部署的微服务进行验证,并在验证通过后,向用户反馈相应的通知信息,具体可利用企业微信通知能力向用户反馈的通知信息。
63.在一个实施例中,管理服务器提供统一的域名接入,在根据服务部署请求将微服务成功部署至相应目标平台后,会自动为该微服务配置通用的域名,这样,用户无需关注域名注册,且通过通用的域名实现各个微服务的统一接入。
64.上述实施例中,基于部署服务器实现微服务在目标平台上的自动化部署,能够提高服务部署效率,从而能够提高微服务的处理效率。
65.在一个实施例中,上述微服务管理方法还包括:接收终端发送的仓库构建请求;仓库构建请求携带有微服务标识与微服务标识对应的服务信息;根据服务信息与预配置的模板仓库,构建与服务信息所对应的微服务标识相关联的远程仓库。
66.其中,仓库构建请求是用于触发仓库构建操作的请求,用于指示管理服务器构建微服务所关联的远程仓库。模板仓库是用于构建微服务所关联的远程仓库的通用模板,具体可包括构建远程仓库所需的通用代码数据。服务信息是指微服务对应的配置信息,具体可包括但不限于是微服务对应的数据库配置、鉴权配置与基本服务配置等,基本服务配置比如请求限制条件,请求限制条件比如每个时间窗口内的请求量额度。
67.具体地,终端根据用户触发的仓库构建操作,确定待构建远程仓库的微服务标识,以及构建远程仓库所需的服务信息,并生成携带该微服务标识与相应服务信息的仓库构建请求,进而将所生成的仓库构建请求发送至管理服务器。管理服务器根据仓库构建请求所指定的微服务标识与相应服务信息,以及预配置的模板仓库构建相应的远程仓库,并将所构建的远程仓库与该微服务标识进行关联,以针对微服务完成远程仓库的构建,以便于基于微服务标识能够快速定位所关联的远程仓库。
68.在一个实施例中,管理服务器根据仓库构建请求所指定的服务信息,生成微服务对应的配置文件,并基于微服务标识替换模板仓库中的服务名,得到针对该微服务构建的远程仓库。这样,远程仓库中包括由模板仓库指定的通用代码数据,以及配置文件对应的代码数据。其中,配置文本具体可以server.json文件的形式存储于远程仓库中。
69.在一个实施例中,仓库构建请求中还携带有与微服务标识相关联的远程仓库所对应的网络地址,比如url(uniform resource locator,统一资源定位器)。管理服务器将针对微服务构建的远程仓库,按照仓库构建请求所指定的网络地址进行存储,以便于基于该网络地址能够快速定位相应的远程仓库。仓库构建请求中还可携带有其他构建远程仓库所需的额外信息,在此不作具体限定。
70.在一个实施例中,管理服务器接收终端发送的仓库更新请求,并根据该仓库更新请求更新相应的远程仓库,以便于在基于服务更新请求更新相应微服务时,能够基于该更新后的远程仓库实现相应微服务的更新。
71.在一个实施例中,管理服务器调用部署服务器,根据仓库构建请求所指定的相关信息构建微服务所关联的远程仓库。
72.图3为一个实施例中在目标平台上部署微服务的原理示意图。如图3所示,在完整的微服务部署流程中涉及用户角色与平台角色共两种角色,其中,平台角色表征本技术所涉及的xnode架构,用户角色表征基于该xnode架构进行微服务开发与部署的用户。用户在部署微服务之前,首先会判断是否已构建仓库,也即是判断是否已构建微服务所关联的远
程仓库,在判定已构建仓库时,则通过终端向xnode架构发送服务部署请求,以指示xnode架构实现微服务的一键部署,在判定尚未构建仓库时,则通过终端向xnode架构发送仓库构建请求,以指示xnode架构实现远程仓库的一键创建,也即是根据仓库构建请求一键创建仓库,并在仓库创建成功后,请求xnode架构基于所创建的远程仓库实现微服务的一键部署。
73.相应地,xnode架构根据所接收到的服务部署请求触发ci/cd流程,以实现微服务的自动化部署,且在接收到服务部署请求后,首先会判断相应微服务是否已部署,在判定微服务已部署时,则会针对该微服务触发重新部署流程,也即是在相应目标平台上更新该微服务,在判定微服务尚未部署时,则会针对该微服务触发在目标平台上的首次部署流程。在微服务的更新流程或首次部署流程执行完毕时,触发企业微信通知,以便于用户通过终端向xnode架构请求平台站内验证。
74.上述实施例中,根据仓库构建请求与配置的模板仓库,构建微服务所关联的远程仓库,以便于基于所构建的远程仓库实现微服务的快速部署。
75.在一个实施例中,上述微服务管理方法还包括:接收终端发送的接口生成请求;接口生成请求携带有微服务标识;根据微服务标识查询相应的数据模型与模型关系;根据数据模型与模型关系,按照预配置的接口协议生成微服务标识对应的接口。
76.其中,接口生成请求是用于触发接口生成操作的请求,用于指示管理服务器自动生成微服务对应的接口,也即生成微服务对应的自动化接口,数据模型是指微服务对应的数据库中的数据表,模型关系是指数据表之间的关系。接口协议是指接口所支持的协议,具体可自定义,包括但不限于是restful协议(一种网络应用程序的设计风格和开发方式)、自定义协议、odata协议(开放数据协议,一个查询和更新数据的web协议)与json schema(一种json数据格式/模式)。
77.具体地,终端根据用户触发的接口生成操作,确定待生成接口的微服务标识,并生成携带该微服务标识的接口生成请求,进而将该接口生成请求发送至管理服务器。管理服务器根据接口生成请求所指定的微服务标识,查询相应的数据模型与模型关系,解析所查询到的数据模型与模型关系,并根据解析后的数据模型与模型关系,按照预配置的接口协议自动生成微服务标识所对应的接口,以便于其他计算机设备通过该接口请求相应微服务所提供的服务。
78.在一个实施例中,管理服务器基于接口生成请求自动生成的接口,是dao接口(data access object,数据访问对象,是一个面向对象的数据库接口),具体可以是crud(增加(create)、读取(read)、更新(update)、删除(delete))接口,用于在后续做计算处理时,通过接口请求相应微服务执行增读改删的操作。管理服务器基于微服务对应的数据模型与模型关系自动生成的接口,是在针对该微服务的实际业务请求过程中,基于该接口能够访问到该微服务对应的数据库,以及相应数据表的接口。
79.在一个实施例中,管理服务器上所部署的xnode架构集成了自定义接口能力、接口版本管理能力、接口热更新能力、自动化生成接口能力与第三方自动化接口能力等辅助能力,能够帮助开发者快速完成微服务的逻辑开发与上线,降低了错误率。其中,在接口层面提供插槽,第三方服务可以自动化生成接口。通过xnode架构能够方便的自定义接口,具体地,用户通过终端访问xnode架构对应的管理平台,并通过管理平台的webide(在线集成开发环境)编写接口代码,以便于xnode架构基于该接口代码生成相应的自定义接口,并将该
接口代码以接口代码数据的形式保存在接口数据库中。xnode架构对第三方自动化的接口提供支持,第三方自动化接口需要按照预设的接口协议暴露为js模块,这样,xnode架构即可实现第三方自定义接口的正确调用。管理服务器还提供接口版本管理能力,针对每个接口配置并存储有相应的版本号,以基于版本号实现接口的更新与回退等功能。
80.在一个实施例中,xnode架构提供serverless能力,使得接口开发和测试更加方便快捷。
81.上述实施例中,基于接口生成请求自动获取微服务对应的数据模型与模型关系,并基于数据模型与模型关系自动生成支持预设接口协议的接口,以便于其他计算机设备通过该接口方便的访问相应微服务。
82.在一个实施例中,上述微服务管理方法还包括:接收目标微服务对应的业务请求;当目标微服务当前对应的请求量信息满足预配置的请求量额度时,将业务请求路由至目标微服务;当请求量信息不满足请求量额度时,拒绝业务请求。
83.其中,业务请求是指用于触发业务操作的请求,用于指示微服务通过响应该业务请求实现相应的业务功能。请求量信息是用于描述请求量的信息,具体可用于表征当前时间窗口内的请求量,或者,当前的请求频率。请求量额度是指单个时间窗口内所允许响应或处理的业务请求的最大数量,或者,所运行响应的业务请求的最大频率。时间窗口是指具有固定时间长度的时间区间或范围,比如以当前时间为结束时间点、且时间长度为固定时间长度的时间区间。
84.具体地,管理服务器接收终端针对目标微服务发送的业务请求,基于所接收到的业务请求获取该目标微服务当前对应的请求量信息,并将所获取到的请求量信息与针对该目标微服务预配置的请求量额度进行比较。当判定目标微服务当前对应的请求量信息满足预配置的请求量额度时,也是即当判定当前所获取到的请求量信息小于请求量额度时,管理服务器则将所接收到的业务请求路由至该目标微服务,以通过该目标微服务响应该业务请求。当判定目标微服务当前对应请求量信息不满足请求量额度时,也即是在判定所获取到的请求量信息大于或等于请求量额度时,则直接拒绝该业务请求,而不会再将该业务请求路由至目标微服务进行响应。
85.在一个实施例中,xnode架构提供路由中心服务,用于根据运维环境做服务换发,也即是用于对各微服务对应的业务请求进行统一的路由与转发,还会针对业务请求提供快速的拒绝、限频、熔断与重试机制。可以理解,xnode架构针对每个微服务对应的业务请求分别提供拒绝、限频、熔断与重试机制,具体还可以针对每个微服务的每个接口所对应的业务请求,分别提供拒绝、限频、熔断与重试机制。以拒绝业务请求为例,当判定当前的请求量大于或等于请求量阈值时,则拒绝当前的业务请求,以限频为例,当判定当前的请求频率大于或等于请求频率阈值时,则拒绝当前的业务请求,以达到限频的作用,以重试机制为例,在当前业务请求路由失败时,会再次将尝试将该业务请求路由至相应目标微服务,以保证业务请求的正常响应。
86.在一个实施例中,xnode架构提供的路由中心服务,是用于服务注册发现的模块。xnode架构的业务请求会统一到达路由中心服务,路由中心服务根据各个微服务对应的服务注册数据,将所接收到的业务请求转发到相应目标微服务真实运行的ip(internet protocol,网际互连协议)和端口中。
87.在一个实施例中,xnode架构按照微服务与接口两个维度分别设置访问权限,并提供统一的权限认证,也即是由xnode架构在接收到业务请求时自动完成权限认证,并在权限认证通过时,将业务请求路由至相应目标微服务。可以理解,xnode架构内置了登录态控制,以实现权限的自动认证。
88.上述实施例中,基于待访问的目标微服务当前对应的请求量信息与预配置的请求量额度,判断是否响应相应业务请求,并在判定响应该业务请求时,实现业务请求的统一路由,由此,基于子路由寻址解决了服务周边工作,提高了服务上线速率,从而能够提高微服务的处理效率。
89.在一个实施例中,上述微服务管理方法还包括:生成携带微服务标识的注册请求;将注册请求发送至监控平台;发送的注册请求用于指示监控平台注册微服务标识对应的微服务,并基于微服务上报的运行数据监控微服务的运行状态。
90.其中,注册请求是用于触发注册操作的请求,用于指示监控平台对微服务进行注册,以便于通过监控平台对已注册的微服务进行监控。微服务上报的运行数据包括但不限于是该微服务对应的接口反应时间、接口调用频率与服务稳定性等。微服务的运行状态包括但不限于是运行正常与运行异常。
91.具体地,管理服务器在根据终端发送的服务部署请求,在目标平台上完成微服务的部署后,自动触发生成携带该微服务对应的微服务标识的注册请求,并将所生成的注册请求发送至监控平台。监控平台根据所接收到的注册请求,对该注册请求所指定的微服务进行注册,并在注册完成后接收该微服务主动采集并上报的运行数据,对每个微服务所上报的运行数据分别进行统计分析,以根据分析结果确定相应微服务的运行状态,并在判定微服务运行异常时,针对该运行异常的微服务触发相应的监控告警。可以理解,监控平台具体可以是基于sdk(软件开发工具包)实现的。
92.在一个实施例中,xnode架构提供本地日志与远端日志等日志接入能力。远端日志接入微信自研日志系统,并由该微信自研日志系统提供日志查看能力。本地日志存在在部署有相应微服务的平台或服务器上,本地日志可作为备份进行存储,并提供日志查看能力。
93.上述实施例中,实现微服务在监控平台的自动注册,能够降低监控的注册时间,提高监控效率,而通过接入统一的监控平台对各个微服务进行统一监控,以便于在监控到微服务运行异常时及时触发监控告警,能够保证服务的安全性和稳定性。
94.在一个实施例中,xnode架构支持私有化部署。若存在业务的网络限制与安全限制等因素,用户可基于该xnode架构对应的xnode应用包,方便快捷的将该xnode架构私有化到自己的服务器上。针对xnode架构的私有化部署,通过以下能力,能够确保xnode架构的私有化部署的便利性,以及私有化部署后的xnode架构的高可用性。其中以下能力包括:将xnode架构对应的核心服务进行打包得到相应的xnode应用包,通过在私有化的服务器上部署并运行该xnode应用包,能够实现xnode架构的一键移植与部署;将私有化的xnode架构部署在由多个服务器组成的服务器集群上,以实现多机寻址,并通过动态获取服务器集群中的各个服务器的健康状态,以实现私有化部署的xnode架构的高可用性;xnode架构接入clb(负载均衡)平台,用于提供服务器集群中各个服务器上的负载均衡与健康检测,进一步保证私有化部署的xnode架构的高可用性。
95.可以理解,私有化部署的xnode架构,与本技术提供的面对多用户的xnode架构,具
有同样的产品能力,并可以独立部署域名,提供私有化的管理平台,而且部署环境无关化,可以运行在用户自己的服务器上、且与任何云服务平台环境无关。这样,该xnode架构在任何计算机设备上都可移植,且不需要依赖云等外部资源。
96.图4为一个实施例中xnode架构的产品侧能力示意图。如图4所示,该xnode架构主要提供资源申请、部署、平台集成、日志与安全、权限与路由,以及私有化部署等能力。资源申请能力是指xnode架构能够在yard、stke与devnet开发机等平台上,自动化申请微服务所需的资源。部署能力是指xnode架构会针对每个服务(也即微服务)构建一个git仓库,并通过蓝盾基于微服务对应的git仓库,在yard、stke与devnet开发机等平台上部署相应的微服务。平台集成能力是指xnode架构集成了自定义接口、接口版本管理、接口热更新、自动生成dao接口与第三方自动化接口的能力。日志与安全能力是指xnode架构提供本地日志与远端日志接入能力,还针对微服务提供监控告警能力。权限与路由能力是指xnode架构针对各微服务提供统一域名,以及统一的路由中心与权限校验的能力。私有化部署能力是指xnode架构支持私有化部署,且针对私有化部署的xnode架构提供独立域名、独立路由、独立蓝盾流水线与私有化管理平台,且私有化部署的xnode架构实现了部署环境无关化。
97.可以理解,xnode架构提供了从资源申请到服务上线的一整套产品能力,在用户无感知的情况下,整合了yard、stke与devnet等平台的服务申请部署能力,集成了自定义接口、接口版本管理、接口热更新、自动生成dao接口与第三方自动化接口的能力,提供了多维监控与详细运行日志查看能力,集成了微信自研的监控和日志查看平台,还提供了统一的路由中心服务、权限校验和统一的域名,在此基础上,xnode架构支持私有化部署,拥有xnode架构同样的产品能力并可以独立部署域名,提供私有化的管理平台,部署环境无关化,可以运行在用户自己的服务器上,且与任何云服务平台环境无关。其中,xnode架构中的日志与监控的接入,包括但不限于是微信自研的平台。
98.在一个实施例中,本技术中一个或多个实施例中由xnode架构所提供的能力,具体可以是由部署该xnode架构的管理服务器所提供的能力,相应地,由管理服务器所执行的相关步骤,具体可由部署于该管理服务器上的xnode架构来执行。
99.如图5所示,在一个实施例中,提供了一种微服务管理方法,该方法具体包括以下步骤:
100.步骤502,接收终端发送的第一资源申请请求;第一资源申请请求携带有微服务标识、目标平台标识与第一资源申请参数。
101.步骤504,根据目标平台标识生成第二资源申请参数。
102.步骤506,根据微服务标识、第一资源申请参数与第二资源申请参数,生成第二资源申请请求。
103.步骤508,将第二资源申请请求发送至目标平台标识对应的目标平台;第二资源申请请求,用于指示目标平台根据第一资源申请参数与第二资源申请参数,为微服务标识分配相应的资源。
104.步骤510,接收终端发送的仓库构建请求;仓库构建请求携带有微服务标识与微服务标识对应的服务信息。
105.步骤512,根据服务信息与预配置的模板仓库,构建与服务信息所对应的微服务标识相关联的远程仓库。
106.步骤514,接收终端发送的服务部署请求;服务部署请求携带有微服务标识与目标平台标识。
107.步骤516,确定与微服务标识相关联的仓库标识。
108.步骤518,生成携带微服务标识与仓库标识的服务部署指令。
109.步骤520,将服务部署指令发送至目标平台标识所关联的部署服务器;服务部署指令用于指示部署服务器,根据仓库标识对应的远程仓库在目标平台标识对应的目标平台上部署微服务标识对应的微服务。
110.步骤522,接收终端发送的接口生成请求;接口生成请求携带有微服务标识。
111.步骤524,根据微服务标识查询相应的数据模型与模型关系。
112.步骤526,根据数据模型与模型关系,按照预配置的接口协议生成微服务标识对应的接口。
113.步骤528,获取微服务的接口当前对应的运行版本与生效版本;生效版本是基于终端发送的运行版本更新请求确定的待运行版本。
114.步骤530,当运行版本与生效版本不一致时,获取生效版本对应的接口代码数据。
115.步骤532,在保持微服务的在线状态的情况下,运行接口代码数据以更新接口。
116.上述实施例中,通过资源的自动化申请、远程仓库的一键创建、服务的一键部署、接口的自动化生成,以及保证服务常驻的情况下实现接口热更新等流程,实现了从资源申请到服务上线的整套能力,也即是实现了微服务管理的整套流程,能够让使用者彻底摆脱运维层的各种问题,业务无需关心,且没有学习门槛,而且通过该种方式部署的微服务更加轻量化,启动更加迅速,由此,能够提高微服务的处理效率。
117.应该理解的是,虽然图2与图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2与图5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
118.在一个实施例中,如图6所示,提供了一种微服务管理装置600,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:获取模块601、判定模块602和更新模块603,其中:
119.获取模块601,用于获取微服务的接口当前对应的运行版本与生效版本;生效版本是基于终端发送的运行版本更新请求确定的待运行版本;
120.判定模块602,用于当运行版本与生效版本不一致时,获取生效版本对应的接口代码数据;
121.更新模块603,用于在保持微服务的在线状态的情况下,运行接口代码数据以更新接口。
122.在一个实施例中,上述微服务管理装置600,还包括:资源申请模块;
123.资源申请模块,用于接收终端发送的第一资源申请请求;第一资源申请请求携带有微服务标识、目标平台标识与第一资源申请参数;根据目标平台标识生成第二资源申请
参数;根据微服务标识、第一资源申请参数与第二资源申请参数,生成第二资源申请请求;将第二资源申请请求发送至目标平台标识对应的目标平台;第二资源申请请求,用于指示目标平台根据第一资源申请参数与第二资源申请参数,为微服务标识分配相应的资源。
124.在一个实施例中,上述微服务管理装置600,还包括:服务部署模块;
125.服务部署模块,用于接收终端发送的服务部署请求;服务部署请求携带有微服务标识与目标平台标识;确定与微服务标识相关联的仓库标识;生成携带微服务标识与仓库标识的服务部署指令;将服务部署指令发送至目标平台标识所关联的部署服务器;服务部署指令用于指示部署服务器,根据仓库标识对应的远程仓库在目标平台标识对应的目标平台上部署微服务标识对应的微服务。
126.在一个实施例中,上述微服务管理装置600,还包括:仓库创建模块;
127.仓库创建模块,用于接收终端发送的仓库构建请求;仓库构建请求携带有微服务标识与微服务标识对应的服务信息;根据服务信息与预配置的模板仓库,构建与服务信息所对应的微服务标识相关联的远程仓库。
128.在一个实施例中,上述微服务管理装置600,还包括:接口生成模块;
129.接口生成模块,用于接收终端发送的接口生成请求;接口生成请求携带有微服务标识;根据微服务标识查询相应的数据模型与模型关系;根据数据模型与模型关系,按照预配置的接口协议生成微服务标识对应的接口。
130.在一个实施例中,上述微服务管理装置600,还包括:路由模块;
131.路由模块,用于接收目标微服务对应的业务请求;当目标微服务当前对应的请求量信息满足预配置的请求量额度时,将业务请求路由至目标微服务;当请求量信息不满足请求量额度时,拒绝业务请求。
132.在一个实施例中,上述微服务管理装置600,还包括:监控模块;
133.监控模块,用于生成携带微服务标识的注册请求;将注册请求发送至监控平台;发送的注册请求用于指示监控平台注册微服务标识对应的微服务,并基于微服务上报的运行数据监控微服务的运行状态。
134.关于微服务管理装置的具体限定可以参见上文中对于微服务管理方法的限定,在此不再赘述。上述微服务管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
135.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储微服务的接口对应的各个版本的接口代码数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种微服务管理方法。
136.本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备
可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
137.在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
138.在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
139.在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
140.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
141.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
142.以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献