CN115129491B - 微服务请求消息跟踪方法、生成方法、装置、介质及设备 - Google Patents

微服务请求消息跟踪方法、生成方法、装置、介质及设备 Download PDF

Info

Publication number
CN115129491B
CN115129491B CN202210806409.7A CN202210806409A CN115129491B CN 115129491 B CN115129491 B CN 115129491B CN 202210806409 A CN202210806409 A CN 202210806409A CN 115129491 B CN115129491 B CN 115129491B
Authority
CN
China
Prior art keywords
service
micro
call
request
service request
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
CN202210806409.7A
Other languages
English (en)
Other versions
CN115129491A (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.)
Yancheng Tianyanchawei Technology Co ltd
Original Assignee
Yancheng Tianyanchawei Technology 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 Yancheng Tianyanchawei Technology Co ltd filed Critical Yancheng Tianyanchawei Technology Co ltd
Priority to CN202210806409.7A priority Critical patent/CN115129491B/zh
Publication of CN115129491A publication Critical patent/CN115129491A/zh
Application granted granted Critical
Publication of CN115129491B publication Critical patent/CN115129491B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种微服务请求消息跟踪方法、生成方法、装置、介质及设备,涉及计算机技术领域,包括:获取微服务调用端的本地日志中存储的微服务请求调用信息;采集微服务请求调用信息,得到微服务请求消息,并将微服务请求消息以异步传送方式发送至消息队列集群中;响应于消费消息队列集群中微服务请求消息的操作,清洗微服务请求消息;对该微服务请求消息进行解析,得到符合目标数据库格式要求的微服务请求消息,并将其存储至目标数据库中;可视化平台获取并展示目标数据库中的微服务请求消息。本发明避免了直接将微服务请求调用信息上报至服务端集群或消息队列集群导致的程序崩溃问题,也避免了重复及单次上报数据数量过多导致数据丢失的风险。

Description

微服务请求消息跟踪方法、生成方法、装置、介质及设备
技术领域
本发明涉及计算机技术领域,具体地,涉及一种微服务请求消息跟踪方法、生成方法、装置、介质及设备。
背景技术
随着计算机技术的不断发展,后端架构模式逐步从单体架构演变为微服务架构。由于微服务架构是将原有的单体架构根据业务拆分成多个微服务,使得每个微服务拥有自己的进程,不同微服务之间可以相互调用。这种演变有效地提高了开发效率,降低了业务耦合度,但同时也极大地提升了微服务调用链路排查问题的难度。
发明内容
为克服相关技术中存在的问题,本发明提供一种微服务请求消息跟踪方法、生成方法、装置、介质及设备。
根据本发明实施例的第一方面,提供一种微服务请求消息跟踪方法,所述方法包括:获取微服务调用端的本地日志中存储的微服务请求调用信息;
采集所述微服务请求调用信息,得到微服务请求消息,并将所述微服务请求消息以异步传送方式发送至消息队列集群中;
响应于消费所述消息队列集群中的所述微服务请求消息的操作,清洗所述微服务请求消息;
对清洗后的所述微服务请求消息进行解析,得到符合目标数据库的格式要求的微服务请求消息,并将其存储至所述目标数据库中;
可视化平台获取并展示所述目标数据库中的所述微服务请求消息。
根据本发明实施例的第二方面,提供一种微服务请求消息生成方法,所述方法包括:
接收向所述微服务调用端发送的所述微服务调用请求;
基于所述微服务调用请求,分析计算得到所述微服务请求调用信息,并将所述微服务请求调用信息写入所述微服务调用端的本地日志中进行存储。
根据本发明实施例的第三方面,提供一种微服务请求消息跟踪装置,所述装置包括:微服务调用端、消息队列集群、收集器集群、目标数据库和可视化平台;其中,
所述微服务调用端,用于获取微服务调用端的本地日志中存储的微服务请求调用信息,以及采集所述微服务请求调用信息,得到微服务请求消息,并将所述微服务请求消息以异步传送方式发送至消息队列集群中;
所述消息队列集群,用于缓存所述微服务请求消息;
所述收集器集群,用于响应于消费所述消息队列集群中的所述微服务请求消息的操作,清洗所述微服务请求消息,以及对清洗后的所述微服务请求消息进行解析,得到符合目标数据库的格式要求的微服务请求消息,并将其存储至所述目标数据库中;
所述目标数据库,用于存储所述微服务请求消息;
所述可视化平台,用于获取并展示所述目标数据库中的所述微服务请求消息。
根据本发明实施例的第四方面,提供一种用于微服务请求消息跟踪的微服务调用端,所述微服务调用端包括:
前端模块,用于接收向所述微服务调用端发送的所述微服务调用请求;
服务模块,用于基于所述微服务调用请求,分析计算得到所述微服务请求调用信息,并将所述微服务请求调用信息写入所述微服务调用端的本地日志中进行存储。
根据本发明实施例的第五方面,提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明第一方面或者第二方面所述方法的步骤。
根据本发明实施例的第六方面,提供一种电子设备,包括:存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现本发明第一方面或者第二方面所述方法的步骤。
本发明的实施例提供的技术方案可以包括以下有益效果:获取微服务调用端的本地日志中存储的微服务请求调用信息;采集微服务请求调用信息,得到微服务请求消息,并将微服务请求消息以异步传送方式发送至消息队列集群中;响应于消费消息队列集群中的微服务请求消息的操作,清洗微服务请求消息;对清洗后的微服务请求消息进行解析,得到符合目标数据库的格式要求的微服务请求消息,并将其存储至目标数据库中;可视化平台获取并展示目标数据库中的微服务请求消息。通过上述方法,能够通过采集微服务调用端的本地日志中存储的微服务请求调用信息,得到微服务请求消息,并将微服务请求消息以异步传送方式发送至消息队列集群中。也就是说,微服务请求调用信息不是直接上报至服务端集群或消息队列集群的,而是先对微服务请求调用信息进行采集,从而得到微服务请求消息。这样,避免了微服务调用端直接将微服务请求调用信息上报至服务端集群或消息队列集群中可能导致的程序崩溃问题。同时,避免了重复上报以及单次上报的数据数量过多,一定程度上降低了数据丢失的风险。
本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是根据一示例性实施例示出的一种微服务请求消息跟踪方法的流程图;
图2是根据一示例性实施例示出的一种微服务请求消息追踪示意图;
图3是根据一示例性实施例示出的另一种微服务请求消息跟踪方法的流程图;
图4是根据一示例性实施例示出的另一种微服务请求消息跟踪方法的流程图;
图5是根据一示例性实施例示出的另一种微服务请求消息跟踪方法的流程图;
图6是根据一示例性实施例示出的一种微服务请求调用信息写入本地日志的示意图;
图7是根据一示例性实施例示出的一种微服务请求消息生成方法的流程图;
图8是根据一示例性实施例示出的另一种微服务请求消息生成方法的流程图;
图9是根据一示例性实施例示出的一种微服务请求消息跟踪装置的框图;
图10是根据一示例性实施例示出的一种用于微服务请求消息跟踪的微服务调用端的框图;
图11是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
需要说明的是,本发明中所有获取数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
在下文中的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
在本发明的描述中,除非另有说明,“和/或”是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。
在介绍本发明所提供的微服务请求消息跟踪方法、生成方法、装置、介质及设备之前,首先对本发明各个实施例所涉及的应用场景进行介绍。在单体架构中,所有的业务代码都实现在同一应用中,在业务较少的情况下,开发、测试、部署变得十分高效简单。但随着业务不断扩大,需求不断增多,代码会越来越臃肿,系统变得难以维护。随着计算机技术的不断发展,后端架构模式逐步从单体架构演变为微服务架构。由于微服务架构是将原有的单体架构根据业务拆分成多个微服务,使得每个微服务拥有自己的进程,不同微服务之间可以相互调用。这种演变有效地提高了开发效率,降低了业务耦合度,但同时也极大地提升了微服务调用链路排查问题的难度。
相关技术中,一般通过微服务调用端中大量的开源分布式链路追踪组件(如zipkin组件、cat组件、skywalking组件以及pinpoint组件等)来跟踪微服务调用过程,生成相应的微服务调用信息,并将该微服务调用信息直接上报至服务端集群或者消息队列集群中,再由服务端集群将微服务调用信息存储至数据库中,同时服务端集群还可以对数据库中存储的数据进行查询并展示。但是,上述方式中将该微服务调用信息直接上报至服务端集群或者消息队列集群,这无形中降低了业务代码的性能,并且若追踪组件发生崩溃,将会导致业务代码的不可用,同时还会影响上报至服务端集群或者消息队列集群的微服务调用信息,增加了程序崩溃的概率。
还有部分方式中,微服务调用端采用累积一定数量的日志数据(即多次的调用信息)后将该日志数据上报至服务端或消息队列的方式,但这种方式在数据上报的过程中存在因数据过大从而丢失数据的风险。
为了解决上述技术问题,本发明提供一种微服务请求消息跟踪方法、生成方法、装置、介质及设备,能够通过采集微服务调用端的本地日志中存储的微服务请求调用信息,得到微服务请求消息,并将微服务请求消息以异步传送方式发送至消息队列集群中。也就是说,微服务请求调用信息不是直接上报至服务端集群或消息队列集群的,而是先对微服务请求调用信息进行采集,从而得到微服务请求消息。这样,避免了微服务调用端直接将微服务请求调用信息上报至服务端集群或消息队列集群中可能导致的程序崩溃问题。同时,避免了重复上报以及单次上报的数据数量过多,一定程度上降低了数据丢失的风险。
下面结合附图对本发明的具体实施方式进行详细说明。
图1是根据一示例性实施例示出的一种微服务请求消息跟踪方法的流程图,该方法可应用于微服务请求消息跟踪装置,该装置包括:微服务调用端、消息队列集群、收集器集群、目标数据库和可视化平台。如图1所示,该方法可以包括以下步骤:
S101,获取微服务调用端的本地日志中存储的微服务请求调用信息。
其中,该微服务请求调用信息为微服务调用端在接收到微服务调用请求后调用对应的业务服务后生成的,且该微服务请求调用信息存储在该微服务调用端的本地日志中。
S102,采集该微服务请求调用信息,得到微服务请求消息,并将该微服务请求消息以异步传送方式发送至消息队列集群中。
在一些实施例中,该微服务调用端包括数据采集器,可以通过数据采集器采集本地日志中存储的微服务请求调用信息。其中,该数据采集器例如可以是filebeat采集器。同时,数据采集器可以对微服务请求调用消息中的脏数据进行清洗,从而过滤掉不满足消息队列集群处理格式的数据,得到微服务请求消息,并将微服务请求消息以异步传送方式发送至消息队列集群中。这样,能够防止微服务请求调用信息直接上报至消息队列集群中,从而避免影响后续进程和/或占用资源消耗。至此,就完成了生产该微服务请求消息的过程。其中,该消息队列集群例如可以是kafka消息队列、ActiveMQ消息队列、RabbitMQ消息队列、RocketMQ消息队列等,本发明对此不作具体限定。
S103,响应于消费该消息队列集群中的该微服务请求消息的操作,清洗该微服务请求消息。
具体地,将微服务请求消息发送至消息队列集群中后,由消息队列集群将该微服务请求消息进行缓存。并在接收到收集器集群发送的消费该微服务请求消息的请求后,将该微服务请求消息发送至收集器集群,以便收集器集群对该微服务请求消息进行清洗。其中,该收集器集群例如可以是Logstash集群。
S104,对清洗后的该微服务请求消息进行解析,得到符合目标数据库的格式要求的微服务请求消息,并将其存储至该目标数据库中。
进一步地,在收集器集群对该微服务请求消息进行解析后,对清洗后的该微服务请求消息进行解析,以便能够得到符合目标数据库存储格式的微服务请求消息。至此,就完成了消费该微服务请求消息的过程。然后,将解析后的微服务请求消息存储至该目标数据库中。其中,该目标数据库例如可以是elasticsearch数据库。
S105,可视化平台获取并展示该目标数据库中的该微服务请求消息。
在本步骤中,在微服务请求消息存储至目标数据库后,若相关人员需要查看目标数据库中存储的该微服务请求消息,可以通过可视化平台获取并展示目标数据库中存储的该微服务请求消息,进而便于相关人员根据可视化平台展示的微服务请求消息排查调用链路发生的故障。
在本实施例中,将收集器功能和可视化展示功能进行拆分,分为收集器集群和可视化平台,这样有利于功能之间的隔离,避免某一功能组件出现问题扩散影响其他功能组件的正常工作。
图2是根据一示例性实施例示出的一种微服务请求消息追踪示意图。为了便于理解整个微服务请求消息跟踪流程,下面结合图2对微服务请求消息的跟踪流程进行说明。如图2所示,微服务调用端在生成微服务请求调用信息后,将该微服务请求调用信息写入本地日志中,通过数据采集器采集本地日志中存储的微服务请求调用信息,得到微服务请求消息,并将该微服务请求消息以异步传送方式发送至消息队列集群中,完成生产该微服务调用消息的过程。接收到收集器集群发送的消费该微服务请求消息的请求后,将该微服务请求消息发送至收集器集群。收集器集群对该微服务请求消息进行清洗,并对清洗后的该微服务请求消息进行解析,得到符合目标数据库的格式要求的微服务请求消息,完成消费该微服务调用消息的过程。收集器集群将解析后的该微服务请求消息存储至目标数据库中,完成微服务调用消息的存储过程。然后,可视化平台可以获取并展示该目标数据库中存储的该微服务请求消息,完成微服务调用消息的查询。
采用上述方法,能够通过采集微服务调用端的本地日志中存储的微服务请求调用信息,得到微服务请求消息,并将微服务请求消息以异步传送方式发送至消息队列集群中。也就是说,微服务请求调用信息不是直接上报至服务端集群或消息队列集群的,而是先对微服务请求调用信息进行采集,从而得到微服务请求消息。这样,避免了微服务调用端直接将微服务请求调用信息上报至服务端集群或消息队列集群中可能导致的程序崩溃问题。同时,避免了重复上报以及单次上报的数据数量过多,一定程度上降低了数据丢失的风险。
图3是根据一示例性实施例示出的另一种微服务请求消息跟踪方法的流程图,该可视化平台包括多个可视化组件,如图3所示,上述步骤S105中可视化平台获取并展示该目标数据库中的该微服务请求消息可以包括以下步骤:
S1051,获取该目标数据库中的该微服务请求消息。
S1052,响应于用户触发该可视化平台中的该可视化组件的操作,选出目标可视化组件。
在本步骤中,响应于用户触发的该可视化平台中的可视化组件的选择操作,确定目标可视化组件,该目标可视化组件可以是多个可视化组件中的任意一个。
其中,该可视化组件例如可以包括第一可视化组件和第二可视化组件,该第一可视化组件用于获取并展示该微服务请求消息。该第二可视化组件用于获取该微服务请求消息,并对该微服务请求消息进行可视化处理,得到该微服务请求消息中的关键信息,如调用关系、网址链接、调用耗时、http地址等,并对处理后的微服务请求消息中的关键信息进行展示。这样,去除了微服务请求消息中的冗余信息,便于用户能够直观清晰的查看微服务请求消息。也就是说,可以根据不同的需求,选择不同的可视化组件。该第一可视化组件例如可以是kibana可视化组件,其可以用于排查微服务请求消息的详细信息,该第二可视化组件例如可以是web UI可视化组件,其可以快速排查微服务请求消息中的关键消息。
S1053,通过该目标可视化组件展示该微服务请求消息。
在一种可能的实现方式中,若该目标可视化组件为第一可视化组件,第一可视化组件获取并展示该微服务请求消息。也就是说,若用户选择第一可视化组件作为目标可视化组件,那么展示的就是微服务请求消息的原始数据,用户可以看到该微服务请求消息的完整内容,该方式展示的微服务请求消息的完整性较高。
在另一种可能的实现方式中,若该目标可视化组件为第二可视化组件,第二可视化组件获取微服务请求消息之后,对该微服务请求消息进行可视化处理,并将可视化处理后的微服务请求消息进行展示。也就是说,此时用户能够看到的该微服务请求消息中的部分内容,该方式展示的微服务请求消息更加直观,用户能够简洁明了的掌握微服务请求消息中的关键信息。
图4是根据一示例性实施例示出的另一种微服务请求消息跟踪方法的流程图,如图4所示,该方法还可以包括以下步骤:
S106,接收向该微服务调用端发送的该微服务调用请求。
S107,基于该微服务调用请求,分析计算得到该微服务请求调用信息,并将该微服务请求调用信息写入该微服务调用端的本地日志中进行存储。
其中,在微服务调用端接收到该微服务调用请求的情况下,根据该微服务调用信息获取相应的服务,并记录调用该服务的过程,生成相应的微服务请求调用信息,并将该微服务请求调用信息写入本地日志中进行存储。
具体地,如图5所示,步骤S107中基于该微服务调用请求,分析计算得到该微服务请求调用信息,并将该微服务请求调用信息写入该微服务调用端的本地日志中进行存储可以包括以下步骤:
S1071,将该微服务调用请求发送至与该微服务调用请求对应的该微服务调用端的业务服务中。
在一些实施例中,该微服务调用请求所对应的服务仅包含一个业务服务,在这种情况下,仅需将该微服务调用请求发送至与该微服务调用请求对应的该微服务调用端的业务服务中。
在另一些实施例中,该微服务调用请求对应的服务包含业务服务以及与该业务服务具有直接和/或间接调用关系的至少一个关联服务,在这种情况下,需要分别调用业务服务和至少一个关联服务,也即将微服务调用请求发送至业务服务和至少一个关联服务中。
S1072,该业务服务根据该微服务调用请求分析计算该微服务请求调用信息,并将该微服务请求调用信息写入该本地日志中进行存储。
相应地,在该微服务调用请求所对应的服务仅包含一个业务服务的情况下,该业务服务仅需根据该微服务调用请求分析计算该业务服务的调用信息,得到该微服务请求调用信息,并将该微服务请求调用信息写入该本地日志中进行存储。
在该微服务调用请求所对应的服务包含业务服务以及与该业务服务具有直接和/或间接调用关系的至少一个关联服务的情况下,对于该业务服务来说,还需要记录调用至少一个关联服务的调用信息,并根据该微服务调用请求分析计算该业务服务的调用信息以及关联服务的调用信息,得到该微服务请求调用信息,并将该微服务请求调用信息写入该本地日志中进行存储。
下面对上述两种情况进行详细说明。
在一种可能的实现方式中,该微服务调用请求所对应的服务仅包含一个业务服务,上述步骤S1072中该业务服务根据该微服务调用请求分析计算该微服务请求调用信息,并将该微服务请求调用信息写入该本地日志中进行存储包括以下步骤:
S1,该业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与该第一目标微服务调用请求对应链路路径标识。
其中,该第一预设拦截规则例如可以包括预先设置的拦截器需要拦截的预设组件,该预设组件可以是高频使用的组件,该预设组件例如可以包括rcp组件、feign组件、http组件、dubbo组件、mysql组件和redis组件等。概率抽样采样规则例如可以包括对高频调用的服务进行采样。这样,能够对高频调用的服务的调用信息进行记录,有效提高了数据处理的效率,同时减轻数据存储的压力。该预设链路路径标识算法例如可以包括雪花算法,可以通过雪花算法生成该第一目标微服务调用请求对应链路路径标识。
业务服务侧(Server侧)通过第一预设拦截规则和概率抽样采集规则,从微服务调用请求中筛选出第一目标微服务调用请求。这样,能够有效降低业务服务的代码负荷,同时能够提高业务代码的执行效率。同时,触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与该第一目标微服务调用请求对应的链路路径标识。
S2,该业务服务的业务代码侧执行该第一目标微服务调用请求,并触发该业务服务侧记录第一调用终止时间。
在业务服务侧筛选出第一目标微服务调用请求后,业务代码侧执行该第一目标微服务调用请求,并在调用完成后,触发该业务服务侧记录第一调用终止时间。
S3,该业务服务侧根据该调用起始时间和该第一调用终止时间,计算服务调用耗时时间。
S4,将该服务调用耗时时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储。
这样,能够通过第一预设拦截规则和概率抽样采样规则对微服务调用请求进行筛选,得到第一目标微服务调用请求。很大程度上减轻了代码的依赖性,提高了业务代码的执行效率。同时也间接地提高了后续进程(对该微服务请求调用信息进行存储的过程)的处理效率,由于该微服务请求调用信息的格式较为统一,消息队列集群和收集器集群无需进行复杂的数据过程即可将该微服务请求调用信息存储至目标数据库。
在另一种可能的实现方式中,该微服务调用请求所对应的服务包含业务服务以及与该业务服务具有直接和/或间接调用关系的至少一个关联服务,上述步骤S1072中该业务服务根据该微服务调用请求分析计算该微服务请求调用信息,并将该微服务请求调用信息写入该本地日志中进行存储包括以下步骤:
步骤A,该业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与该第一目标微服务调用请求对应链路路径标识。
其中,在该微服务调用端还包括与该业务服务具有直接和/或间接调用关系的至少一个关联服务的情况下,该链路路径标识中还包括与至少一个关联服务的调用路径。
步骤B,该业务服务的业务代码侧执行该第一目标微服务调用请求,并触发该业务服务的业务客户侧按照第二预设拦截规则,筛选出第二目标微服务调用请求并触发记录调用中间时间。
其中,该第二预设拦截规则例如可以包括预先设置的拦截器需要拦截的预设组件,该预设组件可以是高频使用的组件。
在本步骤中,业务代码侧执行该第一目标微服务调用请求,并触发该业务服务的业务客户侧(Client侧)按照第二预设拦截规则,从第一目标微服务调用请求中筛选出第二目标微服务调用请求,并将该第二目标微服务调用请求发送至对应的至少一个关联服务,同时触发记录调用中间时间。
步骤C,该业务客户侧根据该第二目标微服务调用请求,调用该至少一个关联服务,并在调用完成后分别触发该业务客户侧和该业务服务侧对应记录该至少一个关联服务的关联调用终止时间和第二调用终止时间。
其中,业务客户侧根据该第二目标微服务调用请求,将该第二目标微服务调用请求发送至对应的至少一个关联服务,以便调用该至少一个关联服务。并在调用完成后分别触发该业务客户侧记录该至少一个关联服务的关联调用终止时间和该业务服务侧记录第二调用终止时间。
步骤D,该业务客户侧根据该调用中间时间和该关联调用终止时间,计算关联服务调用耗时时间,并将该关联服务调用耗时时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储。
可以理解的,业务客户侧记录的是根据第二目标微服务调用请求调用完成后的调用信息,也即是至少一个关联服务的调用信息,并将至少一个关联服务的调用信息作为该微服务请求调用信息写入本地日志中进行存储。
步骤E,该业务服务侧根据该调用起始时间和该第二调用终止时间,计算服务调用耗时总时间,并将该服务调用耗时总时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储。
可以理解的,业务服务侧记录的是根据第一目标微服务调用请求调用完成后的调用信息,并将该调用信息作为该微服务请求调用信息写入该本地日志中进行存储。
图6是根据一示例性实施例示出的一种微服务请求调用信息写入本地日志的示意图。为了便于理解,下面结合图6对微服务调用端还包括与该业务服务具有直接和/或间接调用关系的至少一个关联服务的情况下,微服务请求调用信息写入本地日志的流程进行说明。如图6所示,前端在向微服务调用端发送该微服务调用请求后,将该微服务调用请求发送至与该微服务调用请求对应的该微服务调用端的业务服务中。然后,业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与该第一目标微服务调用请求对应链路路径标识。其次,该业务服务的业务代码侧执行该第一目标微服务调用请求,并触发该业务服务的业务客户侧按照第二预设拦截规则,筛选出第二目标微服务调用请求并触发记录调用中间时间。之后,该业务客户侧根据该第二目标微服务调用请求,调用该至少一个关联服务,并在调用完成后分别触发该业务客户侧和该业务服务侧对应记录该至少一个关联服务的关联调用终止时间和第二调用终止时间。之后,该业务客户侧根据该调用中间时间和该关联调用终止时间,计算关联服务调用耗时时间,并将该关联服务调用耗时时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储。最后,该业务服务侧根据该调用起始时间和该第二调用终止时间,计算服务调用耗时总时间,并将该服务调用耗时总时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储。
图7是根据一示例性实施例示出的一种微服务请求消息生成方法的流程图,该方法可应用于微服务调用端,如图7所示,该方法可以包括以下步骤:
S201,接收向该微服务调用端发送的该微服务调用请求。
S202,基于该微服务调用请求,分析计算得到该微服务请求调用信息,并将该微服务请求调用信息写入该微服务调用端的本地日志中进行存储。
如图8所示,上述步骤S202中基于该微服务调用请求,分析计算得到该微服务请求调用信息,并将该微服务请求调用信息写入该微服务调用端的本地日志中进行存储可以包括以下步骤:
S2021,将该微服务调用请求发送至与该微服务调用请求对应的该微服务调用端的业务服务中。
S2022,该业务服务根据该微服务调用请求分析计算该微服务请求调用信息,并将该微服务请求调用信息写入该本地日志中进行存储。
上述步骤S2022中该业务服务根据该微服务调用请求分析计算该微服务请求调用信息,并将该微服务请求调用信息写入该本地日志中进行存储可以包括以下步骤:
S2022a,该业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与该第一目标微服务调用请求对应链路路径标识。
S2022b,该业务服务的业务代码侧执行该第一目标微服务调用请求,并触发该业务服务侧记录第一调用终止时间。
S2022c,该业务服务侧根据该调用起始时间和该第一调用终止时间,计算服务调用耗时时间。
S2022d,将该服务调用耗时时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储。
该微服务调用端还包括与该业务服务具有直接和/或间接调用关系的至少一个关联服务,上述步骤S2022中该业务服务根据该微服务调用请求分析计算该微服务请求调用信息,并将该微服务请求调用信息写入该本地日志中进行存储可以包括以下步骤:
S2022e,该业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与该第一目标微服务调用请求对应链路路径标识。
S2022f,该业务服务的业务代码侧执行该第一目标微服务调用请求,并触发该业务服务的业务客户侧按照第二预设拦截规则,筛选出第二目标微服务调用请求并触发记录调用中间时间。
S2022g,该业务客户侧根据该第二目标微服务调用请求,调用该至少一个关联服务,并在调用完成后分别触发该业务客户侧和该业务服务侧对应记录该至少一个关联服务的关联调用终止时间和第二调用终止时间。
S2022h,该业务客户侧根据该调用中间时间和该关联调用终止时间,计算关联服务调用耗时时间,并将该关联服务调用耗时时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储。
S2022i,该业务服务侧根据该调用起始时间和该第二调用终止时间,计算服务调用耗时总时间,并将该服务调用耗时总时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储。
关于上述实施例(图7至图8)中的方法,其中各个步骤执行操作的具体方式已经在有关图4至图6的实施例中进行了详细描述,此处将不做详细阐述说明。
采用上述方法,能够通过第一预设拦截规则和概率抽样采样规则对微服务调用请求进行筛选,得到第一目标微服务调用请求。很大程度上减轻了代码的依赖性,提高了业务代码的执行效率。同时也间接地提高了后续进程(对该微服务请求调用信息进行存储的过程)的处理效率,由于该微服务请求调用信息的格式较为统一,消息队列集群和收集器集群无需进行复杂的数据过程即可将该微服务请求调用信息存储至目标数据库。
图9是根据一示例性实施例示出的一种微服务请求消息跟踪装置的框图,如图9所示,该装置300包括:微服务调用端301、消息队列集群302、收集器集群303、目标数据库304和可视化平台305;其中,该微服务调用端301,用于获取微服务调用端301的本地日志中存储的微服务请求调用信息,以及采集该微服务请求调用信息,得到微服务请求消息,并将该微服务请求消息以异步传送方式发送至消息队列集群302中;
该消息队列集群302,用于缓存该微服务请求消息;
该收集器集群303,用于响应于消费该消息队列集群302中的该微服务请求消息的操作,清洗该微服务请求消息,以及对清洗后的该微服务请求消息进行解析,得到符合目标数据库304的格式要求的微服务请求消息,并将其存储至该目标数据库304中;
该目标数据库304,用于存储该微服务请求消息;
该可视化平台305,用于获取并展示该目标数据库304中的该微服务请求消息。
可选地,该微服务调用端301,用于接收向该微服务调用端301发送的微服务调用请求;基于该微服务调用请求,分析计算得到该微服务请求调用信息,并将该微服务请求调用信息写入该微服务调用端301的本地日志中进行存储。
可选地,该可视化平台305包括多个可视化组件,该可视化平台305,用于获取该目标数据库304中的该微服务请求消息;响应于用户触发该可视化平台305中的该可视化组件的操作,选出目标可视化组件;通过该目标可视化组件展示该微服务请求消息。
可选地,该微服务调用端301,用于将该微服务调用请求发送至与该微服务调用请求对应的该微服务调用端301的业务服务中;该业务服务根据该微服务调用请求分析计算该微服务请求调用信息,并将该微服务请求调用信息写入该本地日志中进行存储。
可选地,该微服务调用端301,用于该业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与该第一目标微服务调用请求对应链路路径标识;该业务服务的业务代码侧执行该第一目标微服务调用请求,并触发该业务服务侧记录第一调用终止时间;该业务服务侧根据该调用起始时间和该第一调用终止时间,计算服务调用耗时时间;将该服务调用耗时时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储。
可选地,该微服务调用端301还包括与该业务服务具有直接和/或间接调用关系的至少一个关联服务,该微服务调用端301,用于该业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与该第一目标微服务调用请求对应链路路径标识;该业务服务的业务代码侧执行该第一目标微服务调用请求,并触发该业务服务的业务客户侧按照第二预设拦截规则,筛选出第二目标微服务调用请求并触发记录调用中间时间;该业务客户侧根据该第二目标微服务调用请求,调用该至少一个关联服务,并在调用完成后分别触发该业务客户侧和该业务服务侧对应记录该至少一个关联服务的关联调用终止时间和第二调用终止时间;该业务客户侧根据该调用中间时间和该关联调用终止时间,计算关联服务调用耗时时间,并将该关联服务调用耗时时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储;该业务服务侧根据该调用起始时间和该第二调用终止时间,计算服务调用耗时总时间,并将该服务调用耗时总时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储。
采用上述装置,能够通过采集微服务调用端的本地日志中存储的微服务请求调用信息,得到微服务请求消息,并将微服务请求消息以异步传送方式发送至消息队列集群中。也就是说,微服务请求调用信息不是直接上报至服务端集群或消息队列集群的,而是先对微服务请求调用信息进行采集,从而得到微服务请求消息。这样,避免了微服务调用端直接将微服务请求调用信息上报至服务端集群或消息队列集群中可能导致的程序崩溃问题。同时,能够避免了重复上报以及单次上报的数据数量过多,一定程度上降低了数据丢失的风险。
图10是根据一示例性实施例示出的一种用于微服务请求消息跟踪的微服务调用端的框图,该微服务调用端400包括:
前端模块401,用于接收向该微服务调用端发送400的该微服务调用请求;
服务模块402,用于基于该微服务调用请求,分析计算得到该微服务请求调用信息,并将该微服务请求调用信息写入该微服务调用端400的本地日志中进行存储。
可选地,该服务模块402,用于将该微服务调用请求发送至与该微服务调用请求对应的该微服务调用端400的业务服务中;该业务服务根据该微服务调用请求分析计算该微服务请求调用信息,并将该微服务请求调用信息写入该本地日志中进行存储。
可选地,该服务模块402,用于该业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与该第一目标微服务调用请求对应链路路径标识;该业务服务的业务代码侧执行该第一目标微服务调用请求,并触发该业务服务侧记录第一调用终止时间;该业务服务侧根据该调用起始时间和该第一调用终止时间,计算服务调用耗时时间;将该服务调用耗时时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储。
可选地,该微服务调用端400还包括与该业务服务具有直接和/或间接调用关系的至少一个关联服务,该服务模块402,用于该业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与该第一目标微服务调用请求对应链路路径标识;该业务服务的业务代码侧执行该第一目标微服务调用请求,并触发该业务服务的业务客户侧按照第二预设拦截规则,筛选出第二目标微服务调用请求并触发记录调用中间时间;该业务客户侧根据该第二目标微服务调用请求,调用该至少一个关联服务,并在调用完成后分别触发该业务客户侧和该业务服务侧对应记录该至少一个关联服务的关联调用终止时间和第二调用终止时间;该业务客户侧根据该调用中间时间和该关联调用终止时间,计算关联服务调用耗时时间,并将该关联服务调用耗时时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储;该业务服务侧根据该调用起始时间和该第二调用终止时间,计算服务调用耗时总时间,并将该服务调用耗时总时间和与其对应的链路路径标识作为该微服务请求调用信息写入该本地日志中进行存储。
采用上述装置,能够通过第一预设拦截规则和概率抽样采样规则对微服务调用请求进行筛选,得到第一目标微服务调用请求。很大程度上减轻了代码的依赖性,提高了业务代码的执行效率。同时也间接地提高了后续进程(对该微服务请求调用信息进行存储的过程)的处理效率,由于该微服务请求调用信息的格式较为统一,消息队列集群和收集器集群无需进行复杂的数据过程即可将该微服务请求调用信息存储至目标数据库。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11是根据一示例性实施例示出的一种电子设备的框图。例如,电子设备500可以被提供为一服务器。参照图11,电子设备500包括处理器522,其数量可以为一个或多个,以及存储器532,用于存储可由处理器522执行的计算机程序。存储器532中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器522可以被配置为执行该计算机程序,以执行上述的微服务请求消息跟踪方法或者微服务请求消息生成方法。
另外,电子设备500还可以包括电源组件526和通信组件550,该电源组件526可以被配置为执行电子设备500的电源管理,该通信组件550可以被配置为实现电子设备500的通信,例如,有线或无线通信。此外,该电子设备500还可以包括输入/输出(I/O)接口558。电子设备500可以操作基于存储在存储器532的操作系统,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的微服务请求消息跟踪方法或者微服务请求消息生成方法的步骤。例如,该非临时性计算机可读存储介质可以为上述包括程序指令的存储器532,上述程序指令可由电子设备500的处理器522执行以完成上述的微服务请求消息跟踪方法或者微服务请求消息生成方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的微服务请求消息跟踪方法或者微服务请求消息生成方法的代码部分。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

Claims (9)

1.一种微服务请求消息跟踪方法,其特征在于,所述方法包括:
获取微服务调用端的本地日志中存储的微服务请求调用信息;
通过数据采集器采集所述微服务请求调用信息,得到微服务请求消息,并将所述微服务请求消息以异步传送方式发送至消息队列集群中;
响应于消费所述消息队列集群中的所述微服务请求消息的操作,清洗所述微服务请求消息;
对清洗后的所述微服务请求消息进行解析,得到符合目标数据库的格式要求的微服务请求消息,并将其存储至所述目标数据库中;
可视化平台获取并展示所述目标数据库中的所述微服务请求消息;
所述方法还包括:
接收向所述微服务调用端发送的微服务调用请求;
基于所述微服务调用请求,分析计算得到所述微服务请求调用信息,并将所述微服务请求调用信息写入所述微服务调用端的本地日志中进行存储;
所述基于所述微服务调用请求,分析计算得到所述微服务请求调用信息,并将所述微服务请求调用信息写入所述微服务调用端的本地日志中进行存储,包括:
将所述微服务调用请求发送至与所述微服务调用请求对应的所述微服务调用端的业务服务中;
所述业务服务根据所述微服务调用请求分析计算所述微服务请求调用信息,并将所述微服务请求调用信息写入所述本地日志中进行存储;
所述微服务调用端还包括与所述业务服务具有直接和/或间接调用关系的至少一个关联服务,所述业务服务根据所述微服务调用请求分析计算所述微服务请求调用信息,并将所述微服务请求调用信息写入所述本地日志中进行存储,包括:
所述业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与所述第一目标微服务调用请求对应链路路径标识;
所述业务服务的业务代码侧执行所述第一目标微服务调用请求,并触发所述业务服务的业务客户侧按照第二预设拦截规则,筛选出第二目标微服务调用请求并触发记录调用中间时间;
所述业务客户侧根据所述第二目标微服务调用请求,调用所述至少一个关联服务,并在调用完成后分别触发所述业务客户侧和所述业务服务侧对应记录所述至少一个关联服务的关联调用终止时间和第二调用终止时间;
所述业务客户侧根据所述调用中间时间和所述关联调用终止时间,计算关联服务调用耗时时间,并将所述关联服务调用耗时时间和与其对应的链路路径标识作为所述微服务请求调用信息写入所述本地日志中进行存储;
所述业务服务侧根据所述调用起始时间和所述第二调用终止时间,计算服务调用耗时总时间,并将所述服务调用耗时总时间和与其对应的链路路径标识作为所述微服务请求调用信息写入所述本地日志中进行存储。
2.根据权利要求1所述的方法,其特征在于,所述可视化平台包括多个可视化组件,所述可视化平台获取并展示所述目标数据库中的所述微服务请求消息,包括:
获取所述目标数据库中的所述微服务请求消息;
响应于用户触发所述可视化平台中的所述可视化组件的操作,选出目标可视化组件;
通过所述目标可视化组件展示所述微服务请求消息。
3.根据权利要求1所述的方法,其特征在于,所述业务服务根据所述微服务调用请求分析计算所述微服务请求调用信息,并将所述微服务请求调用信息写入所述本地日志中进行存储,包括:
所述业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与所述第一目标微服务调用请求对应链路路径标识;
所述业务服务的业务代码侧执行所述第一目标微服务调用请求,并触发所述业务服务侧记录第一调用终止时间;
所述业务服务侧根据所述调用起始时间和所述第一调用终止时间,计算服务调用耗时时间;
将所述服务调用耗时时间和与其对应的链路路径标识作为所述微服务请求调用信息写入所述本地日志中进行存储。
4.一种微服务请求消息生成方法,其特征在于,所述方法包括:
接收向微服务调用端发送的所述微服务调用请求;
基于所述微服务调用请求,分析计算得到微服务请求调用信息,并将所述微服务请求调用信息写入所述微服务调用端的本地日志中进行存储;
所述方法还包括:
获取所述微服务调用端的本地日志中存储的所述微服务请求调用信息;
通过数据采集器采集所述微服务请求调用信息,得到微服务请求消息,并将所述微服务请求消息以异步传送方式发送至消息队列集群中;
所述基于所述微服务调用请求,分析计算得到所述微服务请求调用信息,并将所述微服务请求调用信息写入所述微服务调用端的本地日志中进行存储,包括:
将所述微服务调用请求发送至与所述微服务调用请求对应的所述微服务调用端的业务服务中;
所述业务服务根据所述微服务调用请求分析计算所述微服务请求调用信息,并将所述微服务请求调用信息写入所述本地日志中进行存储;
所述微服务调用端还包括与所述业务服务具有直接和/或间接调用关系的至少一个关联服务,所述业务服务根据所述微服务调用请求分析计算所述微服务请求调用信息,并将所述微服务请求调用信息写入所述本地日志中进行存储,包括:
所述业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与所述第一目标微服务调用请求对应链路路径标识;
所述业务服务的业务代码侧执行所述第一目标微服务调用请求,并触发所述业务服务的业务客户侧按照第二预设拦截规则,筛选出第二目标微服务调用请求并触发记录调用中间时间;
所述业务客户侧根据所述第二目标微服务调用请求,调用所述至少一个关联服务,并在调用完成后分别触发所述业务客户侧和所述业务服务侧对应记录所述至少一个关联服务的关联调用终止时间和第二调用终止时间;
所述业务客户侧根据所述调用中间时间和所述关联调用终止时间,计算关联服务调用耗时时间,并将所述关联服务调用耗时时间和与其对应的链路路径标识作为所述微服务请求调用信息写入所述本地日志中进行存储;
所述业务服务侧根据所述调用起始时间和所述第二调用终止时间,计算服务调用耗时总时间,并将所述服务调用耗时总时间和与其对应的链路路径标识作为所述微服务请求调用信息写入所述本地日志中进行存储。
5.根据权利要求4所述的方法,其特征在于,所述业务服务根据所述微服务调用请求分析计算所述微服务请求调用信息,并将所述微服务请求调用信息写入所述本地日志中进行存储,包括:
所述业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与所述第一目标微服务调用请求对应链路路径标识;
所述业务服务的业务代码侧执行所述第一目标微服务调用请求,并触发所述业务服务侧记录第一调用终止时间;
所述业务服务侧根据所述调用起始时间和所述第一调用终止时间,计算服务调用耗时时间;
将所述服务调用耗时时间和与其对应的链路路径标识作为所述微服务请求调用信息写入所述本地日志中进行存储。
6.一种微服务请求消息跟踪装置,其特征在于,所述装置包括:微服务调用端、消息队列集群、收集器集群、目标数据库和可视化平台;其中,
所述微服务调用端,用于获取微服务调用端的本地日志中存储的微服务请求调用信息,以及通过数据采集器采集所述微服务请求调用信息,得到微服务请求消息,并将所述微服务请求消息以异步传送方式发送至消息队列集群中;
所述消息队列集群,用于缓存所述微服务请求消息;
所述收集器集群,用于响应于消费所述消息队列集群中的所述微服务请求消息的操作,清洗所述微服务请求消息,以及对清洗后的所述微服务请求消息进行解析,得到符合目标数据库的格式要求的微服务请求消息,并将其存储至所述目标数据库中;
所述目标数据库,用于存储所述微服务请求消息;
所述可视化平台,用于获取并展示所述目标数据库中的所述微服务请求消息;
所述微服务调用端,用于接收向所述微服务调用端发送的微服务调用请求;基于所述微服务调用请求,分析计算得到所述微服务请求调用信息,并将所述微服务请求调用信息写入所述微服务调用端的本地日志中进行存储;
所述微服务调用端,用于将所述微服务调用请求发送至与所述微服务调用请求对应的所述微服务调用端的业务服务中;所述业务服务根据所述微服务调用请求分析计算所述微服务请求调用信息,并将所述微服务请求调用信息写入所述本地日志中进行存储;
所述微服务调用端还包括与所述业务服务具有直接和/或间接调用关系的至少一个关联服务,所述微服务调用端,用于所述业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与所述第一目标微服务调用请求对应链路路径标识;所述业务服务的业务代码侧执行所述第一目标微服务调用请求,并触发所述业务服务的业务客户侧按照第二预设拦截规则,筛选出第二目标微服务调用请求并触发记录调用中间时间;所述业务客户侧根据所述第二目标微服务调用请求,调用所述至少一个关联服务,并在调用完成后分别触发所述业务客户侧和所述业务服务侧对应记录所述至少一个关联服务的关联调用终止时间和第二调用终止时间;所述业务客户侧根据所述调用中间时间和所述关联调用终止时间,计算关联服务调用耗时时间,并将所述关联服务调用耗时时间和与其对应的链路路径标识作为所述微服务请求调用信息写入所述本地日志中进行存储;所述业务服务侧根据所述调用起始时间和所述第二调用终止时间,计算服务调用耗时总时间,并将所述服务调用耗时总时间和与其对应的链路路径标识作为所述微服务请求调用信息写入所述本地日志中进行存储。
7.一种用于微服务请求消息跟踪的微服务调用端,其特征在于,所述微服务调用端包括:
前端模块,用于接收向所述微服务调用端发送的所述微服务调用请求;
服务模块,用于基于所述微服务调用请求,分析计算得到微服务请求调用信息,并将所述微服务请求调用信息写入所述微服务调用端的本地日志中进行存储;
获取模块,用于获取所述微服务调用端的本地日志中存储的所述微服务请求调用信息;
发送模块,用于通过数据采集器采集所述微服务请求调用信息,得到微服务请求消息,并将所述微服务请求消息以异步传送方式发送至消息队列集群中;
所述服务模块,用于将所述微服务调用请求发送至与所述微服务调用请求对应的所述微服务调用端的业务服务中;所述业务服务根据所述微服务调用请求分析计算所述微服务请求调用信息,并将所述微服务请求调用信息写入所述本地日志中进行存储;
所述微服务调用端还包括与所述业务服务具有直接和/或间接调用关系的至少一个关联服务,所述服务模块,用于所述业务服务的业务服务侧依次根据第一预设拦截规则和概率抽样采集规则,筛选出第一目标微服务调用请求并触发记录调用起始时间,并根据预设链路路径标识算法,计算得到与所述第一目标微服务调用请求对应链路路径标识;所述业务服务的业务代码侧执行所述第一目标微服务调用请求,并触发所述业务服务的业务客户侧按照第二预设拦截规则,筛选出第二目标微服务调用请求并触发记录调用中间时间;所述业务客户侧根据所述第二目标微服务调用请求,调用所述至少一个关联服务,并在调用完成后分别触发所述业务客户侧和所述业务服务侧对应记录所述至少一个关联服务的关联调用终止时间和第二调用终止时间;所述业务客户侧根据所述调用中间时间和所述关联调用终止时间,计算关联服务调用耗时时间,并将所述关联服务调用耗时时间和与其对应的链路路径标识作为所述微服务请求调用信息写入所述本地日志中进行存储;所述业务服务侧根据所述调用起始时间和所述第二调用终止时间,计算服务调用耗时总时间,并将所述服务调用耗时总时间和与其对应的链路路径标识作为所述微服务请求调用信息写入所述本地日志中进行存储。
8.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至5中任一项所述方法的步骤。
9.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1至5中任一项所述方法的步骤。
CN202210806409.7A 2022-07-08 2022-07-08 微服务请求消息跟踪方法、生成方法、装置、介质及设备 Active CN115129491B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210806409.7A CN115129491B (zh) 2022-07-08 2022-07-08 微服务请求消息跟踪方法、生成方法、装置、介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210806409.7A CN115129491B (zh) 2022-07-08 2022-07-08 微服务请求消息跟踪方法、生成方法、装置、介质及设备

Publications (2)

Publication Number Publication Date
CN115129491A CN115129491A (zh) 2022-09-30
CN115129491B true CN115129491B (zh) 2024-03-05

Family

ID=83381991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210806409.7A Active CN115129491B (zh) 2022-07-08 2022-07-08 微服务请求消息跟踪方法、生成方法、装置、介质及设备

Country Status (1)

Country Link
CN (1) CN115129491B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116627681B (zh) * 2023-07-25 2023-10-17 太平金融科技服务(上海)有限公司 业务请求处理方法、装置、计算机设备、介质和程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262889A (zh) * 2019-06-27 2019-09-20 深圳前海微众银行股份有限公司 一种链路追踪方法及装置
CN110445643A (zh) * 2019-07-25 2019-11-12 泰康保险集团股份有限公司 异步微服务调用链路跟踪方法、装置、介质及电子设备
CN111078504A (zh) * 2019-12-25 2020-04-28 深圳前海环融联易信息科技服务有限公司 一种分布式调用链跟踪方法、装置、计算机设备及存储介质
CN112612675A (zh) * 2020-12-25 2021-04-06 山东经伟晟睿数据技术有限公司 微服务架构下的分布式大数据日志链路跟踪方法及系统
CN113688012A (zh) * 2021-09-09 2021-11-23 中国银行股份有限公司 调用链监控系统及方法
CN113946499A (zh) * 2021-10-22 2022-01-18 神州数码系统集成服务有限公司 一种微服务链路跟踪及性能分析方法、系统、设备及应用

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10666527B2 (en) * 2018-04-26 2020-05-26 EMC IP Holding Company LLC Generating specifications for microservices implementations of an application

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262889A (zh) * 2019-06-27 2019-09-20 深圳前海微众银行股份有限公司 一种链路追踪方法及装置
CN110445643A (zh) * 2019-07-25 2019-11-12 泰康保险集团股份有限公司 异步微服务调用链路跟踪方法、装置、介质及电子设备
CN111078504A (zh) * 2019-12-25 2020-04-28 深圳前海环融联易信息科技服务有限公司 一种分布式调用链跟踪方法、装置、计算机设备及存储介质
CN112612675A (zh) * 2020-12-25 2021-04-06 山东经伟晟睿数据技术有限公司 微服务架构下的分布式大数据日志链路跟踪方法及系统
CN113688012A (zh) * 2021-09-09 2021-11-23 中国银行股份有限公司 调用链监控系统及方法
CN113946499A (zh) * 2021-10-22 2022-01-18 神州数码系统集成服务有限公司 一种微服务链路跟踪及性能分析方法、系统、设备及应用

Also Published As

Publication number Publication date
CN115129491A (zh) 2022-09-30

Similar Documents

Publication Publication Date Title
CN112256542B (zh) 基于eBPF的微服务系统性能检测方法、装置和系统
WO2003073203A2 (en) System and method for analyzing input/output activity on local attached storage
CN111339175B (zh) 数据处理方法、装置、电子设备及可读存储介质
US20080168044A1 (en) System and method for providing performance statistics for application components
CN111367760B (zh) 日志采集方法及装置、计算机设备、存储介质
CN111614483A (zh) 链路监控方法、装置、存储介质及计算机设备
WO2011017955A1 (zh) 一种告警数据分析的方法及其系统
CN115129491B (zh) 微服务请求消息跟踪方法、生成方法、装置、介质及设备
US9600523B2 (en) Efficient data collection mechanism in middleware runtime environment
US10346281B2 (en) Obtaining and analyzing a reduced metric data set
CN110515821A (zh) 基于埋点的事件处理方法、电子设备及计算机存储介质
CN111400127A (zh) 业务日志的监控方法及装置、存储介质、计算机设备
US8799460B2 (en) Method and system of providing a summary of web application performance monitoring
CN114253806A (zh) 一种接入层日志收集分析预警系统
CN108984362A (zh) 日志采集方法及装置、存储介质、电子设备
CN112631879A (zh) 数据采集方法、装置、计算机可读介质及电子设备
CN117370053A (zh) 一种面向信息系统业务运行全景监测方法及系统
CN117118506A (zh) 一种otdr数据分析诊断方法、装置、电子设备及存储介质
CN110225113B (zh) 一种服务监控方法及系统
CN102307116A (zh) 用于生成监控信息的系统和方法
CN114356764A (zh) 软件调测方法、装置、设备、系统和介质
CN113392005A (zh) 大文件处理测试方法及系统
CN113806195A (zh) 数据处理方法、装置、设备、系统及存储介质
KR20170131007A (ko) 데이터 분산 서비스 기반의 실시간 통신 감시 시스템
US10296967B1 (en) System, method, and computer program for aggregating fallouts in an ordering system

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
TA01 Transfer of patent application right

Effective date of registration: 20230801

Address after: 224008 Rooms 404-405 and 504, Building B-17-1, Big data Industrial Park, Kecheng Street, Yannan High tech Zone, Yancheng, Jiangsu Province

Applicant after: Yancheng Tianyanchawei Technology Co.,Ltd.

Address before: 224008 room 501-503, building b-17-1, Xuehai road big data Industrial Park, Kecheng street, Yannan high tech Zone, Yancheng City, Jiangsu Province (CNK)

Applicant before: Yancheng Jindi Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant