一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

调用链监控系统及方法与流程

2021-11-25 01:01:00 来源:中国专利 TAG:


1.本发明涉及分布式技术领域,尤其涉及一种调用链监控系统及方法。


背景技术:

2.在银行等大型企业中,为适应海量数据及海量交易的处理需求,部分产品(如核心银行)会采用“微服务 单元化”的部署架构。在单元化架构下,业务数据被划分到多个单元,每个服务会部署多个单元,每笔交易根据一定的客户要素(如核心客户号)路由到特定单元。因此,在追踪调用关系数据时,不仅需要知道交易经过哪些服务,还需要知道服务所在的部署单元。传统的调用链追踪工具只能体现一笔交易经过哪些微服务,无法体现微服务所属的单元以及产品,不利于运维人员精准定位问题。


技术实现要素:

3.本发明实施例提出一种调用链监控系统,用以监控多个调用环节的调用链,该系统包括:
4.分布式微服务子系统和产品运行监控子系统;其中,
5.分布式微服务子系统,用于获取每条业务请求在微服务之间的调用关系数据,生成每条业务请求对应的调用链日志,并在调用链日志中贴源部署组信息,将贴源后的调用链日志推送给产品运行监控子系统的kafka;
6.产品运行监控子系统包括kafka、解析模块、计算模块和运维服务端模块,其中,kafka,用于存储调用链日志;
7.解析模块,用于从kafka中提取调用链日志;基于调用链日志中贴源的部署组信息,从单元化码表查询各调用环节信息,将查询到的各调用环节信息贴源到调用链日志,形成解析后的调用链日志并存回kafka,所述单元化码表用于存储各调用环节之间的关联关系;
8.计算模块,用于根据解析后的调用链日志,计算展示指标数据并存回kafka;
9.运维服务端模块,用于根据解析后的调用链日志和指标数据,生成调用关系数据。
10.本发明实施例提出一种调用链监控方法,用以监控多个调用环节的调用链,该方法包括:
11.从kafka中提取调用链日志,所述调用链日志是分布式微服务子系统获取每条业务请求在微服务之间的调用关系数据,生成每条业务请求对应的调用链日志,并在调用链日志中贴源部署组信息,然后将贴源后的调用链日志推送至kafka的;
12.基于调用链日志中贴源的部署组信息,从单元化码表查询各调用环节信息,将查询到的各调用环节信息贴源到调用链日志,形成解析后的调用链日志并存回kafka,所述单元化码表用于存储各调用环节之间的关联关系;
13.根据解析后的调用链日志,计算展示指标数据并存回kafka;
14.根据解析后的调用链日志和指标数据,生成调用关系数据。
15.本发明实施例还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述调用链监控方法。
16.本发明实施例还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述调用链监控方法的计算机程序。
17.在本发明实施例中,分布式微服务子系统,用于获取每条业务请求在微服务之间的调用关系数据,生成每条业务请求对应的调用链日志,并在调用链日志中贴源部署组信息,将贴源后的调用链日志推送给产品运行监控子系统的kafka;产品运行监控子系统包括kafka、解析模块、计算模块和运维服务端模块,其中,kafka用于存储调用链日志;解析模块,用于从kafka中提取调用链日志;基于调用链日志中贴源的部署组信息,从单元化码表查询各调用环节信息,将查询到的各调用环节信息贴源到调用链日志,形成解析后的调用链日志并存回kafka,所述单元化码表用于存储各调用环节之间的关联关系;计算模块,用于根据解析后的调用链日志,计算展示指标数据并存回kafka;运维服务端模块,用于根据解析后的调用链日志和指标数据,生成调用关系数据。在上述过程中,可获取每条业务请求对应的调用链日志,通过贴源各调用环节信息,使得调用链日志可追踪每条业务请求涉及到的调用环节和指标数据,实现多调用环节追踪。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
19.图1为本发明实施例中调用链监控系统的示意图;
20.图2为本发明实施例中调用链监控系统的原理图;
21.图3为本发明实施例中调用链监控系统的另一示意图;
22.图4为本发明实施例中贴源后的调用链日志示例;
23.图5为本发明实施例中解析后的调用链日志示例;
24.图6为本发明实施例中计算的展示指标数据示例;
25.图7为本发明实施例中树形链路结构的调用关系数据的示意图;
26.图8为本发明实施例中表结构的调用关系数据的示意图;
27.图9为本发明实施例中单元级的拓扑结构的调用关系数据的示意图;
28.图10为本发明实施例中微服务级的拓扑结构的调用关系数据的示意图;
29.图11为本发明实施例中调用链监控方法的流程图;
30.图12为本发明实施例中计算机设备的示意图。
具体实施方式
31.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
32.在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本技术的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
33.首先对本发明涉及到的术语进行解释。
34.调用链:分布式微服务架构下,一笔交易会经过多个微服务的处理。调用链追踪技术可通过traceid和spanid机制,获取一笔交易服务间调用的树形关系,以便快速定位问题及了解服务间依赖拓扑。
35.traceid:用来标识每个调用链的唯一id,称为调用链标识,traceid在整个调用链路上传递,保持不变。
36.spanid:调用链中的每一个环节为一个span,每一个span有一个spanid来标识,称为环节标识,前后span间形成父子关系,环节可以是应用、微服务或单元。
37.单元化架构:单元化架构就是把单元作为系统部署的基本单位,在全站所有机房中部署数个单元,每个机房里的单元数目不定,任意一个单元都部署了系统所需的所有核心业务应用,数据则是全量数据按照某种维度(或多个维度)划分后的一部分。
38.单元:也称为dcn(data center node,数据中心节点),指一个能完成所有核心(关键)业务操作的自包含集合,在这个集合中包含了核心业务所需的所有服务,以及分配给这个单元的数据。可以通俗的理解为,一个dcn,即为一个银行的线上虚拟分行,这个虚拟分行只承载银行某个业务的一部分客户。通过一定的数据分片键(比如客户号,机构号,业务领域等)和分片规则(比如分段,hash,随机,最小客户量等),将不同的数据划分到不同的dcn内。一旦某个dcn所承载的数据达到规定的上限,可以通过部署新的dcn,来实现容量的水平扩展,保证业务的持续快速发展。
39.部署组:是tsf执行应用批量部署的逻辑概念,一个部署组内包括多个应用实例,每个应用实例上运行相同的应用程序。
40.tsf:tencent service framework,腾讯分布式微服务框架,是一个围绕着应用和微服务的paas平台,提供应用全生命周期管理、数据化运营和立体监控等功能。在本发明中,当应用部署到tsf平台后,tsf平台基于zipkin获取服务间调用链,并将调用链日志(tracelog)推送给pomp,以供后续处理。
41.pomp:企业自研的产品运行监控平台,其中包括调用链监控功能。在本发明中,pomp在tsf投递的tracelog基础上,进行二次加工,为用户提供适配单元化架构的调用链监控功能。
42.产品:企业特有概念,指对外提供一定功能或服务的一个系统。一个产品通常包含多个模块(对应运行态的多个服务)。在单元化架构下,产品会部署多个单元,每个单元内部署该产品的全部微服务。
43.图1为本发明实施例中调用链监控系统的示意图,如图1所示,该系统包括:分布式微服务子系统101和产品运行监控子系统102;其中,
44.分布式微服务子系统101,用于获取每条业务请求在微服务之间的调用关系数据,生成每条业务请求对应的调用链日志,并在调用链日志中贴源部署组信息,将贴源后的调用链日志推送给产品运行监控子系统的kafka;
45.产品运行监控子系统102包括kafka1021、解析模块1022、计算模块1023和运维服务端模块1024,其中,
46.kafka1021,用于存储调用链日志;
47.解析模块1022,用于从kafka中提取调用链日志;基于调用链日志中贴源的部署组信息,从单元化码表查询各调用环节信息,将查询到的各调用环节信息贴源到调用链日志,形成解析后的调用链日志并存回kafka,所述单元化码表用于存储各调用环节之间的关联关系;
48.计算模块1023,用于根据解析后的调用链日志,计算展示指标数据并存回kafka;
49.运维服务端模块1024,用于根据解析后的调用链日志和指标数据,生成调用关系数据。
50.具体实施时,图2为本发明实施例中调用链监控系统的原理图,分布式微服务子系统基于tsf平台开发,产品运行监控子系统基于pomp开发。分布式微服务子系统是基于zipkin埋点获取每条业务请求在微服务之间的调用关系数据
51.图3为本发明实施例中调用链监控系统的另一示意图,在一实施例中,产品运行监控子系统还包括运维展示端模块1025,用于展示所述调用关系数据。
52.在一实施例中,所述调用关系数据包括调用链标识traceid和调用链中每个调用环节的环节标识spanid;
53.所述调用关系数据采用如下至少一种结构表示:树形链路结构,拓扑结构,表结构。
54.在一实施例中,所述展示指标包括各调用环节的平均响应时间和/或平均成功率。
55.在计算展示指标时,按维度进行聚合,形成每秒的指标数据,可以是按照调用环节维度,例如,包括微服务的平均响应时间和/或平均成功率,以及单元的平均响应时间和/或平均成功率。
56.在一实施例中,所述系统还包括自动部署子系统103,用于引用分布式微服务子系统提供的sdk,将各产品的应用部署到分布式微服务子系统。
57.在一实施例中,产品运行监控子系统还包括配置管理模块1026,用于存储单元化码表。
58.在一实施例中,所述系统还包括单元化管理子系统104,用于建立产品的单元化部署模型,并推送至产品运行监控子系统的配置管理模块的单元化码表中。
59.上述推送过程是实时进行的,保证数据同步。
60.上述建立单元化部署模型可以通过页面导航的方式引导用户建立。
61.在一实施例中,产品运行监控子系统还包括存储模块1027,用于从kafka中读取解析后的调用链日志和指标数据,持久化到es中存储;
62.运维服务端模块具体用于:从es中查询解析后的调用链日志和指标数据,并形成调用关系数据。
63.在上述实施例中,调用关系数据不仅能体现微服务间调用关系,还能精确标识微
服务所在单元和产品。
64.在一实施例中,所述调用环节包括集群、产品、单元、部署组和应用。当然,可以理解的是还可以有其他调用环节,如地域等。
65.下面给出一个具体实施例来说明本发明提出的系统的具体应用。
66.首先,单元化管理子系统将各个产品的单元化部署模型推送至产品运行监控子系统的配置管理模块的单元化码表中。
67.分布式微服务子系统获取每条业务请求在微服务之间的调用关系数据,生成每条业务请求对应的调用链日志tracelog,并在调用链日志中贴源部署组信息,然后将贴源后的调用链日志tracelog推送给产品运行监控子系统的kafka,贴源后的调用链日志示例见图4。
68.解析模块从kafka中提取调用链日志;基于调用链日志中贴源的部署组信息,从单元化码表查询各调用环节(单元、产品等)信息,将查询到的各调用环节信息贴源到调用链日志,形成解析后的调用链日志并存回kafka,解析后的调用链日志示例见图5。
69.计算模块根据解析后的调用链日志,计算每秒一条的展示指标数据并存回kafka,例如servicea的每秒平均处理耗时、每秒平均成功率。计算的展示指标数据示例见图6。
70.运维服务端模块根据解析后的调用链日志和指标数据,生成树形链路结构的调用关系数据,其中,一个业务请求每经过一个微服务,该微服务会作为client和作为server各打印一笔调用链日志,并在每个调用链日志中记录traceid、spanid、parentspanid(父调用环节的调用环节标识)。图7为本发明实施例中树形链路结构的调用关系数据的示意图,可以展示经过的微服务(service1、service2、service3、service4、service5)之间的调用关系,微服务所属的单元和产品,每个微服务的平均响应时间,这样,当一个微服务部署在多个单元时,可知道该笔交易失败的微服务具体在哪个单元下,从而便于运维人员精准排查问题。
71.图8为本发明实施例中表结构的调用关系数据的示意图。图9为本发明实施例中单元级的拓扑结构的调用关系数据的示意图,图10为本发明实施例中微服务级的拓扑结构的调用关系数据的示意图。
72.可见,本发明实施例提出的系统可以展示多个级别的调用关系数据。
73.综上所述,在本发明实施例提出的系统中,分布式微服务子系统,用于获取每条业务请求在微服务之间的调用关系数据,生成每条业务请求对应的调用链日志,并在调用链日志中贴源部署组信息,将贴源后的调用链日志推送给产品运行监控子系统的kafka;产品运行监控子系统包括kafka、解析模块、计算模块和运维服务端模块,其中,kafka用于存储调用链日志;解析模块,用于从kafka中提取调用链日志;基于调用链日志中贴源的部署组信息,从单元化码表查询各调用环节信息,将查询到的各调用环节信息贴源到调用链日志,形成解析后的调用链日志并存回kafka,所述单元化码表用于存储各调用环节之间的关联关系;计算模块,用于根据解析后的调用链日志,计算展示指标数据并存回kafka;运维服务端模块,用于根据解析后的调用链日志和指标数据,生成调用关系数据。在上述过程中,可获取每条业务请求对应的调用链日志,通过贴源各调用环节信息,使得调用链日志可追踪每条业务请求涉及到的调用环节和指标数据,实现多调用环节追踪。
74.本发明实施例还提出一种调用链监控方法,其原理与调用链监控系统类似,这里
interface)1203和通信总线1204;
97.其中,所述处理器1201、存储器1202、通信接口1203通过所述通信总线1204完成相互间的通信;所述通信接口1203用于实现服务器端设备、检测设备以及用户端设备等相关设备之间的信息传输;
98.所述处理器1201用于调用所述存储器1202中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的调用链监控方法中的全部步骤。
99.本发明的实施例还提供一种计算机可读存储介质,能够实现上述实施例中的调用链监控方法中全部步骤,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的调用链监控方法的全部步骤。
100.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序业务系统。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序业务系统的形式。
101.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序业务系统的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
102.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
103.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
104.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献