CN110445643A - 异步微服务调用链路跟踪方法、装置、介质及电子设备 - Google Patents
异步微服务调用链路跟踪方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN110445643A CN110445643A CN201910675716.4A CN201910675716A CN110445643A CN 110445643 A CN110445643 A CN 110445643A CN 201910675716 A CN201910675716 A CN 201910675716A CN 110445643 A CN110445643 A CN 110445643A
- Authority
- CN
- China
- Prior art keywords
- micro services
- message
- log
- tracking
- message queue
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000012544 monitoring process Methods 0.000 claims abstract description 12
- 238000000034 method Methods 0.000 claims description 37
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012800 visualization Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Cardiology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种异步微服务调用链路跟踪方法、装置、介质及电子设备,其中,异步微服务调用包括:根据用户的请求调用第一微服务,以及待所述第一微服务处理完成之后以消息队列的方式调用第二微服务。所述异步微服务调用链路跟踪方法包括:在所述第一微服务处理完成之后,在发送到第一消息队列以用于调用所述第二微服务的消息中插入为所述请求创建的跟踪标识;以及监听所述第一消息队列中的消息,从监听到的消息中取出所述跟踪标识并且传递给所述第二微服务。本发明实现了经由消息队列的跟踪标识的传递,并且实现了利用消息队列进行异步微服务调用的链路跟踪。
Description
技术领域
本发明属于计算机网络架构技术领域,具体而言,涉及一种异步微服务调用链路跟踪方法、装置、介质及电子设备。
背景技术
在业务系统日常运维过程中,利用日志进行问题的追踪和定位非常重要。目前,大部分公司和企业都采用微服务开发框架,完成一个完整的业务流程往往需要通过多个应用服务器的不同微服务组合完成,因此对日志的管理、查询相当复杂和困难。
为了解决微服务开发框架带来的日志检索困难、查找不便等问题,目前普遍的做法是将每台应用服务器产生的日志经统一归集后转储到一个用于集中存放和管理日志的存储服务器上,然而这种做法存在以下问题:1)仅仅解决了日志的统一存储问题,没有提供用于统一检索和监控分析的界面,用户需要逐个打开日志文件进行搜索、查找,因此依然存在不便之处;2)不能对微服务调用链路进行跟踪,即面对用户的一次调用请求(后文简称请求)不能将整个微服务调用链路完整地关联起来,无法对跨应用服务器、跨微服务实现编排调用的轨迹进行查询和追踪;3)当通过消息队列(MQ)进行异步微服务调用时,如果想要关联消息队列的发送者和接收者,则只能通过日志打印输出消息内容或业务关键词的方式,这样势必会对日志的输出提出特殊要求,不够方便、灵活。
发明内容
为解决上述现有技术中存在的问题,根据本发明的一个实施例,提供一种异步微服务调用链路跟踪方法,其中异步微服务调用包括:根据用户的请求调用第一微服务,以及待所述第一微服务处理完成之后以消息队列的方式调用第二微服务,所述方法包括:
在所述第一微服务处理完成之后,在发送到第一消息队列以用于调用所述第二微服务的消息中插入为所述请求创建的跟踪标识;以及
监听所述第一消息队列中的消息,从监听到的消息中取出所述跟踪标识并且传递给所述第二微服务。
根据本发明的一个示例,上述方法中,通过消息发送接口在发送到第一消息队列以用于调用所述第二微服务的消息中插入为所述请求创建的跟踪标识,所述消息发送接口是由消息发送超类实现的;以及通过消息监听接口监听所述第一消息队列中的消息,从监听到的消息中取出所述跟踪标识并且传递给所述第二微服务,所述消息监听接口是由消息监听超类实现的。
根据本发明的一个示例,在从监听到的消息中取出所述跟踪标识并且传递给所述第二微服务之后,上述方法还可以包括:生成包括所述跟踪标识的日志。
根据本发明的一个示例,上述方法还可以包括:针对多个工作单元中的每个工作单元,创建对应的跨度标识;其中所述多个工作单元至少包括:对应于所述第一微服务的服务处理的工作单元,对应于对所述第二微服务的调用的工作单元,对应于所述第二微服务的服务处理的工作单元。
根据本发明的一个示例,上述方法中,所生成的日志还包括所属工作单元对应的跨度标识。
根据本发明的一个示例,在生成包括所述跟踪标识的日志之后,上述方法还可以包括:
收集已生成的日志,发送至第二消息队列;
从所述第二消息队列中读取日志,对读取到的日志进行格式转换,存储经格式转换的日志;
基于跟踪标识对所存储的日志创建索引;以及
提供可视化平台,其中用户通过所述可视化平台检索所存储的日志。
上述方法还可以包括:分析所存储的日志;根据分析结果确定是否发出预警。
根据本发明的一个实施例,还提供一种异步微服务调用链路跟踪装置,其中,异步微服务调用包括:根据用户的请求调用第一微服务,以及待所述第一微服务处理完成之后以消息队列的方式调用第二微服务,所述装置包括:
消息发送模块,用于在所述第一微服务处理完成之后,在发送到第一消息队列以用于调用所述第二微服务的消息中插入为所述请求创建的跟踪标识;以及
消息监听模块,用于监听所述第一消息队列中的消息,从监听到的消息中取出所述跟踪标识并且传递给所述第二微服务。
根据本发明的一个实施例,还提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的异步微服务调用链路跟踪方法。
根据本发明的一个实施例,还提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述电子设备实现如上述实施例中所述的异步微服务调用链路跟踪方法。
本发明实施例提供的技术方案具有如下有益效果:
在Spring Cloud Sleuth(服务链路跟踪工具)技术的基础上,通过在发送到消息队列的消息中插入为用户请求创建的跟踪标识(Trace ID),并且在监听到消息队列中的消息时从该消息中取出Trace ID并传递给待调用的微服务,实现了经由消息队列的Trace ID的传递,并且实现了利用消息队列进行异步微服务调用的链路跟踪;进一步而言,无需进行日志内容的定制和开发(即无需对日志输出提出特殊要求),就可以实现完整的异步微服务调用链路跟踪。此外,本发明还提供了日志的统一检索和监控分析平台,方便用户基于Trace ID检索、查找异步微服务调用链路上的日志内容。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本发明一个实施例的异步微服务调用链路跟踪方法的流程图;
图2示意性示出了根据本发明另一个实施例的异步微服务调用链路跟踪方法的流程图;
图3示出了根据本发明一个实施例的日志归集与展示方法的示意图;
图4示意性示出了根据本发明一个实施例的异步微服务调用链路跟踪装置的框图;
图5示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
针对微服务开发框架,用户发起的请求在后端系统中会经过多个不同的微服务调用,这些微服务协同产生最后的结果,从而形成一条复杂的微服务调用链路。为了对微服务调用链路进行跟踪,Spring Cloud Sleuth提供了一套完整的解决方案,其原理如下:当用户的请求发送到入口端点(或称统一接入)时,为该请求创建一个唯一的跟踪标识(TraceID),并且在各微服务之间流转时始终保持传递该唯一的Trace ID,直到返回给用户为止。一条微服务调用链路可以包括多个Span(或称跨度),每个Span对应链路中的一个工作单元,对于每个工作单元创建唯一标识(Span ID,或称跨度标识)来标记其开始、过程以及结束,Span还可以存储有描述信息、事件时间戳、Annotation的键值对属性、上一级工作单元的Span ID(Parent ID)等。在Spring Boot应用中,在工程中引入spring-cloud-starter-sleuth依赖之后,会自动地为当前应用构建起各通信通道的跟踪机制。
假设用户的请求需要调用两个微服务(例如第一微服务和第二微服务),其中用户向入口端点发送HTTP请求之后,入口端点先调用第一微服务,第一微服务执行相应的处理后通过RestTemplate(RestTemplate是用于访问Rest服务的客户端;Rest即表述化状态转移,为一种软件架构风格)对第二微服务发起请求。为实现Trace ID和Span ID的传递,该请求在发送到第二微服务之前Sleuth会在其头部增加如下信息:请求的唯一的跟踪标识,即Trace ID;当前工作单元的唯一标识,即Span ID;以及,是否将信息输出到服务收集和展示等等。第二微服务在开始处理时会创建新的Span ID(对应一个新的工作单元),并且将所接收的Span ID作为Parent ID(或称父标识)。由此,通过Trace ID、Span ID以及Parent ID将微服务调用链路中的跟踪记录串联起来。
然而,当使用消息队列(MQ)进行微服务之间的异步调用时,由于数据交互的唯一载体是消息,并且消息队列的生产者和消费者的操作是异步进行的,如果采用现有的Spring Cloud Sleuth技术,则无法通过消息队列做到Trace ID和Span ID的传递,从而无法实现异步微服务调用的链路跟踪。
为解决这一问题,根据本发明的一个实施例,提供一种异步微服务调用链路跟踪方法。其中,异步微服务调用指的是:根据用户的请求调用第一微服务,待第一微服务处理完成之后以消息队列的方式调用第二微服务。该异步微服务调用链路跟踪方法在具有计算功能和存储功能的电子设备处执行,并且所述电子设备可以位于客户端或者服务器处。
概括而言,该异步微服务调用链路跟踪方法包括:在第一微服务处理完成之后,在发送到消息队列以用于调用第二微服务的消息中插入为用户请求创建的Trace ID;以及,监听消息队列中的消息,从监听到的消息中取出Trace ID并且传递给第二微服务。
图1示意性地示出了该异步微服务调用链路跟踪方法的流程图,下面结合图1详细描述该方法的各个步骤:
步骤S101.在第一微服务处理完成之后,在发送到消息队列以用于调用第二微服务的消息中插入为用户请求创建的Trace ID。根据本发明的一个实施例,步骤S101包括如下的子步骤:
步骤S1011.当接收到用户向入口端点发送的请求(例如HTTP请求)时,为该请求创建并存储唯一的Trace ID;接着,由入口端点调用第一微服务(调用的头部可以包含该Trace ID)并由第一微服务进行服务处理,生成并存储包含该Trace ID的日志。
步骤S1012.在第一微服务处理完成之后,由入口端点或者第一微服务发送调用第二微服务的消息。
步骤S1013.由消息发送接口接收或拦截该调用第二微服务的消息,在消息中插入为请求创建的Trace ID,并且将包含Trace ID的消息发送至消息队列。
其中,消息发送接口可以通过硬件、软件或者软硬结合的方式来实现,根据本发明的一个实施例,该消息发送接口可以通过设计一个消息发送超类来实现,该消息发送超类被调用时执行以下过程:获取调用第二微服务的消息以及为请求创建的Trace ID,将TraceID插入该消息中,并且将包含Trace ID的消息发送至消息队列。
步骤S102.监听消息队列中的消息,从监听到的消息中取出Trace ID并且传递给第二微服务。根据本发明的一个实施例,步骤S102包括如下子步骤:
步骤S1021.由消息监听接口监听消息队列中的消息,从监听到的消息中取出Trace ID,向第二微服务传递该Trace ID和调用第二微服务的消息。
其中,消息监听接口可以通过硬件、软件或者软硬结合的方式来实现。根据本发明的一个实施例,该消息监听接口可以通过设计一个消息监听超类来实现,该消息监听超类被调用时执行如下过程:监听消息队列中的消息;当监听到消息时,从监听到的消息中取出Trace ID;并且向第二微服务传递该Trace ID以及调用第二微服务的消息。
步骤S1022.由第二微服务进行服务处理,生成并存储包含Trace ID的日志。
在上述实施例中,通过在发送到消息队列的消息(即调用第二微服务的消息)中插入为请求创建的Trace ID,并且在监听到消息后从该消息中取出Trace ID传递给待调用的第二微服务,实现了经由消息队列的Trace ID的传递;所生成的日志包含Trace ID,因此可以实现(利用消息队列进行)异步微服务调用的链路跟踪。此外,无需进行日志内容的定制和开发,从而方便、灵活地实现了异步微服务调用链路跟踪。
在上述实施例中,日志离散地存储在微服务节结点(例如微服务所处的应用服务器)上,导致日志检索、查找不便等问题。对此,根据本发明的一个实施例,还提供一种异步微服务调用链路跟踪方法,其中异步微服务调用指的是:根据用户的请求调用第一微服务,待第一微服务处理完成之后以消息队列的方式调用第二微服务。该异步微服务调用链路跟踪方法在具有计算功能和存储功能的电子设备处执行,并且所述电子设备可以位于客户端或者服务器处。
概括而言,在该异步微服务调用链路跟踪方法中,除了采用唯一的Trace ID之外,还采用Span ID将异步微服务调用链路中的跟踪记录串联起来,并且对生成的日志进行归集和展示,便于用户进行基于Trace ID的查询和检索。
图2示意性地示出了该异步微服务调用链路跟踪方法的流程图,现结合图2描述该方法的各个步骤:
步骤S201.为用户的请求创建唯一的Trace ID,创建Span ID并且由第一微服务进行服务处理,生成并存储包含Trace ID和所创建的Span ID的日志。
当接收到用户向入口端点发送的请求时,为该请求创建并存储唯一的Trace ID;由入口端点调用第一微服务(调用请求的头部可以包含该Trace ID);创建一个Span ID(例如Span ID A,该Span ID A对应于一个工作单元U1,该工作单元U1对应于第一微服务的服务处理)并且由第一微服务进行服务处理。生成并存储包含该Trace ID和Span ID A的日志(该日志对应于工作单元U1,换句话说,该日志属于工作单元U1)。
步骤S202.在第一微服务处理完成之后,由入口端点或第一微服务发送调用第二微服务的消息。
步骤S203.由消息发送接口来接收或拦截调用第二微服务的消息,创建Span ID(例如Span ID B,该Span ID B对应于一个工作单元U2,该工作单元U2对应于对第二微服务的调用),在消息中插入Trace ID以及Span ID B,并且将包含Trace ID和Span ID B的消息发送至消息队列。
如上文所述,消息发送接口可以通过设计一个消息发送超类来实现。另外,本领域技术人员应理解,基于Spring Cloud Sleuth技术,可以存储上一级工作单元的Span ID(例如Span ID A)作为Span ID B的Parent ID。
步骤S204.由消息监听接口监听消息队列中的消息,从监听到的消息中取出TraceID和Span ID(Span ID B),并且向第二微服务传递该Trace ID、Span ID以及调用第二微服务的消息。
如上文所述,消息监听接口可以通过设计一个消息监听超类来实现。另外,步骤S203和S204也可以生成并存储包含该Trace ID和Span ID B的日志(该日志对应于工作单元U2)。
步骤S205.第二微服务将由消息监听接口传递的Span ID(Span ID B)作为ParentID进行存储,创建Span ID(例如Span ID C,该Span ID C对应于一个工作单元U3,该工作单元U3对应于第二微服务的服务处理)并且由第二微服务进行服务处理,生成并存储包含Trace ID和Span ID C的日志(该日志对应于工作单元U3)。
步骤S206.收集已生成的日志并且发送至Kafka消息队列进行缓存。
步骤S206中的Kafka消息队列与上文中用于异步微服务调用的消息队列不同,本领域技术人员应理解,除了Kafka,也可以利用其他现有的消息队列产品来缓存收集的日志。
具体地,可以利用日志收集组件Logback进行日志的收集,Logback可以与微服务集成,也可以独立地部署。Logback在收集到日志之后,将收集到的日志发送至Kafka消息队列,采用消息队列来缓存日志可以降低日志的丢失率。
步骤S207.从Kafka消息队列中读取日志,进行格式转换,并且存储经格式转换的日志。
具体地,利用日志转换组件Logstash读取Kafka消息队列中的日志并且按照转换格式要求进行格式转换,将经格式转换的日志输出到日志索引存储组件Elasticsearch(Elasticsearch是一种分布式、高性能、高可用、可伸缩的搜索和分析系统)进行存储。
步骤S208.基于Trace ID对所存储的日志创建日志索引,并且向用户提供可视化平台,其中用户可以通过该可视化平台基于Trace ID来检索日志。
具体而言,利用日志索引存储组件Elasticsearch创建基于Trace ID的日志索引,并且提供针对Elasticsearch的一个可视化平台Kibana,Kibana用于搜索、查找存储在Elasticsearch中的数据,并且展示给用户。
在上述实施例中,实现了日志的统一检索和监控分析的界面(可视化平台Kibana),方便用户基于Trace ID来检索、查找异步微服务调用链路上的日志内容。
在上述实施例中,采用了Logback与Kafka消息队列的组合来收集和缓存日志。本领域技术人员应理解,在其他实施例中,也可以采用Flume与Kafka消息队列的组合模式,并且经转换的日志也可以存储在MongoDB文档数据库中。
在上述实施例中,利用日志收集组件Logback执行日志的收集,而在另一个实施例中,如图3所示,也可以通过其他日志收集代理组件来收集微服务相关的日志或者来自其他资源(如数据库、存储设备、缓存等)的日志,日志收集代理组件例如可以是Filebeat、Packbeat、Redisbeat、Kafkabeat等。通过这些日志收集代理组件收集的日志可以直接存储到日志索引存储组件Elasticsearch中。另外,如图3所示,除了向用户提供可视化平台,还可以对存储在Elasticsearch中的日志进行分析,并且根据分析结果确定是否发出预警。
以下结合附图介绍本发明的装置实施例。
根据本发明的一个实施例,还提供一种异步微服务调用链路跟踪装置,图4示意性地示出了根据本发明一个实施例的异步微服务调用链路跟踪装置400的框图。
参见图4,异步微服务调用链路跟踪装置400包括:消息发送模块401和消息监听模块402。其中,消息发送模块401用于在第一微服务处理完成之后,在发送到第一消息队列以用于调用第二微服务的消息中插入为用户请求创建的Trace ID;消息监听模块402用于监听第一消息队列中的消息,从监听到的消息中取出Trace ID并且传递给第二微服务。
具体而言,消息发送模块401用于通过消息发送接口在发送到第一消息队列以用于调用第二微服务的消息中插入为请求创建的Trace ID,该消息发送接口是由消息发送超类实现的;并且,消息监听模块402用于通过消息监听接口监听第一消息队列中的消息,从监听到的消息中取出Trace ID并且传递给第二微服务,该消息监听接口是由消息监听超类实现的。
根据本发明的一个实施例,异步微服务调用链路跟踪装置400还包括日志生成模块(未在图中示出),该日志生成模块用于生成包括Trace ID的日志。具体地,消息发送模块401用于针对多个工作单元中的每个工作单元,创建对应的Span ID;其中,所述多个工作单元至少包括:对应于第一微服务的服务处理的工作单元,对应于对第二微服务的调用的工作单元,对应于第二微服务的服务处理的工作单元。根据本发明的一个实施例,日志生成模块所生成的日志还包括所属工作单元对应的Span ID。
根据本发明的一个实施例,异步微服务调用链路跟踪装置400还包括:日志收集模块(未在图中示出),用于收集已生成的日志,发送至第二消息队列;日志转换及存储模块(未在图中示出),用于从第二消息队列中读取日志,对读取到的日志进行格式转换,并且存储经格式转换的日志;日志索引创建模块(未在图中示出),用于基于Trace ID对所存储的日志创建索引;以及可视化模块(未在图中示出),用于提供可视化平台,其中用户通过该可视化平台检索所存储的日志。
根据本发明的一个实施例,异步微服务调用链路跟踪装置400还包括:预警模块(未在图中示出),用于分析所存储的日志,以及根据分析结果确定是否发出预警。
由于本实施例的异步微服务调用链路跟踪装置的各个功能模块与上文结合图1描述的异步微服务调用链路跟踪方法实施例的步骤对应,因此对于本装置实施例中未披露的细节,请参照结合图1描述的异步微服务调用链路跟踪方法的实施例。
根据本发明的一个实施例,还提供一种适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。参见图5,计算机系统500包括总线505,耦合到总线505的设备之间可以快速地传输信息。处理器501与总线505耦合,用于执行由计算机程序代码所指定的一组动作或操作,处理器501可以单独地或者与其他设备组合实现为机械、电、磁、光、量子或者化学部件等。
计算机系统500还包括耦合到总线505的存储器503,存储器503(例如,RAM或者其他动态存储设备)存储可由计算机系统500改变的数据,包括实现上述实施例所述的异步微服务调用链路跟踪方法的指令或计算机程序。当处理器501执行该指令或计算机程序时,使得计算机系统500能够实现上述实施例中描述的异步微服务调用链路跟踪方法,例如,可以实现如图1-2中所示的各个步骤。存储器503还可以存储处理器501执行指令或计算机程序期间产生的临时数据,以及系统操作所需的各种程序和数据。计算机系统500还包括耦合到总线505的只读存储器502以及非易失性储存设备508,例如磁盘或光盘等,用于存储当计算机系统500被关闭或掉电时也能持续的数据。
计算机系统500还包括诸如键盘、传感器等的输入设备506,以及诸如阴极射线管(CRT)、液晶显示器(LCD)、打印机等的输出设备507。计算机系统500还包括耦合到总线505的通信接口504,通信接口504可以提供对外部设备的单向或双向的通信耦合。例如,通信接口504可以是并行端口、串行端口、电话调制解调器或者局域网(LAN)卡。计算机系统500还包括耦合到总线505的驱动设备509以及可拆卸设备510,诸如磁盘、光盘、磁光盘、半导体存储器等等,其根据需要安装在驱动设备509上,以便于从其上读出的计算机程序根据需要被安装入储存设备508。
根据本发明的另一个实施例,还提供一种计算机可读介质,该计算机可读介质可以是上述计算机系统500中所包含的,也可以是单独存在而未装配入该计算机系统500中的。该计算机可读介质承载有一个或者多个计算机程序或者指令,当所述一个或者多个计算机程序或者指令被处理器执行时,使得该计算机系统500实现上述实施例中所述的异步微服务调用链路跟踪方法。需要说明的是,计算机可读介质指的是向处理器501提供数据的任意介质,这种介质可以采取任意形式,包括但不限于,计算机可读存储介质(例如,非易失性介质、易失性介质)以及传输介质。其中,非易失性介质诸如包括光盘或磁盘,例如储存设备508;易失性介质例如包括存储器504。传输介质例如包括同轴电缆、铜线、光纤电缆以及在没有电缆和线缆的情况下通过空间的载波,例如声波和电磁波,包括无线电、光和红外波。计算机可读介质的一般形式包括:软盘、柔性盘、硬盘、磁带、任意其它磁介质、CD-ROM、CDRW、DVD、任意其它光介质、穿孔卡片、纸带、光标记表单、具有孔或其它光可识别标识的图案的任意其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、任意其它存储器芯片或磁带盒、载波、或计算机可读取的任意其它介质。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种异步微服务调用链路跟踪方法,其中,异步微服务调用包括:根据用户的请求调用第一微服务,以及待所述第一微服务处理完成之后以消息队列的方式调用第二微服务,所述方法包括:
在所述第一微服务处理完成之后,在发送到第一消息队列以用于调用所述第二微服务的消息中插入为所述请求创建的跟踪标识;以及
监听所述第一消息队列中的消息,从监听到的消息中取出所述跟踪标识并且传递给所述第二微服务。
2.根据权利要求1所述的方法,其特征在于,通过消息发送接口在发送到第一消息队列以用于调用所述第二微服务的消息中插入为所述请求创建的跟踪标识,所述消息发送接口是由消息发送超类实现的;以及
通过消息监听接口监听所述第一消息队列中的消息,从监听到的消息中取出所述跟踪标识并且传递给所述第二微服务,所述消息监听接口是由消息监听超类实现的。
3.根据权利要求1或2所述的方法,其特征在于,在从监听到的消息中取出所述跟踪标识并且传递给所述第二微服务之后,所述方法还包括:
生成包括所述跟踪标识的日志。
4.根据权利要求3所述的方法,其特征在于,还包括:
针对多个工作单元中的每个工作单元,创建对应的跨度标识;
其中,所述多个工作单元至少包括:
对应于所述第一微服务的服务处理的工作单元,对应于对所述第二微服务的调用的工作单元,对应于所述第二微服务的服务处理的工作单元。
5.根据权利要求4所述的方法,其特征在于,所生成的日志还包括所属工作单元对应的跨度标识。
6.根据权利要求3所述的方法,其特征在于,在生成包括所述跟踪标识的日志之后,所述方法还包括:
收集已生成的日志,发送至第二消息队列;
从所述第二消息队列中读取日志,对读取到的日志进行格式转换,存储经格式转换的日志;
基于跟踪标识对所存储的日志创建索引;以及
提供可视化平台,其中用户通过所述可视化平台检索所存储的日志。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
分析所存储的日志;
根据分析结果确定是否发出预警。
8.一种异步微服务调用链路跟踪装置,其中,异步微服务调用包括:根据用户的请求调用第一微服务,以及待所述第一微服务处理完成之后以消息队列的方式调用第二微服务,所述装置包括:
消息发送模块,用于在所述第一微服务处理完成之后,在发送到第一消息队列以用于调用所述第二微服务的消息中插入为所述请求创建的跟踪标识;以及
消息监听模块,用于监听所述第一消息队列中的消息,从监听到的消息中取出所述跟踪标识并且传递给所述第二微服务。
9.一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
10.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910675716.4A CN110445643B (zh) | 2019-07-25 | 2019-07-25 | 异步微服务调用链路跟踪方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910675716.4A CN110445643B (zh) | 2019-07-25 | 2019-07-25 | 异步微服务调用链路跟踪方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110445643A true CN110445643A (zh) | 2019-11-12 |
CN110445643B CN110445643B (zh) | 2021-11-16 |
Family
ID=68431324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910675716.4A Active CN110445643B (zh) | 2019-07-25 | 2019-07-25 | 异步微服务调用链路跟踪方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110445643B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078504A (zh) * | 2019-12-25 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 一种分布式调用链跟踪方法、装置、计算机设备及存储介质 |
CN111400028A (zh) * | 2019-12-30 | 2020-07-10 | 交控科技股份有限公司 | 一种列车管理的负载均衡处理方法 |
CN111800292A (zh) * | 2020-05-28 | 2020-10-20 | 中国平安财产保险股份有限公司 | 基于历史流量的预警方法、装置、计算机设备及存储介质 |
CN111865978A (zh) * | 2020-07-20 | 2020-10-30 | 深圳乐信软件技术有限公司 | 一种微服务的请求标识更新方法、装置、设备及介质 |
CN111913789A (zh) * | 2020-06-29 | 2020-11-10 | 浪潮通用软件有限公司 | 一种支持微服务架构的程序跟踪方法及设备、介质 |
CN112015622A (zh) * | 2020-08-24 | 2020-12-01 | 杭州云徙科技有限公司 | 一种应用于业务中台的消息链路跟踪监控方法和系统 |
CN112612675A (zh) * | 2020-12-25 | 2021-04-06 | 山东经伟晟睿数据技术有限公司 | 微服务架构下的分布式大数据日志链路跟踪方法及系统 |
CN112860519A (zh) * | 2021-02-22 | 2021-05-28 | 中国工商银行股份有限公司 | 一种分布式系统的监测方法及装置 |
CN112882919A (zh) * | 2021-03-29 | 2021-06-01 | 浪潮云信息技术股份公司 | 基于log4j的微服务架构的日志链路追踪方法和系统 |
CN112988405A (zh) * | 2019-12-02 | 2021-06-18 | 中国移动通信集团浙江有限公司 | 微服务自动降级方法、装置及计算设备 |
CN113992664A (zh) * | 2020-07-09 | 2022-01-28 | 腾讯科技(深圳)有限公司 | 一种集群通信的方法、相关装置及存储介质 |
CN114172966A (zh) * | 2021-12-07 | 2022-03-11 | 中国工商银行股份有限公司 | 单元化架构下的服务调用方法、服务处理方法及装置 |
CN114338494A (zh) * | 2022-03-13 | 2022-04-12 | 北京金堤科技有限公司 | 服务依赖拓扑关系获取方法和装置、存储介质和电子设备 |
CN114553663A (zh) * | 2022-02-25 | 2022-05-27 | 中国农业银行股份有限公司 | 一种异常检测方法、装置、设备和存储介质 |
CN114745153A (zh) * | 2022-03-10 | 2022-07-12 | 北京汇元网科技股份有限公司 | WFC和log4net结合的链路跟踪方法 |
CN115022410A (zh) * | 2022-05-27 | 2022-09-06 | 北京有竹居网络技术有限公司 | 一种网络请求追踪方法、装置及设备 |
CN115129491A (zh) * | 2022-07-08 | 2022-09-30 | 盐城金堤科技有限公司 | 微服务请求消息跟踪方法、生成方法、装置、介质及设备 |
CN115314542A (zh) * | 2021-04-21 | 2022-11-08 | 深圳联友科技有限公司 | 基于Socket通信协议的链路追踪方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106487805A (zh) * | 2016-11-15 | 2017-03-08 | 乐视控股(北京)有限公司 | 一种远程过程调用跟踪方法及装置 |
CN106533805A (zh) * | 2016-12-23 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种微服务请求处理方法、微服务控制器及微服务架构 |
CN107018042A (zh) * | 2017-04-13 | 2017-08-04 | 广东神马搜索科技有限公司 | 用于在线服务系统的追踪方法及追踪系统 |
US20170331813A1 (en) * | 2016-05-11 | 2017-11-16 | Oracle International Corporation | Task segregation in a multi-tenant identity and data security management cloud service |
CN107766205A (zh) * | 2017-10-10 | 2018-03-06 | 武汉大学 | 一种面向微服务调用过程跟踪的监控系统及方法 |
CN109672741A (zh) * | 2018-12-25 | 2019-04-23 | 鼎信信息科技有限责任公司 | 微服务监控方法、装置、计算机设备和存储介质 |
CN109921927A (zh) * | 2019-02-20 | 2019-06-21 | 苏州人之众信息技术有限公司 | 基于微服务的实时调用链跟踪方法 |
-
2019
- 2019-07-25 CN CN201910675716.4A patent/CN110445643B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170331813A1 (en) * | 2016-05-11 | 2017-11-16 | Oracle International Corporation | Task segregation in a multi-tenant identity and data security management cloud service |
CN106487805A (zh) * | 2016-11-15 | 2017-03-08 | 乐视控股(北京)有限公司 | 一种远程过程调用跟踪方法及装置 |
CN106533805A (zh) * | 2016-12-23 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种微服务请求处理方法、微服务控制器及微服务架构 |
CN107018042A (zh) * | 2017-04-13 | 2017-08-04 | 广东神马搜索科技有限公司 | 用于在线服务系统的追踪方法及追踪系统 |
CN107766205A (zh) * | 2017-10-10 | 2018-03-06 | 武汉大学 | 一种面向微服务调用过程跟踪的监控系统及方法 |
CN109672741A (zh) * | 2018-12-25 | 2019-04-23 | 鼎信信息科技有限责任公司 | 微服务监控方法、装置、计算机设备和存储介质 |
CN109921927A (zh) * | 2019-02-20 | 2019-06-21 | 苏州人之众信息技术有限公司 | 基于微服务的实时调用链跟踪方法 |
Non-Patent Citations (1)
Title |
---|
李春霞: "微服务架构研究概述", 《软件导刊》 * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988405A (zh) * | 2019-12-02 | 2021-06-18 | 中国移动通信集团浙江有限公司 | 微服务自动降级方法、装置及计算设备 |
CN112988405B (zh) * | 2019-12-02 | 2023-12-26 | 中国移动通信集团浙江有限公司 | 微服务自动降级方法、装置及计算设备 |
CN111078504A (zh) * | 2019-12-25 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 一种分布式调用链跟踪方法、装置、计算机设备及存储介质 |
CN111400028A (zh) * | 2019-12-30 | 2020-07-10 | 交控科技股份有限公司 | 一种列车管理的负载均衡处理方法 |
CN111400028B (zh) * | 2019-12-30 | 2023-07-25 | 交控科技股份有限公司 | 一种列车管理的负载均衡处理方法 |
CN111800292A (zh) * | 2020-05-28 | 2020-10-20 | 中国平安财产保险股份有限公司 | 基于历史流量的预警方法、装置、计算机设备及存储介质 |
CN111800292B (zh) * | 2020-05-28 | 2023-08-22 | 中国平安财产保险股份有限公司 | 基于历史流量的预警方法、装置、计算机设备及存储介质 |
CN111913789A (zh) * | 2020-06-29 | 2020-11-10 | 浪潮通用软件有限公司 | 一种支持微服务架构的程序跟踪方法及设备、介质 |
CN113992664A (zh) * | 2020-07-09 | 2022-01-28 | 腾讯科技(深圳)有限公司 | 一种集群通信的方法、相关装置及存储介质 |
CN111865978A (zh) * | 2020-07-20 | 2020-10-30 | 深圳乐信软件技术有限公司 | 一种微服务的请求标识更新方法、装置、设备及介质 |
CN111865978B (zh) * | 2020-07-20 | 2022-11-15 | 深圳乐信软件技术有限公司 | 一种微服务的请求标识更新方法、装置、设备及介质 |
CN112015622A (zh) * | 2020-08-24 | 2020-12-01 | 杭州云徙科技有限公司 | 一种应用于业务中台的消息链路跟踪监控方法和系统 |
CN112612675A (zh) * | 2020-12-25 | 2021-04-06 | 山东经伟晟睿数据技术有限公司 | 微服务架构下的分布式大数据日志链路跟踪方法及系统 |
CN112612675B (zh) * | 2020-12-25 | 2023-02-28 | 山东经伟晟睿数据技术有限公司 | 微服务架构下的分布式大数据日志链路跟踪方法及系统 |
CN112860519A (zh) * | 2021-02-22 | 2021-05-28 | 中国工商银行股份有限公司 | 一种分布式系统的监测方法及装置 |
CN112882919A (zh) * | 2021-03-29 | 2021-06-01 | 浪潮云信息技术股份公司 | 基于log4j的微服务架构的日志链路追踪方法和系统 |
CN115314542A (zh) * | 2021-04-21 | 2022-11-08 | 深圳联友科技有限公司 | 基于Socket通信协议的链路追踪方法及系统 |
CN114172966A (zh) * | 2021-12-07 | 2022-03-11 | 中国工商银行股份有限公司 | 单元化架构下的服务调用方法、服务处理方法及装置 |
CN114172966B (zh) * | 2021-12-07 | 2024-02-06 | 中国工商银行股份有限公司 | 单元化架构下的服务调用方法、服务处理方法及装置 |
CN114553663B (zh) * | 2022-02-25 | 2024-02-02 | 中国农业银行股份有限公司 | 一种异常检测方法、装置、设备和存储介质 |
CN114553663A (zh) * | 2022-02-25 | 2022-05-27 | 中国农业银行股份有限公司 | 一种异常检测方法、装置、设备和存储介质 |
CN114745153A (zh) * | 2022-03-10 | 2022-07-12 | 北京汇元网科技股份有限公司 | WFC和log4net结合的链路跟踪方法 |
CN114745153B (zh) * | 2022-03-10 | 2024-02-27 | 北京汇元网科技股份有限公司 | WCF和log4net结合的链路跟踪方法 |
CN114338494B (zh) * | 2022-03-13 | 2022-05-27 | 北京金堤科技有限公司 | 服务依赖拓扑关系获取方法和装置、存储介质和电子设备 |
CN114338494A (zh) * | 2022-03-13 | 2022-04-12 | 北京金堤科技有限公司 | 服务依赖拓扑关系获取方法和装置、存储介质和电子设备 |
CN115022410A (zh) * | 2022-05-27 | 2022-09-06 | 北京有竹居网络技术有限公司 | 一种网络请求追踪方法、装置及设备 |
CN115129491A (zh) * | 2022-07-08 | 2022-09-30 | 盐城金堤科技有限公司 | 微服务请求消息跟踪方法、生成方法、装置、介质及设备 |
CN115129491B (zh) * | 2022-07-08 | 2024-03-05 | 盐城天眼察微科技有限公司 | 微服务请求消息跟踪方法、生成方法、装置、介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110445643B (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110445643A (zh) | 异步微服务调用链路跟踪方法、装置、介质及电子设备 | |
US11947556B1 (en) | Computerized monitoring of a metric through execution of a search query, determining a root cause of the behavior, and providing a notification thereof | |
US11934417B2 (en) | Dynamically monitoring an information technology networked entity | |
US11244247B2 (en) | Facilitating concurrent forecasting of multiple time series | |
US11106442B1 (en) | Information technology networked entity monitoring with metric selection prior to deployment | |
US11620300B2 (en) | Real-time measurement and system monitoring based on generated dependency graph models of system components | |
US10657146B2 (en) | Techniques for generating structured metrics from ingested events | |
CN109660397B (zh) | 用于采集日志的系统、方法和装置 | |
US20190095478A1 (en) | Information technology networked entity monitoring with automatic reliability scoring | |
US8181069B2 (en) | Method and system for problem determination using probe collections and problem classification for the technical support services | |
US11269872B1 (en) | Intent-based natural language processing system | |
CN108183927A (zh) | 一种分布式系统中链路调用的监控方法及系统 | |
US20170220672A1 (en) | Enhancing time series prediction | |
CN109446274B (zh) | 大数据平台bi元数据管理的方法和装置 | |
CN109495392B (zh) | 报文转换处理方法及装置、电子设备、存储介质 | |
CN111190888A (zh) | 一种管理图数据库集群的方法和装置 | |
US10567557B2 (en) | Automatically adjusting timestamps from remote systems based on time zone differences | |
US20120260265A1 (en) | Extracting and processing data from heterogeneous computer applications | |
US11263267B1 (en) | Apparatuses, methods, and computer program products for generating interaction vectors within a multi-component system | |
CN109639791A (zh) | 一种容器环境下云工作流调度方法及系统 | |
US11068496B2 (en) | System and method for data management | |
CN110351131B (zh) | 一种用于分布式链路的监控方法、装置和电子设备 | |
CN113326261B (zh) | 数据血缘关系提取方法、装置及电子设备 | |
WO2023169165A1 (zh) | 访问数据处理方法和装置、电子设备、计算机可读介质 | |
Vera-Baquero et al. | Big-data analysis of process performance: A case study of smart cities |
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 |