一种微服务监控方法及系统与流程

文档序号:17896256发布日期:2019-06-13 16:00阅读:171来源:国知局
一种微服务监控方法及系统与流程

本发明涉及微服务技术领域,特别涉及一种微服务监控方法及系统。



背景技术:

微服务是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制(通常是http资源api)进行通信。这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。微服务本质上是分布式应用,通常它们都运行在一个集群之上,集群中带有服务实例。

由于微服务运行个体多、部署方式多样,问题点会出现在各处,对服务状态的监控就变得十分困难。现有技术在微服务监控系统中,对于新增的服务实例,通常需要同时对该服务实例进行部署监控程序,通过监控程序定时收集监控数据,上传监控中心,以此实现监控的目的。

然而,现有技术的微服务监控系统存在有以下几个缺陷:

1、配置复杂、服务监控无法自动化:新增服务实例、下线服务实例,都要通过配置、启动或者销毁监控程序,无法自动感知;

2、占用资源、时效性差:配置程序是一个单独的进程,占用一定机器资源,且采取定时上报机制,导致不能获取到微服务的最新服务状态,存在时间差。



技术实现要素:

本发明旨在至少解决现有技术或相关技术中存在的技术问题之一,为此本发明提供一种微服务监控方法及系统。

本发明实施例提供的具体技术方案如下:

第一方面,提供了一种微服务监控方法,所述方法包括:

服务注册中心对微服务的服务实例进行注册;

监控中心发送状态获取请求至服务网关;

所述服务网关接收所述状态获取请求,并从所述服务注册中心获取所述状态获取请求指示的服务实例的注册记录;

所述服务网关根据所述注册记录,查询所述指示的服务实例的服务状态,并将服务状态查询结果发送至所述监控中心;

所述监控中心接收所述服务状态查询结果并进行相应处理。

进一步地,所述服务注册中心对微服务的服务实例进行注册步骤之后,所述方法还包括:

所述服务注册中心与所述服务实例使用心跳机制保持通信,若通信中断时间超过预设时间,则所述服务注册中心注销所述服务实例。

进一步地,所述服务网关根据所述注册记录,查询所述指示的服务实例的服务状态包括:

从所述注册记录中获取所述指示的服务实例的网络地址;

根据所述网络地址,向所述指示的服务实例发送服务状态的查询请求,并接收所述指示的服务实例返回的服务状态查询结果。

进一步地,所述服务状态包括cpu使用率、内存使用率、磁盘读写、网络连接状态、heapsize信息和heapusedsize信息的一种或多种。

进一步地,所述相应处理包括:

对所述服务状态查询结果进行存储;和/或

将所述服务状态查询结果进行页面展示;和/或

根据所述服务状态查询结果,对服务状态异常的服务实例进行告警处理。

第二方面,提供了一种微服务监控系统,所述系统包括服务注册中心、监控中心和服务网关,其中:

所述服务注册中心,用于对微服务的服务实例进行注册;

所述监控中心,用于发送状态获取请求至所述服务网关;

所述服务网关包括:

前处理器,用于接收所述状态获取请求;

查询处理器,用于从所述服务注册中心获取所述状态获取请求指示的服务实例的注册记录,并根据所述注册记录,查询所述指示的服务实例的服务状态;

结果处理器,用于将服务状态查询结果发送至所述监控中心;

所述监控中心,还用于接收所述服务状态查询结果并进行相应处理。

进一步地,所述服务注册中心还用于:

与所述服务实例使用心跳机制保持通信,若通信中断时间超过预设时间,则注销所述服务实例。

进一步地,所述查询处理器包括:

服务处理器,用于从所述注册记录中获取所述指示的服务实例的网络地址;

服务广播插件,用于根据所述网络地址,向所述指示的服务实例发送服务状态的查询请求,并接收所述指示的服务实例返回的服务状态查询结果。

进一步地,所述服务状态包括cpu使用率、内存使用率、磁盘读写、网络连接状态、heapsize信息和heapusedsize信息的一种或多种。

进一步地,所述监控中心具体用于:

对所述服务状态查询结果进行存储;

将所述服务状态查询结果进行页面展示;

根据所述服务状态查询结果,对服务状态异常的服务实例进行告警处理。

本发明实施例提供的技术方案带来的有益效果是:

1、由于微服务的扩容、缩容,无需进行手动配置,通过服务注册中心,能够动态获取微服务的服务实例,实现自动感知服务实例的目的,提升了微服务的监控便利性;

2、传统方式采用定时机制上传服务状态,而本发明实施例中,监控中心可以通过服务网关实时获取服务实例的最新服务状态,时效性高,提升了监控时效性,且无需配置监控程序,不存在资源被监控程序占用问题。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一提供的一种微服务监控方法的流程图;

图2是本发明实施例二提供的一种微服务监控系统的框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。

图1是本发明实施例一提供的一种微服务监控方法的流程图,如图1所示,该方法可以包括步骤:

101、服务注册中心对微服务的服务实例进行注册。

具体的,服务注册中心接收微服务在启动时主动发送的服务实例的注册信息,并根据服务实例的注册信息对服务实例进行注册。

其中,注册信息包括微服务名称、网络地址、端口、若干服务实例等信息。

服务注册中心完成对微服务的服务实例进行注册后,会生成服务实例的注册记录并存储,以方便后续在服务网关对服务实例的注册信息的调取使用。

在一个示例性的实现过程中,在步骤101之后,方法还包括:

服务注册中心与服务实例使用心跳机制保持通信,若通信中断时间超过预设时间,则服务注册中心注销该服务实例。

具体的,微服务启动后,按预设周期时间(可以设定为30秒)地向服务注册中心发送心跳,若服务注册中心在预设时间(可以设定为90秒)内没有接收到该微服务的服务实例的心跳,将会注销该服务实例。

本发明实施例中,通过服务注册中心对微服务的服务实例进行注册,能够提升监控便利性,即对微服务的扩容、缩容,无需进行手动配置,只需通过服务注册中心,能够动态获取微服务的服务实例,实现自动感知服务实例的目的。

102、监控中心发送状态获取请求至服务网关。

本实施例中,状态获取请求可以是http请求,状态获取请求中可以包含有指定的服务实例的网络地址,该指定的服务实例可以是单个服务实例,也可以多个服务实例;此外,当在不指定服务实例的情形下,状态获取请求指示的服务实例则是服务注册中心中已注册过的所有服务实例。

其中,服务网关是利用springcloud+zuul进行配置得到的分布式服务网关。

本发明实施例中,服务网关采用分布式去中心化部署架构,避免了传统方式中通过对服务实例进行部署监控程序,而监控程序可能会出现宕机的情形出现,由此避免了单点问题,满足了高可用性。

103、服务网关接收状态获取请求,并从服务注册中心获取状态获取请求指示的服务实例的注册记录。

其中,服务网关包括前处理器(prefilters)、查询处理器(routefilters)和结果处理器(postfilters)等多个内部组件,查询处理器进一步包括服务广播插件和服务处理器。

具体的,该过程可以包括:

由服务网关中的前处理器接收状态获取请求,对该状态获取请求进行预处理,进一步的,对状态获取请求进行预处理之前,还可以包括前处理器对状态获取请求进行校验的步骤;

由查询处理器中的服务处理器根据负载均衡策略,向服务注册中心请求获取该状态获取请求指示的服务实例的注册记录,并接收服务注册中心返回的该状态获取请求指示的服务实例的注册记录。

需要说明的是,若状态获取请求指示的服务实例是服务注册中心未注册的服务实例时,则服务网关生成请求失败消息以指示状态获取请求指示的服务实例未经注册,并将请求失败信息返回至监控中心。

104、服务网关根据注册记录,查询指示的服务实例的服务状态,并将服务状态查询结果发送至监控中心。

具体的,该过程可以包括:

由查询处理器中的服务广播插件从注册记录中获取指示的服务实例的网络地址,将状态获取请求广播至该状态获取请求指示的服务实例上,并接收指示的服务实例返回的服务状态查询结果;

由服务网关中的结果处理器对服务状态查询结果进行封装处理,并发送至监控中心。

其中,服务状态包括cpu使用率、内存使用率、磁盘读写、网络连接状态、heapsize信息和heapusedsize信息的一种或多种。

105、监控中心接收服务状态查询结果并进行相应处理。

具体的,监控中心对服务状态查询结果进行相应处理,可以包括:

对服务状态查询结果进行存储;和/或

将服务状态查询结果进行页面展示;和/或

根据服务状态查询结果,对服务状态异常的服务实例进行告警处理。

具体的,对服务状态查询结果进行分析,判断服务实例的服务状态存在异常,当服务实例的服务状态存在异常时,通过进行告警处理可以保证及时告知用户,从而能够方便用户及时对服务实例进行处理。

本发明实施例中,监控中心可以通过服务网关中的“服务广播功能”实时获取服务注册中心已注册的指定服务实例或者全部服务实例的服务状态,从而实现实时获取服务实例的最新服务状态的目的,与传统方式采用定时机制上传服务状态相比较而言,能够极大地提升监控时效性。

图2是本发明实施例二提供的一种微服务监控系统的框图,该系统包括服务注册中心21、监控中心22和服务网关23,其中:

服务注册中心21,用于对微服务的服务实例进行注册;

监控中心22,用于发送目标服务实例的状态获取请求至服务网关;

服务网关23包括:

前处理器231,用于接收状态获取请求;

查询处理器232,用于从服务注册中心获取状态获取请求指示的服务实例的注册记录,并根据注册记录,查询指示的服务实例的服务状态;

结果处理器233,用于将目标服务实例的服务状态查询结果发送至监控中心22;

监控中心22,还用于接收服务状态查询结果并进行相应处理。

进一步地,服务注册中心21还用于:

与服务实例使用心跳机制保持通信,若通信中断时间超过预设时间,则注销服务实例。

进一步地,查询处理器232包括:

服务处理器,用于从注册记录中获取指示的服务实例的网络地址;

服务广播插件,用于根据网络地址,向指示的服务实例发送服务状态的查询请求,并接收指示的服务实例返回的服务状态查询结果。

进一步地,服务状态包括cpu使用率、内存使用率、磁盘读写、网络连接状态、heapsize信息和heapusedsize信息的一种或多种。

进一步地,监控中心22具体用于:

对服务状态查询结果进行存储;

将服务状态查询结果进行页面展示;

根据服务状态查询结果,对服务状态异常的服务实例进行告警处理。

需要说明的是:上述实施例提供的微服务监控系统中,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述微服务监控系统与微服务监控方法实施例属于同一构思,其具体实现过程和有益效果详见微服务监控方法实施例,这里不再赘述。

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

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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