CN112559285B - 基于分布式服务架构的微服务监控方法及相关装置 - Google Patents

基于分布式服务架构的微服务监控方法及相关装置 Download PDF

Info

Publication number
CN112559285B
CN112559285B CN202011423928.2A CN202011423928A CN112559285B CN 112559285 B CN112559285 B CN 112559285B CN 202011423928 A CN202011423928 A CN 202011423928A CN 112559285 B CN112559285 B CN 112559285B
Authority
CN
China
Prior art keywords
service
micro
monitoring information
monitoring
service module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011423928.2A
Other languages
English (en)
Other versions
CN112559285A (zh
Inventor
陆文成
王立民
吴昊
王雷
潘晓磊
吕郅强
孟凡亮
刘学成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202011423928.2A priority Critical patent/CN112559285B/zh
Publication of CN112559285A publication Critical patent/CN112559285A/zh
Application granted granted Critical
Publication of CN112559285B publication Critical patent/CN112559285B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Telephonic Communication Services (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了基于分布式服务架构的微服务监控方法和微服务监控系统。本申请提供的技术方案中,对微服务的基础设备和微服务的调用情况进行监控,并将监控到的微服务监控信息解析入库,以及可以查询库中的微服务监控信息。本申请的技术方案,实现了微服务的基础设施和微服务的调用情况的监控,从而有助于及时了解微服务的基础设施的性能,有助于精准的定位微服务的异常。

Description

基于分布式服务架构的微服务监控方法及相关装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种基于分布式服务架构的微服务监控方法及相关装置。
背景技术
随着微服务的兴起,运营商公司大部分功能都采用微服务的设计理念,微服务粒度更细,每种服务只做一件事,是一种松耦合的能够被独立开发和部署的无状态化服务。
目前,运营商公司原有的号卡系统做到了对微服务的全面转变,微服务的灵活性和高可用性让部署更便捷,缩短了交付周期。
然而,在目前的实际运行中,对微服务的监控不完善。
发明内容
本申请实施例提供基于分布式服务架构的微服务监控方法和相关装置,实现了对微服务的基础设施、微服务的调用情况的监控,从而能够及时了解基础设施的性能,精准的定位微服务的异常。
第一方面,本申请提供一种基于分布式服务架构的微服务监控方法,该方法包括:监控服务模块对微服务的基础设施的资源使用情况和所述微服务的调用情况进行监控,得到微服务监控信息,所述微服务监控信息包括以下至少一种信息:采集周期内微服务被调用的次数、所述采集周期内所述微服务被调用成功的次数、所述采集周期内所述微服务被调用失败的次数、所述采集周期内所述微服务的平均响应时间、所述采集周期内所述微服务的基础设备的资源使用情况或所述微服务被调用失败时的异常明细;数据收集服务模块将所述微服务监控信息加入消息队列中;解析服务模块对所述消息队列中的微服务监控信息进行解析,并将解析结果存储至分布式关系型数据库;应用监控查询服务模块根据查询条件从所述分布式关系型数据库中查询所述微服务监控信息。
本方法中,采集、存储并查询微服务的基础设施的相关情况,有助于有效地对微服务的基础设备进行预警;采集、存储并可以查询微服务的调用情况,有助于实现微服务的监控。此外,本申请中采集到微服务监控相关信息之后,存储至分布式关系型数据库,从而可以方便查询微服务的相关信息,从而可以方便异常定位。
结合第一方面,在第一种可能的实现方式中,所述微服务所属的应用程序封装为计算机文件格式JAR包,所述JAR包中包括采集所述微服务监控信息的接口。相应地,所述监控服务模块对微服务的基础设施的资源使用情况和所述微服务的调用情况进行监控,包括:所述监控服务模块创建映射容器;所述监控服务模块通过所述映射容器采集所述微服务监控信息。
本实现方式中,对需要进行的应用引入封装的JAR包,并进行相关的配置,可以使得对微服务进行监控时,对微服务的相关代码做到无侵入。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述解析服务模块对所述消息队列中的微服务监控信息进行解析,并将解析结果存储至分布式关系型数据库,包括:
所述解析服务模块依次从所述任务队列中读取微服务监控信息;所述解析服务模块使用预设的算法,基于预设的拆分字段对读取的微服务监控信息进行解析,得到所述读取的微服务监控信息对应的拆分字段值和对应的分片号;所述解析服务模块将所述拆分字段值存储至所述分布式关系型数据库中与所述分片号对应的存储节点。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述分布式关系型数据库包括N个存储节点,N为大于1的正整数,相应地,所述解析服务模块对所述消息队列中的微服务监控信息进行解析,并将解析结果存储至分布式关系型数据库,包括:所述解析服务模块通过N个子线程依次从所述任务队列中读取微服务监控信息;所述解析服务模块通过所述N个子线程并行执行以下操作:使用预设的算法,基于预设的拆分字段对读取的微服务监控信息进行解析,得到所述读取的微服务监控信息对应的拆分字段值和对应的分片号,将所述拆分字段值存储至所述分布式关系型数据库中与所述分片号对应的存储节点。
结合第一方面或上述任意一种可能的实现方式,在第四种可能的实现方式中,所述方法由微服务监控系统执行,所述微服务监控系统为使用SpingBoot软件开发框架开发得到的系统。
结合第一方面或上述任意一种可能的实现方式,在第五种可能的实现方式中,所述异常明细包括:调用方的互联网IP地址和/或调用方的系统标识,以及异常时间和/或异常堆栈信息。
结合第一方面或上述任意一种可能的实现方式,在第六种可能的实现方式中,所述查询条件包括:微服务名称、调用方的IP地址和/或调用时间段。
第二方面,本申请提供一种基于分布式服务架构的微服务监控系统。该系统包括用于实现第一方面或其中任意一种可能的实现方式所述的方法所需的各个功能模块。
例如,该系统包括监控服务模块、数据收集模块、解析服务器模块和应用监控查询服务模块。
监控服务模块用于对微服务的基础设施的资源使用情况和所述微服务的调用情况进行监控,得到微服务监控信息,所述微服务监控信息包括以下至少一种信息:采集周期内微服务被调用的次数、所述采集周期内所述微服务被调用成功的次数、所述采集周期内所述微服务被调用失败的次数、所述采集周期内所述微服务的平均响应时间、所述采集周期内所述微服务的基础设备的资源使用情况或所述微服务被调用失败时的异常明细。
数据收集服务模块用于将所述微服务监控信息加入消息队列中。
解析服务模块用于对所述消息队列中的微服务监控信息进行解析,并将解析结果存储至分布式关系型数据库。
应用监控查询服务模块用于根据查询条件从所述分布式关系型数据库中查询所述微服务监控信息。
结合第二方面,在第一种可能的实现方式中,所述微服务所属的应用程序封装为计算机文件格式JAR包,所述JAR包中包括采集所述微服务监控信息的接口。
相应地,所述监控服务模块具体用于:所述监控服务模块创建映射容器;所述监控服务模块通过所述映射容器采集所述微服务监控信息。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述解析服务模块具体用于:依次从所述任务队列中读取微服务监控信息;使用预设的算法,基于预设的拆分字段对读取的微服务监控信息进行解析,得到所述读取的微服务监控信息对应的拆分字段值和对应的分片号;将所述拆分字段值存储至所述分布式关系型数据库中与所述分片号对应的存储节点。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述分布式关系型数据库包括N个存储节点,N为大于1的正整数,相应地,所述解析服务模块具体用于:通过N个子线程依次从所述任务队列中读取微服务监控信息;通过所述N个子线程并行执行以下操作:使用预设的算法,基于预设的拆分字段对读取的微服务监控信息进行解析,得到所述读取的微服务监控信息对应的拆分字段值和对应的分片号,将所述拆分字段值存储至所述分布式关系型数据库中与所述分片号对应的存储节点。
结合第二方面或上述任意一种可能的实现方式,在第四种可能的实现方式中,所述方法由微服务监控系统执行,所述微服务监控系统为使用SpingBoot软件开发框架开发得到的系统。
结合第二方面或上述任意一种可能的实现方式,在第五种可能的实现方式中,所述异常明细包括:调用方的互联网IP地址和/或调用方的系统标识,以及异常时间和/或异常堆栈信息。
结合第二方面或上述任意一种可能的实现方式,在第六种可能的实现方式中,所述查询条件包括:微服务名称、调用方的IP地址和/或调用时间段。
第三方面,本申请提供一种基于分布式服务架构的微服务监控系统,包括:存储器和处理器;所述存储器用于存储程序指令;所述处理器用于调用所述存储器中的程序指令执行如第一方面或其中任意一种可能的实现方式所述的方法。
第四方面,本申请提供一种计算机可读介质,所述计算机可读介质存储用于计算机执行的程序代码,该程序代码包括用于执行如第一方面或其中任意一种可能的实现方式所述的方法的指令。
附图说明
图1为本申请一个实施例的基于分布式服务架构的微服务监控系统的示意性结构图;
图2为本申请一个实施例的基于分布式服务架构的微服务监控方法的示意性流程图;
图3为本申请又一个实施例的基于分布式服务架构的微服务监控系统的示意性结构图。
具体实施方式
为于理解,首先对本申请所涉及到的相关术语进行说明。
1、微服务
微服务是一种用于构建应用的架构方案。微服务架构有别于更为传统的单体式方案,可将应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作(和出现故障)时不会相互影响。
2、分布式数据库
分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。
相对于集中式数据库而言,分布式数据库的数据存放在网络中的两个以上的节点上,每一节点都有独立处理能力,节点间可以通过网络通讯传送数据,以协同完成跨节点的处理任务。本申请实施例中的数据库的一种示例为分布式关系型数据库。
分布式关系型数据库中,按照特定的算法对拆分字段值进行计算,根据计算结果将数据存储到对应分片。每一个分片有相应的库名节点。本实施例的微服务监控系统中,作为一个示例,可以根据分库键为接口名(INTERFACE_NAME)的哈希(HASH)值进行分库存储。
3、任务队列
任务队列一般指的是一个维持一系列任务的容器,它需要一个用于存放任务的名字、任务的类型、任务所需要的参数、任务本身这些数据的介质,这就是存储介质。不过任务队列不仅仅只是接收任务分派的时候把任务存储起来,它还需要提供一些接口,比如说删除某个待执行的任务、清空队列、查询队列当前的执行情况。
任务队列对线程间通信进行了抽象,限定了线程间只能通过传递任务,而相关的数据及操作则被任务保存。任务队列定义为能够把封装了数据和操作的任务在多线程间传递的线程安全的先入先出的队列。任务队列的作用是将处理时间慢的功能或者网络请求会延迟的功能通过排队的方式执行。
本申请的实施例中的微服务监控系统对分布式关系型数据库中各个节点对应的资源数据进行分析时使用的就是任务队列。
4、SpringBoot
SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。SpringBoot具有以下特性:创建独立的Spring应用;直接嵌入Tomcat、Jetty等Web容器(不需要部署War文件);提供固化的“start”依赖,简化构建配置;当条件满足时自动地装配Spring或第三方类库;提供运维特性,如指标信息、健康检查及外部化配置;绝无代码生成,并不需要可扩展标记语言(extensible markup language,XML)配置。
下面将结合附图对本申请实施例的实施方式进行详细描述。
图1为本申请实施例一种基于分布式服务架构的微服务监控系统的示意图。本申请实施例中的微服务监控系统也可以称为号卡监控系统,或者称为号卡系统。
如图1所示,本申请实施例的微服务监控系统可以包括监控服务、数据收集服务、解析服务、分布式关系型数据库和应用监控查询服务。
监控服务由监控服务模块提供,数据收集服务由数据收集服务模块提供,解析服务由解析服务模块提供,应用监控查询服务可以由应用监控查询服务模块执行。
本实施例中的微服务监控系统可以用于执行图2所示的微服务监控方法。例如,监控服务模块可以执行S201,数据收集服务模块可以执行S202,解析服务模块可以执行S203,应用监控查询服务模块可以执行S204。
监控服务模块可以部署在待监控的微服务的基础设施上。例如,监控工具可以部署在提供号码服务的号码中心、提供卡服务的卡中心、提供国际移动用户识别码(international mobile subscriber identity,IMSI)服务的IPMSI中心中。
监控服务监控微服务的基础设施的资源使用情况、微服务的调用情况等。
微服务的基础设施的使用情况的示例包括:该基础设施的中央处理器(centralprocess unit,CPU)、磁盘和/或内存的使用率。
微服务的调用情况的示例包括:微服务的调用总数、成功数、失败数、平均响应时间、异常明细等。
监控服务可以根据配置的采集时间间隔(或者称为采集周期)将监控到的微服务监控信息发送到数据收集服务。
监控服务可以使用线程安全的映射(Map)容器“ConcurrentHashMap”来存储微服务监控信息。
例如,在JDK 1.7版本中,“ConcurrentHashMap”的数据结构是由一个“Segment”数组和多个“HashEntry”组成,其可以通过锁分离的思路解决多线程的安全问题。
本申请实施例中,可以为微服务的调用量和调用耗时的监控创建线程安全的“ConcurrentMap”容器,该容器的“KEY”可以为接口-方法名-当前分钟数的组合,“VALUE”为调用总数和平均响应时长,总数统计使用线程安全的并发包下的“AtomicLong”做自增,平均响应时长采用“ConcurrentMap”的“replace”操作来保证耗时累加的线程安全性。当达到设置的采集周期时,监控服务会把该周期内统计的所有微服务监控信息都发送到数据收集服务,并清空当前缓存。
在一些实现方式中,基础设施或者微服务一旦出现异常,就可以组装异常明细,直接发送到数据收集服务的消息队列中,并对此接口的异常调用量增加一次。异常明细可以包括:接口请求参数、调用方IP,调用方系统标识、异常时间、异常堆栈信息等。
数据收集服务接收到监控服务发送的微服务监控信息之后,将该微服务监控信息添加至消息队列中。
解析服务对数据收集服务的消息队列中的微服务监控信息进行处理和解析,并将解析结果存储到分布式关系型数据库中。
为了满足大量的数据解析操作,可以对解析服务进行集群配置,并使用多线程对消息队列中的微服务监控信息进行并行处理。其中,线程数量可以根据微服务监控信息的业务量可以进行横向动态扩展。
解析服务模块中的任务队列整体可以由三部分组成,即主线程、线程安全的队列和多个子线程。子线程的个数根据分布式关系型数据库中的节点个数进行配置。每个子线程可以对应一个解析服务,解析服务模块可以包含多个解析服务。
比如,分布式关系型数据库有8个节点,可以设置8个子线程。这8个子线程可以并行地从数据收集服务的消息队列中取任务,然后执行。本实施例中,任务队列需要是线程安全的,才能保证解析任务的唯一性和子线程的并发。
解析服务模块可以向数据收集服务发送消费微服务监控信息的请求消息。响应于该请求消息,数据收集服务向解析服务模块发送微服务监控信息。解析服务模块接收到微服务监控信息之后,主线程可以将该微服务监控信息加入到任务队列中,然后多个子线程从任务队列中取出任务,并并行执行解析任务。
应用监控查询服务可以向数据库发送查询条件,数据库基于该查询条件得到查询结果之后,向应用监控查询服务发送查询结果。
应用监控查询服务可以按接口名称查询、按IP查询或按时间段查询等查询条件向数据库发送查询请求。
应用监控查询服务查询异常明细时可以用异常编码作为查询条件来查询,并支持调用链查询,这样可以清晰的查询到微服务具体在哪一步出现异常问题,从而加快问题定位、问题解决的速度。
应用监控查询服务得到查询结果之后,该查询结果可以按柱状图、线形图或饼状图等图样进行展示。
本实施例的一些实现方式中,微服务监控系统可以使用SpringBoot2.0.4.RELEASE版本进行开发,其中集成了Druid、Jdbc、Redis等开源的组件。
图2为本申请一个实施例的基于分布式服务架构的微服务监控方法的示意性流程图。该方法可以由图1所示的微服务监控系统来执行。如图2所示,该方法可以包括S201、S202、S203和S204。
S201,监控服务模块对微服务的基础设施的资源使用情况和所述微服务的调用情况进行监控,得到微服务监控信息,所述微服务监控信息包括以下至少一种信息:采集周期内微服务被调用的次数、所述采集周期内所述微服务被调用成功的次数、所述采集周期内所述微服务被调用失败的次数、所述采集周期内所述微服务的平均响应时间、所述采集周期内所述微服务的基础设备的资源使用情况或所述微服务被调用失败时的异常明细。
本实施例中,在监控服务模块对微服务的基础设施的资源使用情况和微服务的调用情况进行监控之前,通常需要启动微服务所属的应用。启动微服务所属的应用时,需要在微服务的基础设施上加载该应用对应的程序代码,加载成功表示应用启动成功,加载失败表示应用启动失败。
微服务所属的应用启动成功之后,需要监控微服务的基础设施和微服务的调用情况时,数据收集服务模块可以加载消息队列,解析服务模块可以加载任务队列,监控服务模块可以开始计时采集周期。
外部应用调用微服务时,监控服务模块可以开始对微服务的基础设施的资源使用情况和所述微服务的调用情况进行监控,得到微服务监控信息。
作为一种示例,微服务所属的应用程序可以封装为计算机文件格式JAR包,该JAR包中包括采集所述微服务监控信息的接口。
本实施例中,哪些微服务需要被监控,可以是预先设置好的。可以给需要监控的微服务配置相应的接口。例如,一共有10个微服务,若只需要对其中的6个微服务进行监控,则只需要为这6个微服务分配配置对应的接口即可。
监控服务模块可以周期性地上报微服务监控信息。监控服务模块可以使基于为微服务配置的接口向数据收集服务发送微服务监控信息。其中,微服务监控信息的采样周期可以是基于经验或者需求设置好的。例如,在不出现异常信息的情况下,监控服务模块每隔1分钟或10分钟上报一次采集到的微服务监控信息。
其中,微服务的平均响应时间为微服务接收到web中心和其他中心的外部调用请求到开始执行时的平均时间。微服务的基础设施可以是一个平台、一个系统、一个解决方案,若需自己实现都需要经过需求分析、架构设计、开发、测试、部署上线等步骤。微服务的基础设施的使用情况还包括其运行状态、CPU的使用率、存储空间的使用率、应用运行的服务器、使用的缓存以及消息队列等。所述微服务被调用失败时的异常明细,该异常明细可以是周期性采集的,也可以是微服务一旦出现异常就上报的,异常明细具体包括接口请求参数、调用方的互联网IP地址,调用方系的统标识、异常时间、异常堆栈信息等。
本实施例的一种实现方式中,监控服务模块对微服务的基础设施的资源使用情况和微服务的调用情况进行监控,包括:监控服务模块创建map容器,并通过map容器采集所述微服务监控信息。
在一种实现方式中,监控服务模块可以使用线程安全的映射(Map)容器“ConcurrentHashMap”来存储微服务监控信息。
例如,在JDK 1.7版本中,“ConcurrentHashMap”的数据结构是由一个“Segment”数组和多个“HashEntry”组成,其可以通过锁分离的思路解决多线程的安全问题。
本申请实施例中,可以为微服务的调用量和调用耗时的监控创建线程安全的“ConcurrentMap”容器,该容器的“KEY”可以为接口-方法名-当前分钟数的组合,“VALUE”为调用总数和平均响应时长,总数统计使用线程安全的并发包下的“AtomicLong”做自增,平均响应时长采用“ConcurrentMap”的“replace”操作来保证耗时累加的线程安全性。当达到设置的采集周期时,监控服务会把该周期内统计的所有微服务监控信息都发送到数据收集服务,并清空当前缓存。
S202,数据收集服务模块将所述微服务监控信息加入消息队列中。
S203,解析服务模块对所述消息队列中的微服务监控信息进行解析,并将解析结果存储至分布式关系型数据库。
相对于集中式数据库而言,分布式关系型数据库的数据存放在网络中的两个以上的节点上,每一节点都有独立处理能力,节点间可以通过网络通讯传送数据,以协同完成跨节点的处理任务。这样可以提高应用监控查询服务模块查询微服务监控信息的效率。
在一些实现方式中,解析服务模块对所述消息队列中的微服务监控信息进行解析,并将解析结果存储至分布式关系型数据库,可以包括:解析服务模块依次从所述任务队列中读取微服务监控信息;解析服务模块使用预设的算法,基于预设的拆分字段对读取的微服务监控信息进行解析,得到所述读取的微服务监控信息对应的拆分字段值和对应的分片号;解析服务模块将所述拆分字段值存储至所述分布式关系型数据库中与所述分片号对应的存储节点。
进一步地,分布式关系型数据库可以包括N个存储节点,N为大于1的正整数。相应地,解析服务模块对所述消息队列中的微服务监控信息进行解析,并将解析结果存储至分布式关系型数据库,可以包括:解析服务模块通过N个子线程依次从所述任务队列中读取微服务监控信息;解析服务模块通过所述N个子线程并行执行以下操作:使用预设的算法,基于预设的拆分字段对读取的微服务监控信息进行解析,得到所述读取的微服务监控信息对应的拆分字段值和对应的分片号,将所述拆分字段值存储至所述分布式关系型数据库中与所述分片号对应的存储节点。
S204,应用监控查询服务模块根据查询条件从所述分布式关系型数据库中查询所述微服务监控信息。
对于存储在分布式关系型数据库里的数据信息,可以按照接口名称、微服务名称、调用方的IP地址、调用时间段等进行查询。
如果查询异常明细,可以用异常编码来查询,并支持调用链查询,可以清晰的查询到微服务具体在哪一步出现问题,从而加快问题定位、解决问题的速度。
本实施例中的方法实现了对系统的基础设施、微服务和应用请求同时进行监控,可以对生产环境基础设施进行预警以及对微服务的调用量、响应时长等进行统计,对异常信息的收集及分析,使开发人员迅速定位生产问题。
本实施例中,应用监控查询服务模块得到查询结果之后,该查询结果可以按柱状图、线形图或饼状图等图样进行展示。
图3为本申请一个实施例提供的微服务监控系统的结构示意图。图3所示的微服务监控装置可以用于执行图2所述的方法。
如图3所示,本实施例的系统300可以包括:存储器301、处理器302、通信接口303以及总线304。其中,存储器301、处理器302、通信接口303通过总线304实现彼此之间的通信连接。
存储器301可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器301可以存储程序,当存储器301中存储的程序被处理器302执行时,处理器302用于执行图2所示的方法的各个步骤。
处理器302可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请方法实施例的推理车道的方法或训练车道推理模型的方法。
处理器302还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请实施例的规划自动驾驶车辆的方法的各个步骤可以通过处理器302中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器302还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器301,处理器302读取存储器301中的信息,结合其硬件完成本申请测温装置包括的单元所需执行的功能,例如,可以执行图2所示实施例的各个步骤/功能。
通信接口303可以使用但不限于收发器一类的收发装置,来实现装置300与其他设备或通信网络之间的通信。
总线304可以包括在装置300各个部件(例如,存储器301、处理器302、通信接口303)之间传送信息的通路。
应理解,本申请实施例所示的装置300可以是电子设备,或者,也可以是配置于电子设备中的芯片。
应理解,本申请实施例中的处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random accessmemory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (9)

1.一种基于分布式服务架构的微服务监控方法,其特征在于,包括:
监控服务模块对微服务的基础设施的资源使用情况和所述微服务的调用情况进行监控,得到微服务监控信息,所述微服务监控信息包括以下至少一种信息:采集周期内微服务被调用的次数、所述采集周期内所述微服务被调用成功的次数、所述采集周期内所述微服务被调用失败的次数、所述采集周期内所述微服务的平均响应时间、所述采集周期内所述微服务的基础设备的资源使用情况或所述微服务被调用失败时的异常明细;
数据收集服务模块将所述微服务监控信息加入消息队列中;
解析服务模块对所述消息队列中的微服务监控信息进行解析,并将解析结果存储至分布式关系型数据库;
应用监控查询服务模块根据查询条件从所述分布式关系型数据库中查询所述微服务监控信息;
所述解析服务模块对所述消息队列中的微服务监控信息进行解析,并将解析结果存储至分布式关系型数据库,包括:
所述解析服务模块依次从所述消息队列中读取微服务监控信息;
所述解析服务模块使用预设的算法,基于预设的拆分字段对读取的微服务监控信息进行解析,得到所述读取的微服务监控信息对应的拆分字段值和对应的分片号;
所述解析服务模块将所述拆分字段值存储至所述分布式关系型数据库中与所述分片号对应的存储节点。
2.根据权利要求1所述的方法,其特征在于,所述微服务所属的应用程序封装为计算机文件格式JAR包,所述JAR包中包括采集所述微服务监控信息的接口;
相应地,所述监控服务模块对微服务的基础设施的资源使用情况和所述微服务的调用情况进行监控,包括:
所述监控服务模块创建映射容器;
所述监控服务模块通过所述映射容器采集所述微服务监控信息。
3.根据权利要求1所述的方法,其特征在于,所述分布式关系型数据库包括N个存储节点,N为大于1的正整数,相应地,所述解析服务模块对所述消息队列中的微服务监控信息进行解析,并将解析结果存储至分布式关系型数据库,包括:
所述解析服务模块通过N个子线程依次从任务队列中读取微服务监控信息;
所述解析服务模块通过所述N个子线程并行执行以下操作:使用预设的算法,基于预设的拆分字段对读取的微服务监控信息进行解析,得到所述读取的微服务监控信息对应的拆分字段值和对应的分片号,将所述拆分字段值存储至所述分布式关系型数据库中与所述分片号对应的存储节点。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法由微服务监控系统执行,所述微服务监控系统为使用SpingBoot软件开发框架开发得到的系统。
5.根据权利要求1所述的方法,其特征在于,所述异常明细包括:调用方的互联网IP地址和/或调用方的系统标识,以及异常时间和/或异常堆栈信息。
6.根据权利要求1所述的方法,其特征在于,所述查询条件包括:微服务名称、调用方的IP地址和/或调用时间段。
7.一种基于分布式服务架构的微服务监控系统,其特征在于,包括用于实现权利要求1至6中任一项所述的方法所需的各个功能模块。
8.一种基于分布式服务架构系统的微服务监控系统,其特征在于,包括:存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如权利要求1至6中任一项所述的方法。
9.一种计算机可读介质,其特征在于,所述计算机可读介质存储用于计算机执行的程序代码,该程序代码包括用于执行如权利要求1至6中任一项所述的方法的指令。
CN202011423928.2A 2020-12-08 2020-12-08 基于分布式服务架构的微服务监控方法及相关装置 Active CN112559285B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011423928.2A CN112559285B (zh) 2020-12-08 2020-12-08 基于分布式服务架构的微服务监控方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011423928.2A CN112559285B (zh) 2020-12-08 2020-12-08 基于分布式服务架构的微服务监控方法及相关装置

Publications (2)

Publication Number Publication Date
CN112559285A CN112559285A (zh) 2021-03-26
CN112559285B true CN112559285B (zh) 2023-05-30

Family

ID=75059638

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011423928.2A Active CN112559285B (zh) 2020-12-08 2020-12-08 基于分布式服务架构的微服务监控方法及相关装置

Country Status (1)

Country Link
CN (1) CN112559285B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114218317B (zh) * 2022-02-18 2022-05-13 苏州浪潮智能科技有限公司 进度信息管控方法、微服务装置、电子设备及存储介质
CN115437888B (zh) * 2022-10-24 2023-03-28 华能信息技术有限公司 一种基于微服务的监控预警方法
CN115914290A (zh) * 2022-11-07 2023-04-04 合众新能源汽车股份有限公司 一种车联网微服务自动化接口监控方法及装置
CN116166505B (zh) * 2023-02-22 2023-09-26 优维科技(深圳)有限公司 金融行业双态it架构的监控平台、方法、存储介质及设备
CN117251337B (zh) * 2023-09-07 2024-05-28 广州宇中网络科技有限公司 微服务健康拨测方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688520A (zh) * 2017-07-18 2018-02-13 北京奥鹏远程教育中心有限公司 分布式业务跟踪系统及方法
CN107766205A (zh) * 2017-10-10 2018-03-06 武汉大学 一种面向微服务调用过程跟踪的监控系统及方法
CN109672741A (zh) * 2018-12-25 2019-04-23 鼎信信息科技有限责任公司 微服务监控方法、装置、计算机设备和存储介质
CN110825356A (zh) * 2019-11-12 2020-02-21 东方电子股份有限公司 一种微服务开发框架及实时监控实现方法
CN111400130A (zh) * 2020-03-06 2020-07-10 平安科技(深圳)有限公司 任务监控方法、装置、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688520A (zh) * 2017-07-18 2018-02-13 北京奥鹏远程教育中心有限公司 分布式业务跟踪系统及方法
CN107766205A (zh) * 2017-10-10 2018-03-06 武汉大学 一种面向微服务调用过程跟踪的监控系统及方法
CN109672741A (zh) * 2018-12-25 2019-04-23 鼎信信息科技有限责任公司 微服务监控方法、装置、计算机设备和存储介质
CN110825356A (zh) * 2019-11-12 2020-02-21 东方电子股份有限公司 一种微服务开发框架及实时监控实现方法
CN111400130A (zh) * 2020-03-06 2020-07-10 平安科技(深圳)有限公司 任务监控方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向大规模集群的自动化监控系统;杨杰 等;《计算机工程与科学》;第42卷(第10期);1801-1806 *

Also Published As

Publication number Publication date
CN112559285A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
CN112559285B (zh) 基于分布式服务架构的微服务监控方法及相关装置
CN112612675B (zh) 微服务架构下的分布式大数据日志链路跟踪方法及系统
US9990385B2 (en) Method and system for collecting and analyzing time-series data
US8601112B1 (en) Method and system for collecting and analyzing time-series data
CN105610987B (zh) 管理服务器集群的方法、应用及系统
US20080065588A1 (en) Selectively Logging Query Data Based On Cost
CN111740868B (zh) 告警数据的处理方法和装置及存储介质
CN112749056A (zh) 应用服务指标监控方法、装置、计算机设备和存储介质
CN106325988A (zh) 任务调度方法及装置
CN112818064A (zh) 多系统数据同步方法、装置、设备及存储介质
CN113452607A (zh) 分布式链路采集的方法、装置、计算设备和存储介质
US11816511B1 (en) Virtual partitioning of a shared message bus
CN111770022B (zh) 基于链路监控的扩容方法、系统、设备及计算机存储介质
CN113284586A (zh) 医疗业务处理方法、装置、设备及存储介质
CN115248826A (zh) 一种大规模分布式图数据库集群运维管理的方法和系统
CN110908910B (zh) 一种基于区块链的测试监控方法、装置及可读存储介质
CN107885634B (zh) 监控中异常信息的处理方法和装置
CN113806169A (zh) 业务异常处理方法及装置
CN106648722A (zh) 基于大数据的Flume接收端数据处理方法和装置
CN116226138B (zh) 一种基于区块链的信息漏洞处理方法及装置
CN108809673A (zh) 一种故障报警的方法及装置
CN110825581A (zh) 一种数据监控方法与监控平台
CN115525392A (zh) 容器监控方法、装置、电子设备及存储介质
CN113259878B (zh) 话单结算方法、系统、电子设备及计算机可读存储介质
CN112749197A (zh) 数据分片刷新方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant