CN113114533B - 分布式服务调用的网络耗时展示方法及装置 - Google Patents

分布式服务调用的网络耗时展示方法及装置 Download PDF

Info

Publication number
CN113114533B
CN113114533B CN202110376808.XA CN202110376808A CN113114533B CN 113114533 B CN113114533 B CN 113114533B CN 202110376808 A CN202110376808 A CN 202110376808A CN 113114533 B CN113114533 B CN 113114533B
Authority
CN
China
Prior art keywords
service
data
network time
link
calling
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
CN202110376808.XA
Other languages
English (en)
Other versions
CN113114533A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110376808.XA priority Critical patent/CN113114533B/zh
Publication of CN113114533A publication Critical patent/CN113114533A/zh
Application granted granted Critical
Publication of CN113114533B publication Critical patent/CN113114533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computational Linguistics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种分布式服务调用的网络耗时展示方法及装置,可应用但不限于大数据领域,该方法包括:采集分布式服务调用的链路数据;根据采集的链路数据,确定分布式服务调用的拓扑关系数据,其中,拓扑关系数据中包含:多条调用链路;根据分布式服务调用的链路数据和拓扑关系数据,计算各条调用链路的网络耗时;根据分布式服务调用的拓扑关系数据和各条调用链路的网络耗时,展示分布式服务调用的网络耗时情况。本发明不仅能够准确计算分布式服务调用过程中各条调用链路的网络耗时,而且能够基于拓扑关系直观展示分布式服务调用的网络耗时情况,有利于故障排查,更完善地监控分布式服务情况。

Description

分布式服务调用的网络耗时展示方法及装置
技术领域
本发明公开了一种分布式服务调用的网络耗时展示方法及装置,可应用于大数据领域,也可应用于除大数据领域以外的任意领域,本发明公开的分布式服务调用的网络耗时展示方法及装置的应用领域不作限定。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在分布式服务调用中,由于不同的应用,部署环境不同,在服务调用过程中除了服务本身所花费的时间之外,还存在着网络传输消耗。因而,计算出接口间、应用集群间、应用间在传输过程中所消耗的时长,能够完整直观地展示和监控整个调用链路的情况。
目前,现有技术主要采用如下两种方案来计算服务调用过程的网络传输耗时:
方案一:基于传输理论,根据传输距离、带宽条件等计算网络传输的耗时。这种方案计算出来的网络耗时数据往往是一个服务器到另一个服务器之间的整体传输时长,并不能区分到应用、服务层次,且计算数据精确度不够。
方案二:在全链路追踪中,也进行了耗时相关数据的计算,但展示的耗时数据主要为调用节点的耗时和服务节点的耗时。这种方案没有单独计算展示出传输过程中的网络耗时,对于网络抖动等引起的耗时异常波动无法直观地可视化展示。
发明内容
本发明实施例中提供了一种分布式服务调用的网络耗时展示方法,用以解决现有分布式服务调用网络耗时计算方案,存在计算结果不准确且难以直观展示网络耗时情况的技术问题,该方法包括:采集分布式服务调用的链路数据;根据采集的链路数据,确定所述分布式服务调用的拓扑关系数据,其中,所述拓扑关系数据中包含:多条调用链路;根据所述分布式服务调用的链路数据和拓扑关系数据,计算各条调用链路的网络耗时;根据所述分布式服务调用的拓扑关系数据和各条调用链路的网络耗时,展示所述分布式服务调用的网络耗时情况。
本发明实施例中还提供了一种分布式服务调用的网络耗时展示装置,用以解决现有分布式服务调用网络耗时计算方案,存在计算结果不准确且难以直观展示网络耗时情况的技术问题,该装置包括:链路数据采集模块,用于采集分布式服务调用的链路数据;拓扑关系确定模块,用于根据采集的链路数据,确定所述分布式服务调用的拓扑关系数据,其中,所述拓扑关系数据中包含:多条调用链路;网络耗时计算模块,用于根据所述分布式服务调用的链路数据和拓扑关系数据,计算各条调用链路的网络耗时;网络耗时展示模块,用于根据所述分布式服务调用的拓扑关系数据和各条调用链路的网络耗时,展示所述分布式服务调用的网络耗时情况。
本发明实施例中还提供了一种计算机设备,用以解决现有分布式服务调用网络耗时计算方案,存在计算结果不准确且难以直观展示网络耗时情况的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述分布式服务调用的网络耗时展示方法。
本发明实施例中还提供了一种计算机可读存储介质,用以解决现有分布式服务调用网络耗时计算方案,存在计算结果不准确且难以直观展示网络耗时情况的技术问题,该计算机可读存储介质存储有执行上述分布式服务调用的网络耗时展示方法的计算机程序。
本发明实施例中提供的分布式服务调用的网络耗时展示方法、装置、计算机设备及计算机可读存储介质,在采集到分布式服务调用的链路数据后,根据采集的链路数据,确定分布式服务调用的拓扑关系数据,进而根据分布式服务调用的链路数据和拓扑关系数据,计算拓扑关系中各条调用链路的网络耗时,最后根据分布式服务调用的拓扑关系数据和各条调用链路的网络耗时,展示分布式服务调用的网络耗时情况。
通过本发明实施例,不仅能够准确计算分布式服务调用过程中各条调用链路的网络耗时,而且能够基于拓扑关系直观展示分布式服务调用的网络耗时情况,有利于故障排查,更完善地监控分布式服务情况。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中提供的一种分布式服务调用的网络耗时展示方法流程图;
图2为本发明实施例中提供的一种链路数据结构示意图;
图3为本发明实施例中提供的一种网络耗时的计算流程图;
图4为本发明实施例中提供的一种网络耗时的计算原理示意图;
图5为本发明实施例中提供的一种可选的分布式服务调用的网络耗时展示方法流程图;
图6为本发明实施例中提供的一种可选的分布式服务调用的网络耗时展示方法流程图;
图7为本发明实施例中提供的一种可选的分布式服务调用的网络耗时展示方法流程图;
图8为本发明实施例中提供的一种分布式服务调用的网络耗时展示系统示意图;
图9为本发明实施例中提供的一种分布式服务调用的网络耗时展示界面示意图;
图10为本发明实施例中提供的一种分布式服务调用的网络耗时展示装置示意图;
图11为本发明实施例中提供的一种可选的分布式服务调用的网络耗时展示装置示意图;
图12为本发明实施例中提供的一种计算机设备示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本发明实施例中提供了一种分布式服务调用的网络耗时展示方法,图1为本发明实施例中提供的一种分布式服务调用的网络耗时展示方法流程图,如图1所示,该方法包括如下步骤:
S101,采集分布式服务调用的链路数据。
需要说明的是,本发明实施例中采集的链路数据可以是分布式服务调用的全链路数据。上述S101在具体实施时,可以在在分布式服务调用过程当中,通过埋点的方式进行链路数据的采集,具体采集的链路数据结构如图2所示,包括但不限于:链路ID、当前调用ID、上一次调用ID、名称、当前节点、调用发起时刻等数据。
其中,链路ID是指链路的唯一标识,用于跟踪标识单个服务调用请求的调用链路;当前调用ID标识当前调用的唯一ID;上一次调用ID标识上一次调用的Span ID,与当前的Span ID结合可标识出链路调用情况;当前节点表示当前所处的节点,用于标识当前节点属于服务端还是调用端,是请求发送时还是请求返回节点;调用发起时刻表示服务调用方服务器发起服务调用请求的时刻。
S102,根据采集的链路数据,确定分布式服务调用的拓扑关系数据,其中,拓扑关系数据中包含:多条调用链路。
需要说明的是,上述S102中的拓扑关系数据是指表征调用链路拓扑关系的数据。由于分布式服务调用过程中会涉及到多条调用链路,根据采集的分布式服务调用的链路数据,通过拓扑计算,可构建出调用链路的拓扑关系。
S103,根据分布式服务调用的链路数据和拓扑关系数据,计算各条调用链路的网络耗时。
需要说明的是,本发明实施例中,根据分布式服务调用过程中调用链路的拓扑关系,能够确定各个服务调用的服务调用方节点和服务提供方节点,以便根据单个服务调用的服务调用方节点和服务提供方节点,计算单个服务调用的网络耗时。
S104,根据分布式服务调用的拓扑关系数据和各条调用链路的网络耗时,展示分布式服务调用的网络耗时情况。
在计算出分布式服务调用的各条调用链路的网络耗时,可以基于分布式服务调用的拓扑关系,可视化展示分布式服务调用的网络耗时情况,以便监控人员直观了解各条调用链路的网络耗时。
在一个实施例中,如图3所示,在根据分布式服务调用的链路数据和拓扑关系数据,计算各条调用链路的网络耗时的时候,可以通过如下步骤来实现:
S301,根据分布式服务调用的链路数据和拓扑关系数据,确定单个服务调用的服务调用方节点和服务提供方节点;
S302,获取服务调用方节点的请求发送时刻和服务提供方节点的请求接收时刻,并根据服务调用方节点的请求发送时刻和服务提供方节点的请求接收时刻,计算单程服务调用的网络耗时;
S303,获取服务提供方节点服务发送时刻和服务调用方节点的服务接收时刻,并根据服务提供方节点服务发送时刻和服务调用方节点的服务接收时刻,计算单程服务返回的网络耗时。
需要说明的是,本发明实施例中对于单个服务调用的网络耗时计算,将服务调用请求接收时刻(即服务提供方节点的请求接收时刻)与服务调用请求发送时刻(即服务调用方节点的请求发送时刻)的时间差值,作为单程服务调用的网络耗时;将服务接收时刻(即服务调用方节点的服务接收时刻)与服务发送时刻(即服务提供方节点服务发送时刻)的时间差值,作为单程服务返回的网络耗时,能够准确计算出单个服务调用链路上因网络传输消耗的时长。本发明实施例中提供的网络耗时计算方法,能够便于分布式扩展。
图4为本发明实施例中提供的一种网络耗时的计算原理示意图,如图4所示,按照链路ID相同的所有spans(一个单独的调用链,称为一个span)进行处理,存量计算md5(应用到应用、集群到集群、服务到服务的三种拓扑关系和标记这条链路的值)后,如果md5不为空,则进行网络耗时计算。
本发明实施例中,只针对一个span中的Annotation同时包含cs、cr、sr、ss节点的span进行计算。其中,cs全称为customer send表示服务调用请求发送;cr全称为全称为customer received表示服务调用请求接收;sr全称为service received表示服务接收;ss全称为service send表示服务发送。
单程调用网络耗时:go=sr timestamp-cs timestamp;其中,sr timestamp表示服务调用请求接收时刻;cs timestamp表示服务调用请求发送时刻;
单程返回网络耗时:back=cr timestamp-ss timestamp;其中,cr timestamp表示服务接收时刻;ss timestamp表示服务发送时刻;
同时记录应用、集群、服务等信息。
由于调用方服务器时间与提供方服务器时间可能不一致,在计算出单程调用网络耗时和单程返回网络耗时后,需要对其进行时间偏移修正,以准确展示单程耗时数据。
网络耗时数据经Redis数据库聚合后发送数据到kafka消息队列。
在具体实施时,对<md5、cluster、serviceName、remoteCluster、remoteServiceName>执行hash计算后作为key写入本地缓存caffeine,设置为5秒无写入即从caffeine退出;将<key,set<object>>格式存入Redis数据库;当读取到caffeine退出事件时进行聚合计算;执行累加count++,sum(gotime),sum(backtime)后,将网络耗时数据发往时序数据库进行存储。
由于不同的服务器设备可能存在时间偏差(例如,一台北京的服务器与一台日本的服务器会因网络所在区域不同存在时差),因而,在一个实施例中,如图5所示,本发明实施例中提供的分布式服务调用的网络耗时展示方法还可包括如下步骤:
S501,获取服务调用方节点和服务提供方节点的设备时差;
S502,根据服务调用方节点和服务提供方节点的设备时差,对单程服务调用的网络耗时或单程服务返回的网络耗时进行修正。
通过上述实施例,对计算出的单程服务调用的网络耗时或单程服务返回的网络耗时进行修正,能够使得计算出的网络耗时更加准确。
由于网络耗时数据和拓扑关系数据的数据内容和格式不同,因而,在一个实施例中,如图6所示,在根据分布式服务调用的拓扑关系数据和各条调用链路的网络耗时,展示分布式服务调用的网络耗时情况之前,本发明实施例中提供的分布式服务调用的网络耗时展示方法还可包括如下步骤:
S601,将分布式服务调用的拓扑关系数据存储于图数据库中;
S602,将各条调用链路的网络耗时数据存储于时序数据库中;
S603,基于图数据库存储的拓扑关系数据和时序数据库存储的网络耗时数据,展示分布式服务调用的网络耗时情况。
可选地,一个实施例中,在将分布式服务调用的拓扑关系数据存储于图数据库中的时候,可以将待存储的拓扑关系数据发送到Kafka消息队列中;然后从Kafka消息队列中读取拓扑关系数据,存储于图数据库中。该实施例中,基于消息队列传输数据,能够实现拓扑关系数据的异步传输。
可选地,一个实施例中,在将各条调用链路的网络耗时数据存储于时序数据库中的时候,可以将各条调用链路的网络耗时数据发送到Kafka消息队列中;然后从Kafka消息队列中读取网络耗时数据,存储于时序数据库中。该实施例中,基于消息队列传输数据,能够实现网络耗时数据的异步传输。
在一个实施例中,如图7所示,在采集分布式服务调用的链路数据之后,本发明实施例中提供的分布式服务调用的网络耗时展示方法还可包括如下步骤:
S701,将采集的链路数据发送到Kafka消息队列中。
S702,从Kafka消息队列中读取链路数据,确定分布式服务调用的拓扑关系数据;
S703,根据分布式服务调用的拓扑关系数据,从Kafka消息队列中读取链路数据,计算各条调用链路的网络耗时;
S704,将各条调用链路的网络耗时数据,存储于Redis数据库中。
在上述实施例中,基于消息队列传输采集的链路数据,能够实现数据采集和数据处理的解耦。基于Redis数据库缓存网络耗时数据,能够避免频繁读取数据库的问题。
图8为本发明实施例中提供的一种分布式服务调用的网络耗时展示系统示意图,如图8所示,在分布式服务调用的过程中,通过埋点的方式对分布式服务调用过程中涉及的调用链路进行数据采集;根据采集的链路数据,可构建出调用链路的拓扑关系,并基于采集到的链路数据与拓扑关系进行网络耗时的计算。由于网络耗时数据和拓扑关系数据的数据内容与格式不同,可将网络耗时数据和拓扑关系数据分开存储,将网络耗时数据存储于时序数据库中,将拓扑关系数据存储于图数据库中,以便快速查询并展示数据。基于时序数据库中存储的网络耗时数据和图数据库中存储的拓扑关系数据,可在前端可视化展示分布式服务调用的网络耗时情况。由于拓扑关系相对稳定,网络耗时数据可根据时间范围进行不同维度的聚合展示。图9示出了本发明实施例中提供的一种分布式服务调用的网络耗时展示界面。
基于同一发明构思,本发明实施例中还提供了一种分布式服务调用的网络耗时展示装置,如下面的实施例所述。由于该装置解决问题的原理与分布式服务调用的网络耗时展示方法相似,因此该装置的实施可以参见分布式服务调用的网络耗时展示方法的实施,重复之处不再赘述。
图10为本发明实施例中提供的一种分布式服务调用的网络耗时展示装置示意图,如图10所示,该装置包括:链路数据采集模块11、拓扑关系确定模块12、网络耗时计算模块13和网络耗时展示模块14。
其中,链路数据采集模块11,用于采集分布式服务调用的链路数据;拓扑关系确定模块12,用于根据采集的链路数据,确定分布式服务调用的拓扑关系数据,其中,拓扑关系数据中包含:多条调用链路;网络耗时计算模块13,用于根据分布式服务调用的链路数据和拓扑关系数据,计算各条调用链路的网络耗时;网络耗时展示模块14,用于根据分布式服务调用的拓扑关系数据和各条调用链路的网络耗时,展示分布式服务调用的网络耗时情况。
此处需要说明的是,上述链路数据采集模块11、拓扑关系确定模块12、网络耗时计算模块13和网络耗时展示模块14对应于方法实施例中的S101~S104,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述方法实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
在一个实施例中,如图11所示,本发明实施例中提供的分布式服务调用的网络耗时展示装置中,网络耗时计算模块13可具体包括:单个服务调用信息确定单元131、单程服务调用网络耗时计算单元132和单程服务返回网络耗时计算单元133。
其中,单个服务调用信息确定单元131,用于根据分布式服务调用的链路数据和拓扑关系数据,确定单个服务调用的服务调用方节点和服务提供方节点;单程服务调用网络耗时计算单元132,用于获取服务调用方节点的请求发送时刻和服务提供方节点的请求接收时刻,并根据服务调用方节点的请求发送时刻和服务提供方节点的请求接收时刻,计算单程服务调用的网络耗时;单程服务返回网络耗时计算单元133,用于获取服务提供方节点服务发送时刻和服务调用方节点的服务接收时刻,并根据服务提供方节点服务发送时刻和服务调用方节点的服务接收时刻,计算单程服务返回的网络耗时。
在一个实施例中,如图11所示,本发明实施例中提供的分布式服务调用的网络耗时展示装置还可包括:网络耗时修正模块15,用于获取服务调用方节点和服务提供方节点的设备时差;以及根据服务调用方节点和服务提供方节点的设备时差,对单程服务调用的网络耗时或单程服务返回的网络耗时进行修正。
在一个实施例中,如图11所示,本发明实施例中提供的分布式服务调用的网络耗时展示装置还可包括:图数据库模块16,用于将分布式服务调用的拓扑关系数据存储于图数据库中;时序数据库模块17,用于将各条调用链路的网络耗时数据存储于时序数据库中;则上述网络耗时展示模块14还用于基于图数据库存储的拓扑关系数据和时序数据库存储的网络耗时数据,展示分布式服务调用的网络耗时情况。
在一个实施例中,本发明实施例中提供的分布式服务调用的网络耗时展示装置中,图数据库模块16还用于:将待存储的拓扑关系数据发送到Kafka消息队列中;以及从Kafka消息队列中读取拓扑关系数据,存储于图数据库中。
在一个实施例中,本发明实施例中提供的分布式服务调用的网络耗时展示装置中,时序数据库模块17还用于:将各条调用链路的网络耗时数据发送到Kafka消息队列中;以及从Kafka消息队列中读取网络耗时数据,存储于时序数据库中。
在一个实施例中,本发明实施例中提供的分布式服务调用的网络耗时展示装置还可包括:Kafka消息队列模块18,用于将采集的链路数据发送到Kafka消息队列中。
在一个实施例中,如图11所示,本发明实施例中提供的分布式服务调用的网络耗时展示装置中,网络耗时计算模块13包括:数据读取单元134,用于从Kafka消息队列中读取链路数据,确定分布式服务调用的拓扑关系数据;网络耗时计算单元135,用于根据分布式服务调用的拓扑关系数据,从Kafka消息队列中读取链路数据,计算各条调用链路的网络耗时;Redis数据库单元136,用于将各条调用链路的网络耗时数据,存储于Redis数据库中。
基于同一发明构思,本发明实施例中还提供了一种计算机设备,用以解决现有分布式服务调用网络耗时计算方案,存在计算结果不准确且难以直观展示网络耗时情况的技术问题,图12为本发明实施例中提供的一种计算机设备示意图,如图12所示,该计算机设备120包括存储器1201、处理器1202及存储在存储器1201上并可在处理器1202上运行的计算机程序,处理器1202执行计算机程序时实现上述分布式服务调用的网络耗时展示方法。
基于同一发明构思,本发明实施例中还提供了一种计算机可读存储介质,用以解决现有分布式服务调用网络耗时计算方案,存在计算结果不准确且难以直观展示网络耗时情况的技术问题,该计算机可读存储介质存储有执行上述分布式服务调用的网络耗时展示方法的计算机程序。
综上所述,本发明实施例中提供的分布式服务调用的网络耗时展示方法、装置、计算机设备及计算机可读存储介质,在采集到分布式服务调用的链路数据后,根据采集的链路数据,确定分布式服务调用的拓扑关系数据,进而根据分布式服务调用的链路数据和拓扑关系数据,计算拓扑关系中各条调用链路的网络耗时,最后根据分布式服务调用的拓扑关系数据和各条调用链路的网络耗时,展示分布式服务调用的网络耗时情况。
通过本发明实施例,不仅能够准确计算分布式服务调用过程中各条调用链路的网络耗时,而且能够基于拓扑关系直观展示分布式服务调用的网络耗时情况,本发明实施例中,从业务全链路的视角出发,监控整个业务流程分布式服务调用的健康状况,直观看到全局和上下游,有利于故障排查,方便快速发现、定位问题。且本发明实施例中提供的网络耗时计算方法,能够便于分布式扩展。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种分布式服务调用的网络耗时展示方法,其特征在于,包括:
采集分布式服务调用的链路数据;所述链路数据包括:链路ID、当前调用ID、上一次调用ID、名称、当前节点、调用发起时刻;
根据采集的链路数据,通过拓扑计算,确定所述分布式服务调用的拓扑关系数据,其中,所述拓扑关系数据中包含:多条调用链路;
根据所述分布式服务调用的链路数据和拓扑关系数据,计算各条调用链路的网络耗时;
根据所述分布式服务调用的拓扑关系数据和各条调用链路的网络耗时,展示所述分布式服务调用的网络耗时情况;
根据所述分布式服务调用的链路数据和拓扑关系数据,计算各条调用链路的网络耗时,包括:
根据所述分布式服务调用的链路数据和拓扑关系数据,确定单个服务调用的服务调用方节点和服务提供方节点;
获取服务调用方节点的请求发送时刻和服务提供方节点的请求接收时刻,并根据服务调用方节点的请求发送时刻和服务提供方节点的请求接收时刻,计算单程服务调用的网络耗时;
获取服务提供方节点服务发送时刻和服务调用方节点的服务接收时刻,并根据服务提供方节点服务发送时刻和服务调用方节点的服务接收时刻,计算单程服务返回的网络耗时;
所述方法还包括:
获取服务调用方节点和服务提供方节点的设备时差;
根据服务调用方节点和服务提供方节点的设备时差,对单程服务调用的网络耗时或单程服务返回的网络耗时进行修正;
在采集分布式服务调用的链路数据之后,所述方法还包括:
将采集的链路数据发送到Kafka消息队列中;
根据所述分布式服务调用的链路数据和拓扑关系数据,计算各条调用链路的网络耗时,包括:
从Kafka消息队列中读取链路数据,确定所述分布式服务调用的拓扑关系数据;
根据所述分布式服务调用的拓扑关系数据,从Kafka消息队列中读取链路数据,计算各条调用链路的网络耗时;
将各条调用链路的网络耗时数据,存储于Redis数据库中。
2.如权利要求1所述的方法,其特征在于,在根据所述分布式服务调用的拓扑关系数据和各条调用链路的网络耗时,展示所述分布式服务调用的网络耗时情况之前,所述方法还包括:
将所述分布式服务调用的拓扑关系数据存储于图数据库中;
将各条调用链路的网络耗时数据存储于时序数据库中;
其中,根据所述分布式服务调用的拓扑关系数据和各条调用链路的网络耗时,展示所述分布式服务调用的网络耗时情况,包括:基于所述图数据库存储的拓扑关系数据和所述时序数据库存储的网络耗时数据,展示所述分布式服务调用的网络耗时情况。
3.如权利要求2所述的方法,其特征在于,将所述分布式服务调用的拓扑关系数据存储于图数据库中,包括:
将待存储的拓扑关系数据发送到Kafka消息队列中;
从Kafka消息队列中读取拓扑关系数据,存储于所述图数据库中。
4.如权利要求2所述的方法,其特征在于,将各条调用链路的网络耗时数据存储于时序数据库中,包括:
将各条调用链路的网络耗时数据发送到Kafka消息队列中;
从Kafka消息队列中读取网络耗时数据,存储于所述时序数据库中。
5.一种分布式服务调用的网络耗时展示装置,其特征在于,包括:
链路数据采集模块,用于采集分布式服务调用的链路数据;所述链路数据包括:链路ID、当前调用ID、上一次调用ID、名称、当前节点、调用发起时刻;
拓扑关系确定模块,用于根据采集的链路数据,通过拓扑计算,确定所述分布式服务调用的拓扑关系数据,其中,所述拓扑关系数据中包含:多条调用链路;
网络耗时计算模块,用于根据所述分布式服务调用的链路数据和拓扑关系数据,计算各条调用链路的网络耗时;
网络耗时展示模块,用于根据所述分布式服务调用的拓扑关系数据和各条调用链路的网络耗时,展示所述分布式服务调用的网络耗时情况;
所述网络耗时计算模块包括:
单个服务调用信息确定单元,用于根据所述分布式服务调用的链路数据和拓扑关系数据,确定单个服务调用的服务调用方节点和服务提供方节点;
单程服务调用网络耗时计算单元,用于获取服务调用方节点的请求发送时刻和服务提供方节点的请求接收时刻,并根据服务调用方节点的请求发送时刻和服务提供方节点的请求接收时刻,计算单程服务调用的网络耗时;
单程服务返回网络耗时计算单元,用于获取服务提供方节点服务发送时刻和服务调用方节点的服务接收时刻,并根据服务提供方节点服务发送时刻和服务调用方节点的服务接收时刻,计算单程服务返回的网络耗时;
所述装置还包括:
网络耗时修正模块,用于获取服务调用方节点和服务提供方节点的设备时差;以及根据服务调用方节点和服务提供方节点的设备时差,对单程服务调用的网络耗时或单程服务返回的网络耗时进行修正;
所述装置还包括:
Kafka消息队列模块,用于将采集的链路数据发送到Kafka消息队列中;
所述网络耗时计算模块包括:
数据读取单元,用于从Kafka消息队列中读取链路数据,确定所述分布式服务调用的拓扑关系数据;
网络耗时计算单元,用于根据所述分布式服务调用的拓扑关系数据,从Kafka消息队列中读取链路数据,计算各条调用链路的网络耗时;
Redis数据库单元,用于将各条调用链路的网络耗时数据,存储于Redis数据库中。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:
图数据库模块,用于将所述分布式服务调用的拓扑关系数据存储于图数据库中;
时序数据库模块,用于将各条调用链路的网络耗时数据存储于时序数据库中;
其中,所述网络耗时展示模块还用于:基于所述图数据库存储的拓扑关系数据和所述时序数据库存储的网络耗时数据,展示所述分布式服务调用的网络耗时情况。
7.如权利要求6所述的装置,其特征在于,所述图数据库模块还用于:将待存储的拓扑关系数据发送到Kafka消息队列中;以及从Kafka消息队列中读取拓扑关系数据,存储于所述图数据库中。
8.如权利要求7所述的装置,其特征在于,所述时序数据库模块还用于:将各条调用链路的网络耗时数据发送到Kafka消息队列中;以及从Kafka消息队列中读取网络耗时数据,存储于所述时序数据库中。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述分布式服务调用的网络耗时展示方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被计算机执行时实现所述权利要求1至4任一项所述方法。
CN202110376808.XA 2021-04-08 2021-04-08 分布式服务调用的网络耗时展示方法及装置 Active CN113114533B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110376808.XA CN113114533B (zh) 2021-04-08 2021-04-08 分布式服务调用的网络耗时展示方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110376808.XA CN113114533B (zh) 2021-04-08 2021-04-08 分布式服务调用的网络耗时展示方法及装置

Publications (2)

Publication Number Publication Date
CN113114533A CN113114533A (zh) 2021-07-13
CN113114533B true CN113114533B (zh) 2023-04-07

Family

ID=76714804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110376808.XA Active CN113114533B (zh) 2021-04-08 2021-04-08 分布式服务调用的网络耗时展示方法及装置

Country Status (1)

Country Link
CN (1) CN113114533B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113810234B (zh) * 2021-09-18 2023-04-18 北京字跳网络技术有限公司 微服务链路拓扑处理方法、装置及可读存储介质
CN114629768A (zh) * 2022-02-17 2022-06-14 亚信科技(南京)有限公司 应用拓扑的处理方法、装置、电子设备、存储介质及产品
CN114785709A (zh) * 2022-03-24 2022-07-22 中国农业银行股份有限公司 一种全链路生产压力测试的监控方法及装置
CN115509869B (zh) * 2022-08-26 2023-10-31 国科础石(重庆)软件有限公司 服务调用链数据可视化展示的方法、装置以及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104219316B (zh) * 2014-09-12 2018-03-23 微梦创科网络科技(中国)有限公司 一种分布式系统中的调用请求处理方法及装置
CN108183927A (zh) * 2017-11-22 2018-06-19 链家网(北京)科技有限公司 一种分布式系统中链路调用的监控方法及系统
CN108038145A (zh) * 2017-11-23 2018-05-15 携程旅游网络技术(上海)有限公司 分布式服务跟踪方法、系统、存储介质和电子设备
CN111464373A (zh) * 2019-01-18 2020-07-28 苏宁易购集团股份有限公司 一种微服务全链路监控系统及方法
CN111078504A (zh) * 2019-12-25 2020-04-28 深圳前海环融联易信息科技服务有限公司 一种分布式调用链跟踪方法、装置、计算机设备及存储介质
CN111934793B (zh) * 2020-07-31 2022-08-02 中国工商银行股份有限公司 一种互联网架构全链路监控方法及装置

Also Published As

Publication number Publication date
CN113114533A (zh) 2021-07-13

Similar Documents

Publication Publication Date Title
CN113114533B (zh) 分布式服务调用的网络耗时展示方法及装置
CN101926154B (zh) 帧丢失测定方法、系统以及装置
US7590666B2 (en) Predicting capacity consumption in a memory component
CN106815254B (zh) 一种数据处理方法和装置
CN111966289B (zh) 基于Kafka集群的分区优化方法和系统
US9312974B2 (en) Master apparatus and slave apparatus and time-synchronization method
US11310140B2 (en) Mitigating failure in request handling
US10191800B2 (en) Metric payload ingestion and replay
CN111008105A (zh) 一种分布式系统调用关系可视化方法及装置
CN110503297B (zh) 业务场景获取方法、装置、电子设备及介质
CN112751722B (zh) 数据传输质量监控方法和系统
CN112416731B (zh) 应用于区块链系统的稳定性监测方法及装置
US20210241202A1 (en) Tracking of equipment utilization via distributed ledger
CN111414372B (zh) 数据同步方法、装置、系统、设备和存储介质
CN109829016B (zh) 一种数据同步方法及装置
CN101894119B (zh) 用于监控的海量数据的储存
CN113157472A (zh) 一种服务信息处理方法、装置、设备及计算机存储介质
CN112256714A (zh) 数据同步方法、装置、电子设备和计算机可读介质
CN110750424A (zh) 资源巡检方法和装置
CN117273811B (zh) 基于用电数据的企业用电预测数据处理方法
CN112968933B (zh) 数据传输方法、装置、服务器及存储介质
US20230344738A1 (en) One way latency estimation without clock synchronization
CN112115119B (zh) 一种图数据库的服务性能监测方法、装置以及存储介质
CN115412463B (zh) 时延测量方法、装置及数字孪生网络
CN111836136A (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