System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种服务间调用拓扑关系图的实时生成方法及系统技术方案_技高网

一种服务间调用拓扑关系图的实时生成方法及系统技术方案

技术编号:40540395 阅读:6 留言:0更新日期:2024-03-05 18:55
本发明专利技术涉及一种服务间调用拓扑关系图的实时生成方法及系统,方法步骤包括:获取不同网络区的服务所产生的请求和响应元数据;对获取的元数据进行数据清洗,剔除无效的数据;将清洗后的数据,根据TraceId进行分组,使数据分散到不同的任务分区当中进行处理;在第一次分组后,通过时间窗口进行计算,获得拓扑中各个服务之间的关联关系,并生成有效的关联数据;将第一次分组处理后的数据,根据服务名进行第二次分组;在第二次分组后,通过时间窗口进行计算,得到服务间调用拓扑关系图。与现有技术相比,本发明专利技术降低了应用服务器因计算拓扑节点数据带来的CPU和内存资源消耗,并采用容器化部署,使得计算资源得到最大化利用。

【技术实现步骤摘要】

本专利技术涉及服务间数据实时处理,尤其是涉及一种海量数据场景下服务间调用拓扑关系图的实时生成方法及系统


技术介绍

1、分布式微服务架构下,各个微服务应用之间相互调用的拓扑关系,目前主要是通过链路追踪技术如agent,sdk等,抓取到服务发生请求和响应时的调用数据,然后推送给数据清洗组件,由数据清洗组件过滤有效的特征数据,最后写入数据存储中,由于数据量十分庞大,为了高效查询,一般采用nosql存储,如elasticsearch。每个拓扑节点的指标数据,如请求吞吐量,请求错误率,请求执行时间,节点健康度等指标的展示,则需要依赖后台的定时任务进行批处理生成。批处理的逻辑是一段时间内通过查询elasticsearch中近几分钟的数据,并根据服务分组和时间筛选出前1000条数据,最后进行数据的聚合计算,生成指标。

2、定时的批处理查询elasticsearch,对其内存资源消耗极大,影响正常监控数据的查询效率;将查询到的数据进行大量的计算,对应用服务器的cpu和内存资源消耗也很大,降低应用服务的高可用性;分钟级的、条数限制级的数据处理,无法全量展示服务应用之间的调用拓扑关系,部分数据会因此缺失。如果缺失的数据包含服务不可用的场景,无法第一时间定位问题发生的环节。在这种情况下,数据的实时全量处理就显得相当有必要性。


技术实现思路

1、本专利技术的目的是克服上述现有技术存在的缺陷而提供一种服务间调用拓扑关系图的实时生成方法及系统。

2、本专利技术的目的可以通过以下技术方案来实现:

3、作为本专利技术的第一方面,提供一种服务间调用拓扑关系图的实时生成方法,所述方法步骤包括:

4、获取不同网络区的服务所产生的请求和响应元数据;

5、对获取的元数据进行数据清洗,剔除无效的数据;

6、将清洗后的数据,根据traceid进行分组,使数据分散到不同的任务分区当中进行处理;在第一次分组后,通过时间窗口进行计算,获得拓扑中各个服务之间的关联关系,并生成有效的关联数据;

7、将第一次分组处理后的数据,根据服务名进行第二次分组;在第二次分组后,通过时间窗口进行计算,得到服务间调用拓扑关系图。

8、进一步的,所述不同网络区应用sdk组件服将服务产生的请求和响应元数据推送给消息队列。

9、进一步的,所述网络区包括app网络区和业务网络区,不同网络区的元数据最终汇总给业务网络区的消息队列。

10、进一步的,所述app网络区的元数据,由日志同步组件同步给业务网络区的消息队列。

11、进一步的,所述业务网络区的元数据直接推送给业务区的消息队列组件。

12、进一步的,所述方法由部署在容器资源的流式实时计算组件提交计算任务。

13、进一步的,计算过程中,每个窗口计算的临时数据以及任务的元数据相关信息暂存在容器存储卷中,窗口时间计算完成后,将最后结果存储写入存储组件。

14、作为本专利技术的第二方面,提供一种服务间调用拓扑关系图的实时生成系统,所述系统包括:

15、消息队列组件,用于存储由不同网络区的服务所产生的请求和响应元数据;

16、数据清洗组件,用于对获取的元数据进行数据清洗,剔除无效的数据;

17、第一窗口计算组件,将清洗后的数据,根据traceid进行分组,使数据分散到不同的任务分区当中进行处理;在第一次分组后,通过时间窗口进行计算,获得拓扑中各个服务之间的关联关系,并生成有效的关联数据;

18、第二窗口计算组件,将第一次分组处理后的数据,根据服务名进行第二次分组;在第二次分组后,通过时间窗口进行计算,得到服务间调用拓扑关系图。

19、进一步的,所述系统还包括部署在容器资源,用于分配资源,提交计算任务的流式实时计算组件flink。

20、进一步的,所述系统还包括用于存储每个窗口计算的临时数据以及任务的元数据相关信息的容器存储卷volume以及用于存储最终有效的存储组件elasticsearch。

21、与现有技术相比,本专利技术具有以下有益效果:

22、1)本专利技术提供了一种实时计算服务调用拓扑图的方法,降低存储端内存资源消耗率,以及降低了应用服务器因计算拓扑节点数据带来的cpu和内存资源消耗。采用容器化部署,节约以往清洗组件的资源成本,同时按需申请容器资源,使得计算资源得到最大化利用。

23、2)批处理的处理逻辑具有服务拓扑展示数据不完整的缺陷,本专利技术采用流式计算框架采集和处理服务拓扑功能的方案,可将全量拓扑数据写入elasticsearch存储中,使得运维工程师和项目使用人员能够更高效的查询监控数据、分析、排查问题。

24、3)将清洗后的数据,根据traceid进行分组,分组后通过时间窗口进行计算,能够保证数据尽可能分散到不同的任务分区当中去处理,提高生产服务间调度拓扑关系的准确性。

25、4)数据的二次分组聚合,将第一次分组处理后的数据,根据服务名systemname分组。在此次分组后,通过时间窗口进行计算,一是为了保证写入的数据最终格式,即根据服务名去统计节点的指标数据,二是为了减缓最后写入elasticsearch的doc的数量,节约磁盘存储空间。

本文档来自技高网...

【技术保护点】

1.一种服务间调用拓扑关系图的实时生成方法,其特征在于,所述方法步骤包括:

2.根据权利要求1所述的一种服务间调用拓扑关系图的实时生成方法,其特征在于,所述不同网络区应用SDK组件服将服务产生的请求和响应元数据推送给消息队列。

3.根据权利要求2所述的一种服务间调用拓扑关系图的实时生成方法,其特征在于,所述网络区包括APP网络区和业务网络区,不同网络区的元数据最终汇总给业务网络区的消息队列。

4.根据权利要求3所述的一种服务间调用拓扑关系图的实时生成方法,其特征在于,所述APP网络区的元数据,由日志同步组件同步给业务网络区的消息队列。

5.根据权利要求3所述的一种服务间调用拓扑关系图的实时生成方法,其特征在于,所述业务网络区的元数据直接推送给业务区的消息队列组件。

6.根据权利要求1所述的一种服务间调用拓扑关系图的实时生成方法,其特征在于,所述方法由部署在容器资源的流式实时计算组件提交计算任务。

7.根据权利要求1所述的一种服务间调用拓扑关系图的实时生成方法,其特征在于,计算过程中,每个窗口计算的临时数据以及任务的元数据相关信息暂存在容器存储卷中,窗口时间计算完成后,将最后结果存储写入存储组件。

8.一种服务间调用拓扑关系图的实时生成系统,其特征在于,所述系统包括:

9.根据权利要求8所述的一种服务间调用拓扑关系图的实时生成系统,其特征在于,所述系统还包括部署在容器资源,用于分配资源,提交计算任务的流式实时计算组件Flink。

10.根据权利要求8所述的一种服务间调用拓扑关系图的实时生成系统,其特征在于,所述系统还包括用于存储每个窗口计算的临时数据以及任务的元数据相关信息的容器存储卷Volume以及用于存储最终有效的存储组件Elasticsearch。

...

【技术特征摘要】

1.一种服务间调用拓扑关系图的实时生成方法,其特征在于,所述方法步骤包括:

2.根据权利要求1所述的一种服务间调用拓扑关系图的实时生成方法,其特征在于,所述不同网络区应用sdk组件服将服务产生的请求和响应元数据推送给消息队列。

3.根据权利要求2所述的一种服务间调用拓扑关系图的实时生成方法,其特征在于,所述网络区包括app网络区和业务网络区,不同网络区的元数据最终汇总给业务网络区的消息队列。

4.根据权利要求3所述的一种服务间调用拓扑关系图的实时生成方法,其特征在于,所述app网络区的元数据,由日志同步组件同步给业务网络区的消息队列。

5.根据权利要求3所述的一种服务间调用拓扑关系图的实时生成方法,其特征在于,所述业务网络区的元数据直接推送给业务区的消息队列组件。

6.根据权利要求1所述的一种服务间调用拓扑关系图的实时生成...

【专利技术属性】
技术研发人员:铁锦程李虎曾毅峰路进锋磨柑竹潘光耀
申请(专利权)人:上海浦东发展银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1