CN111049878B - 微服务调用链具象化的方法、装置、电子装置及存储介质 - Google Patents
微服务调用链具象化的方法、装置、电子装置及存储介质 Download PDFInfo
- Publication number
- CN111049878B CN111049878B CN201911010795.3A CN201911010795A CN111049878B CN 111049878 B CN111049878 B CN 111049878B CN 201911010795 A CN201911010795 A CN 201911010795A CN 111049878 B CN111049878 B CN 111049878B
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- data
- call
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种微服务调用链具象化的方法,包括:接收客户端发出的业务请求;根据所述业务请求,确定响应所述业务请求的目标微服务调用链;采集所述目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序;采集与所述业务请求相关的第一数据;采集所述微服务调用链上的所有微服务调用过程中的第二数据;及根据目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序、第一数据和第二数据生成所述微服务调用链的画像。本发明还提供一种微服务调用链具象化的装置、电子装置及存储介质。通过本发明可以对微服务调用链的串联过程进行留痕,以图形形式动态展示串联过程及调用状态,为业务系统的运维提供可视化信息,降低运维的复杂度。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种微服务调用链具象化的方法、装置、电子装置及存储介质。
背景技术
一个完整的微服务系统包含多个微服务单元,各个微服务单元存在互相调用的情况,就会形成一个调用链。客户端的请求从发出到被响应经历了哪些组件、哪些微服务、请求总时长、每个组件所花时长等信息,是我们有必要了解和收集的信息。这些信息可以帮助我们定位性能瓶颈、进行性能调优。然而现有技术中上述信息是以文本或数据的形式展现,不利于用户直观了解所述客户端的请求的调用情况。
虽然微服务化带来了业务系统的深度解耦。但是微服务的细粒度化,意味着原来的一笔业务逻辑,需要通过串联多个微服务接口,最终形成复杂的微服务调用链。微服务调用链的存在,给业务系统的运维增添了复杂性。
发明内容
鉴于以上内容,有必要提出一种微服务调用链具象化的方法、装置、电子装置及存储介质,可以图形化展示微服务调用链。
本发明的第一方面提供一种微服务调用链具象化的方法,所述方法包括:
接收客户端发出的业务请求;
根据所述业务请求,确定响应所述业务请求的目标微服务调用链;
采集所述目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序;
采集与所述业务请求相关的第一数据;
采集所述微服务调用链上的所有微服务调用过程中的第二数据;及
根据目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序、第一数据和第二数据生成所述微服务调用链的画像。
优选地,所述第一数据包括业务请求ID、业务请求时长和业务请求状态数据,其中,所述业务请求状态数据包括调用成功、调用失败和未调用。
优选地,所述第二数据包括微服务ID、输入数据、输出数据、调用时间、消耗时间以及结果状态数据。
优选地,所述根据目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序、第一数据和第二数据生成所述微服务调用链的画像的步骤包括:
通过业务请求ID检索出与业务请求相关的第一数据和微服务元数据;
根据所述第一数据生成业务信息描述图及根据所述微服务元数据生成微服务表示图形和指向;
通过所述业务请求ID检索出微服务的调用过程中的第二数据;
根据所述第二数据更新所述微服务表示图形的颜色。
优选地,所述方法还包括:
当接收到触发查看微服务的调用信息的请求时,展示所述微服务对应的调用信息。
优选地,所述方法包括:
通过序列化的方式将所述输入数据与输出数据转换成JSON格式字符串。
优选地,在业务方法内部设置业务请求状态数据的钩子,通过所述业务请求状态数据的钩子采集所述业务请求的耗时以及所述业务请求状态数据;
通过在微服务内部设置钩子,采集所述微服务调用过程中的第二数据。
本发明的第二方面提供一种微服务调用链具象化的装置,所述装置包括:
接收模块,用于接收客户端发出的业务请求;
确定模块,用于根据所述业务请求,确定响应所述业务请求的目标微服务调用链;
采集模块,用于采集所述目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序;
所述采集模块,还用于采集与所述业务请求相关的第一数据;
所述采集模块,还用于采集所述微服务调用链上的所有微服务调用过程中的第二数据;及
处理模块,用于根据目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序、第一数据和第二数据生成所述微服务调用链的画像。
本发明的第三方面提供一种电子装置,所述电子装置包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述微服务调用链具象化的方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述微服务调用链具象化的方法。
本发明所述的微服务调用链具象化的方法、装置、电子装置及存储介质。通过采集所述目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序;采集与所述业务请求相关的第一数据,采集所述目标微服务调用链上的所有微服务调用过程中的第二数据,生成所述目标微服务调用链的画像。从而可以对微服务调用链的调用过程进行留痕,以图形形式动态展示调用过程及调用状态,为业务系统的运维提供可视化信息,降低运维的复杂度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例一提供的微服务调用链具象化的方法的流程图。
图2是本发明微服务调用链画像示意图。
图3是本发明实施例二提供的微服务调用链具象化的装置的功能模块图。
图4是本发明实施例三提供的电子装置的示意图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例的微服务调用链具象化的方法应用在电子装置中。所述对于需要进微服务调用链具象化的电子装置,可以直接在电子装置上集成本发明的方法所提供的微服务调用链具象化的功能,或者安装用于实现本发明的方法的客户端。再如,本发明所提供的方法还可以以软件开发工具包(Software Development Kit,SDK)的形式运行在服务器等设备上,以SDK的形式提供微服务调用链具象化的功能的接口,电子装置或其他设备通过提供的接口即可实现微服务调用链具象化的功能。
实施例一
图1是本发明实施例一提供的微服务调用链具象化的方法的流程图。根据不同的需求,所述流程图中的执行顺序可以改变,某些步骤可以省略。
步骤S1,接收客户端发出的业务请求。
在本实施方式中,所述业务请求可以是HTTP请求,所述HTTP请求的业务可以是人脸识别服务、或声纹识别服务。
步骤S2,根据所述业务请求,确定响应所述业务请求的目标微服务调用链。
在本实施方式中,所述调用链指在客户端的页面发起一个业务请求,通常会伴随多个微服务的调用,这样就会生成一条微服务调用链。具体的,在获取到客户端发起的业务请求后,则可以根据该业务请求确定响应业务请求的目标微服务调用链,即确定响应用户请求所需要的首个微服务以及首个微服务需要调用的子微服务,各子微服务也可能还需要再次调用其他微服务等等,最终确定能够响应业务请求的完整的微服务调用链,即为目标微服务调用链。可以理解的,目标微服务调用链可以是一条也可以是多条,本实施例不做限定。
举例而言,当用户通过客户端发起一个业务请求时,首先到达A服务,然后分别对B服务和C服务进行调用。B服务处理完给A服务做出响应,但是C服务还需要和后端的D服务和E服务交互之后再返还给A服务,即C服务还需要调用D服务和E服务,之后再返还给A服务,最后由A服务来响应用户的请求。
步骤S3,采集所述目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序。
在本实施方式中,通过微服务调用链声明来采集微服务调用链上的所有微服务的元数据以及各个微服务的调用顺序。所述微服务的元数据用于描述所述微服务调用链的图形骨架。所述元数据可以是服务接口信息。因此,通过采集的所有微服务的元数据以及各个微服务的调用顺序可以初步构建所述调用链的画像骨架。
例如,当客户端发出业务请求至所述业务请求被响应的过程中需要调用A服务、B服务、C服务和D服务。所述微服务调用链声明可以采集A服务的元数据、B服务的元数据、C服务的元数据和D服务的元数据,以及所述A服务、B服务、C服务和D服务的调用顺序,如A服务-C服务-B服务-D服务。
具体地,在本实施方式中,根据所述业务请求在业务方法入口处声明服务接口的元数据信息,即通过在业务方法入口处通过注解的方式进行微服务调用链声明,注解的信息包含业务名称、业务描述、业务逻辑内调用的微服务的ID、名称、类型、描述、调用顺序等。
步骤S4,采集与所述业务请求相关的第一数据。
在本实施方式中,所述业务请求相关的第一数据包括业务请求ID、业务请求时长和业务请求状态数据。需要说明的是,每一笔的业务请求的调用,都会产生一个唯一的业务请求ID,所述业务请求ID可以贯穿整个微服务调用链。通过所述业务请求ID,可以检索到业务逻辑中涉及的所有微服务的实例数据。
在本实施方式中,通过在业务调用入口处生成所述业务请求ID,同时将所述业务请求ID存储到线程局部变量中,后续的微服务可以直接从线程局部变量中获取所述业务请求ID。同时在业务方法内部设置业务请求状态数据的钩子(HOOK),通过所述业务请求状态数据的钩子可以采集所述业务请求的耗时以及所述业务请求状态数据。所述业务请求状态数据包括调用成功、调用失败和未调用。
步骤S5,采集所述微服务调用链上的所有微服务调用过程中的第二数据。
在本实施方式中,所述微服务调用过程中的第二数据包括微服务ID、输入数据、输出数据、调用时间、消耗时间以及结果状态数据。在微服务调用过程中,收集每一次的微服务调用过程中所产生的微服务ID、输入数据、输出数据、调用时间、消耗时间及结果状态数据,从而为所述微服务调用链的画像准备实例数据。所述消耗时间指当微服务调用一个组件时,从发出请求开始到被响应的过程所持续的时间。
具体地,通过在微服务内部设置钩子,采集所述微服务调用过程中的第二数据,并从线程局部变量中获取微服务ID,将所述微服务ID与微服务的过程数据合并在一起存储。
优选地,由于微服务的输入数据与输出数据结构比较复杂,本方法还可以通过序列化的方式,将所述输入数据与输出数据转换成可辨识的JSON格式字符串。
步骤S6,根据目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序、第一数据和第二数据生成所述微服务调用链的画像。
在本实施方式中,经过步骤S3、步骤S4和步骤S5可以将所述微服务调用链画像所需的数据准备完成。然后,根据采集的元数据和实例数据生成每一次实例调用链的图像,例如,通过图表将骨架数据和业务请求相关的数据串联在一起,形成最终的调用链画像图100,如图2所示。
具体地,生成所述微服务调用链的画像的过程如下:
(1)通过业务请求ID检索出业务请求相关的第一数据和微服务元数据;
(2)根据所述第一数据生成业务信息描述图,及根据所述微服务元数据生成微服务表示图形和指向;
在本实施方式中,所述业务信息描述图用于描述所述业务请求的调用情况。通过所述业务信息描述图可以展示业务名称、业务请求ID、状态、调用时长等信息,如图2中的显示框图110所示。微服务表示图形和指向可以描述所述目标微服务调用链上的所有微服务及调用顺序。如图2所示,目标微服务调用链上包括服务A、服务B和服务C,且调用顺序为先服务A、再服务B,再服务C。
(3)通过所述业务请求ID检索出微服务的调用过程中的第二数据;
在本实施方式中,所述第二数据包括微服务ID、输入数据、输出数据、调用时间、消耗时间以及结果状态数据。所述结果状态数据包括调用成功、调用失败和未调用。如图2所示,服务A显示框图112中显示了调用成功、服务B显示框图113中显示了调用失败、服务C显示框图114中显示了未调用。
(4)根据所述第二数据更新所述微服务表示图形的颜色。
在本实施方式中,根据所述第二数据中的结果状态数据来更新所述微服务表示图形的颜色。例如,当所述结果状态数据为调用成功时,调整所述微服务表示图形的颜色为浅绿色;当所述结果状态数据为调用失败时,调整所述微服务表示图形的颜色为鲜红色;当所述结果状态数据为未调用,调整所述微服务表示图形的颜色为灰白色。
优选地,本方法还可以包括:当接收到触发查看微服务的具体的调用信息的请求时,展示所述微服务对应的调用信息的步骤。所述查看微服务的具体的调用信息的请求可以是当鼠标移动到微服务对应的表示图形的上方,或者是接收到点击微服务对应的表示图形的信息。
在本实施方式中,可以通过生成一提示界面来展示微所述服务的具体的调用信息。如图2所示,在服务A接收到触发查看服务A的具体的调用信息的请求时,所述服务A的上方生成一包括输入数据、输出数据和调用时间的提示界面。例如,当鼠标指示移动到服务A所在的框图112上时,通过框图111显示了输入数据、输出数据和调用时间信息。
综上所述,本发明提供的微服务调用链具象化的方法包括,接收客户端发出的业务请求;根据所述业务请求,确定响应所述业务请求的目标微服务调用链;采集所述目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序;采集与所述业务请求相关的第一数据;采集所述微服务调用链上的所有微服务调用过程中的第二数据;及根据目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序、第一数据和第二数据生成所述微服务调用链的画像。从而可以对微服务调用链的调用过程进行留痕,以图形形式动态展示调用过程及调用状态,为业务系统的运维提供可视化信息,降低运维的复杂度。
以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
下面结合图3和图4,分别对实现上述微服务调用链具象化的方法的电子装置的功能模块及硬件结构进行介绍。
实施例二
图3为本发明微服务调用链具象化的装置较佳实施例中的功能模块图。
在一些实施例中,所述微服务调用链具象化装置20(为便于描述,简称为“具象化装置”)运行于电子装置中。所述具象化装置20可以包括多个由程序代码段所组成的功能模块。所述具象化装置20中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行微服务调用链具象化的功能。
本实施例中,所述具象化装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块201、确定模块202、采集模块203及处理模块204。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在后续的实施例中详述。
所述接收模块201用于接收客户端发出的业务请求。
在本实施方式中,所述业务请求可以是HTTP请求,所述HTTP请求的业务可以是人脸识别服务、或声纹识别服务。
所述确定模块202用于根据所述业务请求,确定响应所述业务请求的目标微服务调用链。
在本实施方式中,所述调用链指在客户端的页面发起一个业务请求,通常会伴随多个微服务的调用,这样就会生成一条微服务调用链。具体的,在获取到客户端发起的业务请求后,则可以根据该业务请求确定响应业务请求的目标微服务调用链,即确定响应用户请求所需要的首个微服务以及首个微服务需要调用的子微服务,各子微服务也可能还需要再次调用其他微服务等等,最终确定能够响应业务请求的完整的微服务调用链,即为目标微服务调用链。可以理解的,目标微服务调用链可以是一条也可以是多条,本实施例不做限定。
举例而言,当用户通过客户端发起一个业务请求时,首先到达A服务,然后分别对B服务和C服务进行调用。B服务处理完给A服务做出响应,但是C服务还需要和后端的D服务和E服务交互之后再返还给A服务,即C服务还需要调用D服务和E服务,之后再返还给A服务,最后由A服务来响应用户的请求。
所述采集模块203用于采集所述目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序。
在本实施方式中,通过微服务调用链声明来采集微服务调用链上的所有微服务的元数据以及各个微服务的调用顺序。所述微服务的元数据用于描述所述微服务调用链的图形骨架。所述元数据可以是服务接口信息。因此,通过采集的所有微服务的元数据以及各个微服务的调用顺序可以初步构建所述调用链的画像骨架。
例如,当客户端发出业务请求至所述业务请求被响应的过程中需要调用A服务、B服务、C服务和D服务。所述微服务调用链声明可以采集A服务的元数据、B服务的元数据、C服务的元数据和D服务的元数据,以及所述A服务、B服务、C服务和D服务的调用顺序,如A服务-C服务-B服务-D服务。
具体地,在本实施方式中,根据所述业务请求在业务方法入口处声明服务接口的元数据信息,即通过在业务方法入口处通过注解的方式进行微服务调用链声明,注解的信息包含业务名称、业务描述、业务逻辑内调用的微服务的ID、名称、类型、描述、调用顺序等。
所述采集模块203还用于采集与所述业务请求相关的第一数据。
在本实施方式中,所述业务请求相关的第一数据包括业务请求ID、业务请求时长和业务请求状态数据。需要说明的是,每一笔的业务请求的调用,都会产生一个唯一的业务请求ID,所述业务请求ID可以贯穿整个微服务调用链。通过所述业务请求ID,可以检索到业务逻辑中涉及的所有微服务的实例数据。
在本实施方式中,通过在业务调用入口处生成所述业务请求ID,同时将所述业务请求ID存储到线程局部变量中,后续的微服务可以直接从线程局部变量中获取所述业务请求ID。同时在业务方法内部设置业务请求状态数据的钩子,通过所述业务请求状态数据的钩子可以采集所述业务请求的耗时以及所述业务请求状态数据。所述业务请求状态数据包括调用成功、调用失败和未调用。
所述采集模块203还用于采集所述微服务调用链上的所有微服务调用过程中的第二数据。
在本实施方式中,所述微服务调用过程中的第二数据包括微服务ID、输入数据、输出数据、调用时间、消耗时间以及结果状态数据。在微服务调用过程中,收集每一次的微服务调用过程中所产生的微服务ID、输入数据、输出数据、调用时间、消耗时间及结果状态数据,从而为所述微服务调用链的画像准备实例数据。所述消耗时间指当微服务调用一个组件时,从发出请求开始到被响应的过程所持续的时间。
具体地,通过在微服务内部设置钩子,采集所述微服务调用过程中的第二数据,并从线程局部变量中获取微服务ID,将所述微服务ID与微服务的过程数据合并在一起存储。
优选地,由于微服务的输入数据与输出数据结构比较复杂,本方法还可以通过序列化的方式,将所述输入数据与输出数据转换成可辨识的JSON格式字符串。
所述处理模块204用于根据目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序、第一数据和第二数据生成所述微服务调用链的画像。
在本实施方式中,经过上述操作可以将所述微服务调用链画像所需的数据准备完成。然后,根据采集的元数据和实例数据生成每一次实例调用链的图像,例如,通过图表将骨架数据和业务请求相关的数据串联在一起,形成最终的调用链画像图100,如图2所示。
具体地,生成所述微服务调用链的画像的过程如下:
(1)通过业务请求ID检索出业务请求相关的第一数据和微服务元数据;
(2)根据所述第一数据生成业务信息描述图,及根据所述微服务元数据生成微服务表示图形和指向;
在本实施方式中,所述业务信息描述图用于描述所述业务请求的调用情况。通过所述业务信息描述图可以展示业务名称、业务请求ID、状态、调用时长等信息,如图2中的显示框图110所示。微服务表示图形和指向可以描述所述目标微服务调用链上的所有微服务及调用顺序。如图2所示,目标微服务调用链上包括服务A、服务B和服务C,且调用顺序为先服务A、再服务B,再服务C。
(3)通过所述业务请求ID检索出微服务的调用过程中的第二数据;
在本实施方式中,所述第二数据包括微服务ID、输入数据、输出数据、调用时间、消耗时间以及结果状态数据。所述结果状态数据包括调用成功、调用失败和未调用。如图2所示,服务A显示框图112中显示了调用成功、服务B显示框图113中显示了调用失败、服务C显示框图114中显示了未调用。
(4)根据所述第二数据更新所述微服务表示图形的颜色。
在本实施方式中,根据所述第二数据中的结果状态数据来更新所述微服务表示图形的颜色。例如,当所述结果状态数据为调用成功时,调整所述微服务表示图形的颜色为浅绿色;当所述结果状态数据为调用失败时,调整所述微服务表示图形的颜色为鲜红色;当所述结果状态数据为未调用,调整所述微服务表示图形的颜色为灰白色。
优选地,所述具象化装置20还可以:当接收到触发查看微服务的具体的调用信息的请求时,展示所述微服务对应的调用信息。所述查看微服务的具体的调用信息的请求可以是当鼠标移动到微服务对应的表示图形的上方,或者是接收到点击微服务对应的表示图形的信息。
在本实施方式中,可以通过生成一提示界面来展示微所述服务的具体的调用信息。如图2所示,在服务A接收到触发查看服务A的具体的调用信息的请求时,所述服务A的上方生成一包括输入数据、输出数据和调用时间的提示界面。例如,当鼠标指示移动到服务A所在的框图112上时,通过框图111显示了输入数据、输出数据和调用时间信息。
在本实施方式中,所述微服务调用链具象化的方法还可以降低运维复杂度。由于通过本申请可以将每一次业务请求生成的微服务调用链图像化显示,并直观地显示出调用过程中的相关信息。在运维人员进行维护过程中,可以通过查看所述微服务调用链的画像来确定业务请求在调用过程中存在的问题,相较于现有技术中的通过查询文本信息搜寻问题而言,极大地方便了运维人员,从而降低了运维复杂度。
综上所述,本发明所述的具象化装置20,包括接收模块201、确定模块202、采集模块203及处理模块204。所述接收模块201用于接收客户端发出的业务请求;所述确定模块202用于根据所述业务请求,确定响应所述业务请求的目标微服务调用链;所述采集模块203用于采集所述目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序;所述采集模块203还用于采集与所述业务请求相关的第一数据;所述采集模块203还用于采集所述微服务调用链上的所有微服务调用过程中的第二数据;及所述处理模块204用于根据目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序、第一数据和第二数据生成所述微服务调用链的画像。从而可以对微服务调用链的调用过程进行留痕,以图形形式动态展示调用过程及调用状态,为业务系统的运维提供可视化信息,降低运维的复杂度。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,双屏设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
图4为本发明实施例三提供的电子装置的示意图。
所述电子装置3包括:存储器31、至少一个处理器32、存储在所述存储器31中并可在所述至少一个处理器32上运行的计算机程序33、至少一条通讯总线34及数据库35。
所述至少一个处理器32执行所述计算机程序33时实现上述微服务调用链具象化的方法实施例中的步骤。
示例性的,所述计算机程序33可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述至少一个处理器32执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序33在所述电子装置3中的执行过程。
所述电子装置3可以是手机、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)等安装有应用程序的设备。本领域技术人员可以理解,所述示意图4仅仅是电子装置3的示例,并不构成对电子装置3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子装置3还可以包括输入输出设备、网络接入设备、总线等。
所述至少一个处理器32可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述处理器32可以是微处理器或者所述处理器32也可以是任何常规的处理器等,所述处理器32是所述电子装置3的控制中心,利用各种接口和线路连接整个电子装置3的各个部分。
所述存储器31可用于存储所述计算机程序33和/或模块/单元,所述处理器32通过运行或执行存储在所述存储器31内的计算机程序和/或模块/单元,以及调用存储在存储器31内的数据,实现所述电子装置3的各种功能。所述存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子装置3的使用所创建的数据(比如音频数据等)等。此外,存储器32可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
所述存储器31中存储有程序代码,且所述至少一个处理器32可调用所述存储器31中存储的程序代码以执行相关的功能。例如,图3中所述的各个模块(接收模块201、确定模块202、采集模块203及处理模块204)是存储在所述存储器31中的程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能以达到微服务调用链具象化的目的。
所述接收模块201用于接收客户端发出的业务请求;
所述确定模块202用于根据所述业务请求,确定响应所述业务请求的目标微服务调用链;
所述采集模块203用于采集所述目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序;
所述采集模块203还用于采集与所述业务请求相关的第一数据;
所述采集模块203还用于采集所述微服务调用链上的所有微服务调用过程中的第二数据;及
所述处理模块204用于根据目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序、第一数据和第二数据生成所述微服务调用链的画像。
所述数据库(Database)35是按照数据结构来组织、存储和管理数据的建立在所述电子装置3上的仓库。数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。在本实施方式中,所述数据库35用于存储微服务元数据、第一数据和第二数据等。
所述电子装置3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非易失性可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一非易失性可读存储介质中,所述计算机可读指令在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机可读指令包括计算机可读指令代码,所述计算机可读指令代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述非易失性可读介质可以包括:能够携带所述计算机可读指令代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
在本发明所提供的几个实施例中,应所述理解到,所揭露的电子装置和方法,可以通过其它的方式实现。例如,以上所描述的电子装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神范围。
Claims (7)
1.一种微服务调用链具象化的方法,其特征在于,所述方法包括:
接收客户端发出的业务请求;
根据所述业务请求,确定响应所述业务请求的目标微服务调用链;
采集所述目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序,通过采集的所有微服务的元数据以及各个微服务的调用顺序可以初步构建所述调用链的画像骨架;
采集与所述业务请求相关的第一数据,所述第一数据包括业务请求ID、业务请求时长和业务请求状态数据,其中,所述业务请求状态数据包括调用成功、调用失败和未调用;
采集所述微服务调用链上的所有微服务调用过程中的第二数据,所述第二数据包括微服务ID、输入数据、输出数据、调用时间、消耗时间以及结果状态数据;及
根据目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序、第一数据和第二数据生成所述微服务调用链的画像,包括:
检索出与业务请求相关的第一数据和微服务元数据;
根据所述第一数据生成业务信息描述图及根据所述微服务元数据生成微服务表示图形和指向;
检索出微服务的调用过程中的第二数据;
根据所述第二数据更新所述微服务表示图形的颜色。
2.如权利要求1所述的微服务调用链具象化的方法,其特征在于,所述方法还包括:
当接收到触发查看微服务的调用信息的请求时,展示所述微服务对应的调用信息。
3.如权利要求1所述的微服务调用链具象化的方法,其特征在于,所述方法包括:
通过序列化的方式将所述输入数据与输出数据转换成JSON格式字符串。
4.如权利要求1所述的微服务调用链具象化的方法,其特征在于:
在业务方法内部设置业务请求状态数据的钩子,通过所述业务请求状态数据的钩子采集所述业务请求的耗时以及所述业务请求状态数据;
通过在微服务内部设置钩子,采集所述微服务调用过程中的第二数据。
5.一种微服务调用链具象化的装置,其特征在于,所述装置包括:
接收模块,用于接收客户端发出的业务请求;
确定模块,用于根据所述业务请求,确定响应所述业务请求的目标微服务调用链;
采集模块,用于采集所述目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序,通过采集的所有微服务的元数据以及各个微服务的调用顺序可以初步构建所述调用链的画像骨架;
所述采集模块,还用于采集与所述业务请求相关的第一数据,所述第一数据包括业务请求ID、业务请求时长和业务请求状态数据,其中,所述业务请求状态数据包括调用成功、调用失败和未调用;
所述采集模块,还用于采集所述微服务调用链上的所有微服务调用过程中的第二数据,所述第二数据包括微服务ID、输入数据、输出数据、调用时间、消耗时间以及结果状态数据;及
处理模块,用于根据目标微服务调用链上的所有微服务的元数据以及微服务的调用顺序、第一数据和第二数据生成所述微服务调用链的画像,包括:
检索出与业务请求相关的第一数据和微服务元数据;
根据所述第一数据生成业务信息描述图及根据所述微服务元数据生成微服务表示图形和指向;
检索出微服务的调用过程中的第二数据;
根据所述第二数据更新所述微服务表示图形的颜色。
6.一种电子装置,其特征在于,所述电子装置包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1至4中任意一项所述的微服务调用链具象化的方法。
7.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任意一项所述的微服务调用链具象化的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911010795.3A CN111049878B (zh) | 2019-10-23 | 2019-10-23 | 微服务调用链具象化的方法、装置、电子装置及存储介质 |
PCT/CN2019/118971 WO2021077506A1 (zh) | 2019-10-23 | 2019-11-15 | 微服务调用链具象化的方法、装置、电子装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911010795.3A CN111049878B (zh) | 2019-10-23 | 2019-10-23 | 微服务调用链具象化的方法、装置、电子装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111049878A CN111049878A (zh) | 2020-04-21 |
CN111049878B true CN111049878B (zh) | 2023-03-21 |
Family
ID=70232514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911010795.3A Active CN111049878B (zh) | 2019-10-23 | 2019-10-23 | 微服务调用链具象化的方法、装置、电子装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111049878B (zh) |
WO (1) | WO2021077506A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111580896B (zh) * | 2020-05-04 | 2023-07-07 | 武汉众邦银行股份有限公司 | 一种基于原子化服务的链路调用方法 |
CN113783822B (zh) * | 2020-06-03 | 2023-05-30 | 北京沃东天骏信息技术有限公司 | 服务超时管理方法和装置,电子设备,可读介质 |
CN112346856B (zh) * | 2020-10-21 | 2021-06-08 | 北京基调网络股份有限公司 | 一种微服务架构下多链路调用拓扑展示方法、装置及设备 |
CN113297076B (zh) * | 2021-05-21 | 2023-06-23 | 建信金融科技有限责任公司 | 基于调用链图的服务变更识别方法及装置 |
CN114500647B (zh) * | 2022-01-18 | 2023-07-11 | 聚好看科技股份有限公司 | 一种数据传输方法及装置 |
CN114650318B (zh) * | 2022-02-24 | 2024-04-19 | 阿里巴巴(中国)有限公司 | 开关推送方法 |
CN114615521B (zh) * | 2022-03-10 | 2024-02-23 | 网易(杭州)网络有限公司 | 视频处理方法和装置、计算机可读存储介质、电子设备 |
CN116996556A (zh) * | 2022-04-26 | 2023-11-03 | 马上消费金融股份有限公司 | 数据处理方法及装置 |
CN115633073B (zh) * | 2022-09-02 | 2023-11-14 | 易保网络技术(上海)有限公司 | 微服务调用方法、电子设备、系统及可读存储介质 |
CN115914400A (zh) * | 2022-11-07 | 2023-04-04 | 中国工商银行股份有限公司 | 业务处理方法、装置、电子设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107580018A (zh) * | 2017-07-28 | 2018-01-12 | 北京北信源软件股份有限公司 | 一种分布式系统的跟踪方法与装置 |
CN109921927A (zh) * | 2019-02-20 | 2019-06-21 | 苏州人之众信息技术有限公司 | 基于微服务的实时调用链跟踪方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107135276A (zh) * | 2017-06-28 | 2017-09-05 | 北京中电普华信息技术有限公司 | 一种微服务架构下的全链路监控方法、装置和系统 |
CN109582471A (zh) * | 2017-09-29 | 2019-04-05 | 西门子公司 | 信息处理方法、装置和系统 |
CN107766205B (zh) * | 2017-10-10 | 2019-11-22 | 武汉大学 | 一种面向微服务调用过程跟踪的监控系统及方法 |
CN108322351B (zh) * | 2018-03-05 | 2021-09-10 | 北京奇艺世纪科技有限公司 | 生成拓扑图的方法和装置、故障确定方法和装置 |
CN108600012A (zh) * | 2018-04-26 | 2018-09-28 | 深圳光华普惠科技有限公司 | 微服务架构监控系统 |
CN109684104B (zh) * | 2018-12-17 | 2021-03-26 | 广州方硅信息技术有限公司 | 一种服务间调用链的展示实现方法及设备 |
CN109902105B (zh) * | 2019-02-28 | 2021-08-17 | 携程旅游网络技术(上海)有限公司 | 用于微服务架构的数据查询系统、方法、设备及存储介质 |
-
2019
- 2019-10-23 CN CN201911010795.3A patent/CN111049878B/zh active Active
- 2019-11-15 WO PCT/CN2019/118971 patent/WO2021077506A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107580018A (zh) * | 2017-07-28 | 2018-01-12 | 北京北信源软件股份有限公司 | 一种分布式系统的跟踪方法与装置 |
CN109921927A (zh) * | 2019-02-20 | 2019-06-21 | 苏州人之众信息技术有限公司 | 基于微服务的实时调用链跟踪方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111049878A (zh) | 2020-04-21 |
WO2021077506A1 (zh) | 2021-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111049878B (zh) | 微服务调用链具象化的方法、装置、电子装置及存储介质 | |
CN109086409B (zh) | 微服务数据处理方法、装置、电子设备及计算机可读介质 | |
US8751558B2 (en) | Mashup infrastructure with learning mechanism | |
CN111427971B (zh) | 用于计算机系统的业务建模方法、装置、系统和介质 | |
CN108536467B (zh) | 代码的定位处理方法、装置、终端设备及存储介质 | |
CN107862425B (zh) | 风控数据采集方法、设备、系统及可读存储介质 | |
CN107909368B (zh) | 支付控制方法及装置、终端及可读存储介质 | |
CN112527848B (zh) | 基于多数据源的报表数据查询方法、装置、系统及存储介质 | |
CN111985197A (zh) | 一种基于医疗信息的模板生成方法 | |
CN113268500A (zh) | 业务处理方法、装置及电子设备 | |
CN110782169A (zh) | 更新业务流程方法和装置 | |
CN112328658B (zh) | 用户档案数据处理方法、装置、设备及存储介质 | |
EP3051468A1 (en) | A graphical user interface for temporal representation of structured information in an object model | |
CN111612616A (zh) | 区块链账户评估方法、装置、终端设备及计算机可读介质 | |
CN111857670B (zh) | 应用架构的确定方法和装置 | |
CN111338621B (zh) | 显示数据方法、装置、电子设备和计算机可读介质 | |
CN109766093B (zh) | 协同实时编辑的方法、装置、电子设备及存储介质 | |
CN112596846A (zh) | 确定界面显示内容的方法、装置、终端设备及存储介质 | |
US9582782B2 (en) | Discovering a reporting model from an existing reporting environment | |
CN111754238A (zh) | 可疑交易识别方法及装置 | |
CN112308074A (zh) | 用于生成缩略图的方法和装置 | |
CN109561146A (zh) | 文件下载方法、装置、终端设备 | |
CN113986850B (zh) | 电子卷宗的存储方法、装置、设备和计算机可读存储介质 | |
CN116009835A (zh) | 一种目录资源编排方法、装置、设备以及存储介质 | |
CN113793674A (zh) | 信息过滤方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40022439 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |