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

微服务之间调用操作的日志追踪方法、装置、设备和介质与流程

2022-05-18 16:00:24 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别涉及微服务之间调用操作的日志追踪方法、装置、设备和介质。


背景技术:

2.微服务架构是一项在云中部署应用和服务的新技术,微服务作为一项在云中部署应用和服务的新技术已成为当下最新的热门话题。微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。
3.随着现阶段产品的解耦的比例越来越大,项目部署的复杂度也跟着水涨船高了起来,一般完成一个完整的业务操作,需要多个微服务之前的配合调用。当某个微服务出现问题时,往往需要从一个接一个的微服务上去翻阅日志文件,查询报错原因,因此往往需要花费大量的时间精力,这显然是相当不利于提高工作效率的。


技术实现要素:

4.本发明要解决的技术问题,在于提供一种微服务之间调用操作的日志追踪方法、装置、设备和介质,服务方只需将日志推送至中间件中,查询方根据项目标志和链路id进行查询,不需要一一翻阅每个微服务日志文件,大大提高了开发人员的排错效率。
5.第一方面,本发明提供了一种微服务之间调用操作的日志追踪方法,包括:
6.链路标识定义过程,在业务逻辑的入口定义一个链路标识,生成业务逻辑调用的链路id,该链路id用于记录微服务之间整个业务逻辑调用过程;
7.日志记录过程,应用服务将所需要记录的日志信息以及报错的堆栈推送到中间件,所述日志信息附带有所述链路id;
8.日志索引生成过程,日志记录服务在读取日志信息的时候,判断当天日期的日志信息是否存在索引,若否,日志服务则基于elasticsearch生成两个索引,一个是链路索引,一个是日志内容索引;
9.日志存储过程,通过不断轮询所述中间件,读取日志信息并分别记录到所述链路索引和所述日志内容索引中;
10.日志信息定位过程,通过应用接口返回的链路id快速定位到一次业务操作的所有日志信息,通过所述链路索引查看当次业务调用的调用轨迹与层次。
11.第二方面,本发明提供了一种微服务之间调用操作的日志追踪装置,包括:
12.链路标识定义模块,用于在业务逻辑的入口定义一个链路标识,生成业务逻辑调用的链路id,该链路id用于记录微服务之间整个业务逻辑调用过程;
13.日志记录模块,供应用服务将所需要记录的日志信息以及报错的堆栈推送到中间件,所述日志信息附带有所述链路id;
14.日志存储模块,用于通过不断轮询所述中间件,读取日志信息并记录到elasticsearch对应当天日期的索引中;
15.日志索引生成模块,供日志记录服务在读取日志信息的时候,判断当天日期的日志信息是否存在索引,若否,日志服务则基于elasticsearch生成两个索引,一个是链路索引,一个是日志内容索引;
16.日志信息定位模块,通过应用接口返回的链路id快速定位到一次业务操作的所有日志信息,通过所述链路索引查看当次业务调用的调用轨迹与层次。
17.第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
18.第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
19.本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:本发明基于elasticsearch及多种消息中间件实现对日志信息的追踪,通过链路id记录微服务之间整个业务逻辑的调用过程,且在日志信息存储时,基于elasticsearch生成两个索引,一个是链路索引,一个是日志内容索引,从而在查询的时候,则可以根据链路id,查询到某一个业务操作的完整的日志记录,也可结合所配置的项目标志查询某一项目的所有日志内容,大大提高了查询效率,真正实现了百万日志内容,毫秒级定位。另外,服务方只需将其所需要记录的日志推送至中间件中,即可实现日志记录;而作为日志记录服务,也只需要关系从中间件读取日志内容,从而实现了对服务的完全解耦,上下游系统毫无关联,真正做到了系统的无侵入。
20.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
21.下面参照附图结合实施例对本发明作进一步的说明。
22.图1为本发明实施例一中方法中的流程图;
23.图2为本发明实施例链路id逻辑走向传递结构示意图;
24.图3为本发明实施例日志存储过程的流程图;
25.图4为本发明实施例基于elasticsearch生成索引的流程图;
26.图5为本发明实施例日志信息定位的检索条件示意图;
27.图6为本发明实施例二中装置的结构示意图;
28.图7为本发明实施例三中电子设备的结构示意图;
29.图8为本发明实施例四中介质的结构示意图。
具体实施方式
30.本技术实施例通过提供一种微服务之间调用操作的日志追踪方法、装置、设备和介质,服务方只需将日志推送至中间件中,查询方根据项目标志和链路id进行查询,不需要一一翻阅每个微服务日志文件,大大提高了开发人员的排错效率。
31.本技术实施例中的技术方案,总体思路如下:本发明基于elasticsearch及多种消息中间件实现对日志信息的追踪,通过链路id记录微服务之间整个业务逻辑的调用过程,
且在日志信息存储时,基于elasticsearch生成两个索引,一个是链路索引,一个是日志内容索引,从而在查询的时候,则可以根据链路id,查询到某一个业务操作的完整的日志记录,也可结合所配置的项目标志查询某一项目的所有日志内容,大大提高了查询效率,真正实现了百万日志内容,毫秒级定位。另外,服务方只需将其所需要记录的日志推送至中间件中,即可实现日志记录;而作为日志记录服务,也只需要关系从中间件读取日志内容,从而实现了对服务的完全解耦,上下游系统毫无关联,真正做到了系统的无侵入。
32.实施例一
33.如图1所示,本实施例提供一种微服务之间调用操作的日志追踪方法,包括:
34.链路标识定义过程,在业务逻辑的入口定义一个链路标识,生成业务逻辑调用的链路id,该链路id用于记录微服务之间整个业务逻辑调用过程;如图2所示,本发明实施例的链路id,是各个微服务之间调用的查询依据,不管业务逻辑的走向如何,我服务之间调用情况如何,我只需要将链路id传递下去,就能够清楚的知道其逻辑走向,精准定位错误,方便开发人员排查问题,提升效率。
35.日志记录过程,应用服务将所需要记录的日志信息以及报错的堆栈推送到中间件,所述日志信息附带有所述链路id;本发明实施例提供了多个日志记录的中间件,支持redis,kafka,restapi,rabbitmq等,应用服务只需要将所需要记录的日志信息,以及报错的堆栈推送到中间件即可。作为服务方无需关心如何存储日志,只需要关心是否正常推送到中间件。
36.日志索引生成过程,如图3所示,日志记录服务在读取日志信息的时候,判断当天日期的日志信息是否存在索引,若否,日志服务则基于elasticsearch生成两个索引,一个是链路索引,一个是日志内容索引;即每天的日志记录都是一个新的索引,数据定位准确且查询效率也会大大提升。
37.日志存储过程,如图4所示,通过不断轮询所述中间件,读取日志信息并分别记录到elasticsearch对应当天日期的索引中,即所述链路索引和所述日志内容索引中;
38.日志信息定位过程,如图5所示,通过应用接口返回的链路id快速定位到一次业务操作的所有日志信息,通过所述链路索引查看当次业务调用的调用轨迹与层次。此时,链路id即为日志信息的链路追踪码,据此能快速定位到一次业务操作的所有日志信息。
39.其中,由于链路id为日志信息的链路追踪码,起着重要的作用,为防止用户忘记在业务逻辑的入口定义链路标识,则所述日志存储过程中,读取日志信息之后,还先对日志信息进行校验,判断日志信息是否包括链路id,若否,则产生一条未包括链路id的报警信息,用户即可返回至链路标识定义过程重新定义链路标识。
40.其中,作为本实施例的一种更优或更为具体的实现方式,所述方法还包括:
41.项目标识建立过程,在项目配置文件内为对应的配置项目标识,使多个项目在共用一个日志中心时能区别各个项目,所以为了区别各个项目,需要在项目配置文件内配置项目标识,且该项目标识包含在所述日志信息中;
42.项目标识校验过程,在所述日志存储过程读取日志信息之后,对对所述日志信息进行校验时,还判断日志信息是否包括项目标识,若否,则产生一条报警内容则产生一条未包括项目标识的报警信息。
43.再如图5所示,所述日志信息定位过程中,基于一次业务数据的日志信息的基础之
上,还能通过用户输入的日志内容的关键字通过所述内容索引具体定位到某个具体的动作,或通过用户选定的日志记录级别,专注关心一个级别的日志信息。再或者,还可根据ip、类名、运行环境、时间范围等进一步定位。这样,倘若一次业务数据的日志信息太多,即可通过日志内容、日志记录级别等其他条件配合链路id作进一步筛选,减少日志记录的阅读量。
44.如果有报错的日志消息,日志可以打印出完成的堆栈,用户就可以在日志中心上完整的看到详细堆栈。
45.通过本实施例的技术方案,用户很容易定位到一个具体业务内容所涉及到的日志内容,但是往往一个日志分析不单单只是为了日志信息的查看,还要查看日志的调用轨迹,比如模块间的调用,类之间的调用,方法间的调用等。日志中心通过链路索引来很好记录当次业务调用的调用轨迹与层次。让开发人员更能够直白的看到其业务调用逻辑。
46.基于同一发明构思,本技术还提供了与实施例一中的方法对应的装置,详见实施例二。
47.实施例二
48.如图6所示,在本实施例中提供了一种微服务之间调用操作的日志追踪装置,包括:
49.链路标识定义模块,用于在业务逻辑的入口定义一个链路标识,生成业务逻辑调用的链路id,该链路id用于记录微服务之间整个业务逻辑调用过程;如图2所示,本发明实施例的链路id,是各个微服务之间调用的查询依据,不管业务逻辑的走向如何,我服务之间调用情况如何,我只需要将链路id传递下去,就能够清楚的知道其逻辑走向,精准定位错误,方便开发人员排查问题,提升效率。
50.日志记录模块,供应用服务将所需要记录的日志信息以及报错的堆栈推送到中间件,所述日志信息附带有所述链路id;本发明实施例提供了多个日志记录的中间件,支持redis,kafka,restapi,rabbitmq等,应用服务只需要将所需要记录的日志信息,以及报错的堆栈推送到中间件即可。作为服务方无需关心如何存储日志,只需要关心是否正常推送到中间件。
51.日志索引生成模块,如图3所示,供日志记录服务在读取日志信息的时候,判断当天日期的日志信息是否存在索引,若否,日志服务则基于elasticsearch生成两个索引,一个是链路索引,一个是日志内容索引;
52.日志存储模块,如图4所示,通过不断轮询所述中间件,读取日志信息并分别记录到所述链路索引和所述日志内容索引中;
53.日志信息定位模块,如图5所示,通过应用接口返回的链路id快速定位到一次业务操作的所有日志信息,通过所述链路索引查看当次业务调用的调用轨迹与层次。
54.其中,作为本实施例的一种更优或更为具体的实现方式,所述装置还包括:
55.链路id校验模块,用于在所述日志存储模块读取日志信息之后,对日志信息进行校验,判断日志信息是否包括链路id,若否,则产生一条未包括链路id的报警信息。
56.项目标识建立模块,用于在项目配置文件内为对应的配置项目标识,使多个项目在共用一个日志中心时能区别各个项目,且该项目标识包含在所述日志信息中;
57.项目标识校验模块,用于在所述日志存储模块读取日志信息之后,对日志信息进行校验,判断日志信息是否包括项目标识,若否,则产生一条未包括项目标识的报警信息;
58.在所述日志信息定位模块,还能通过项目标识查询自己项目的所有日志内容,再结合链路id查询一次业务操作的完整的所有日志信息。
59.再如图5所示,所述日志信息定位模块在基于一次业务数据的日志信息的基础之上,还能通过用户输入的日志内容的关键字通过所述内容索引具体定位到某个具体的动作,或通过用户选定的日志记录级别,专注关心一个级别的日志信息。再或者,还可根据ip、类名、运行环境、时间范围等进一步定位。这样,倘若一次业务数据的日志信息太多,即可通过日志内容、日志记录级别等其他条件配合链路id作进一步筛选,减少日志记录的阅读量。
60.如果有报错的日志消息,日志可以打印出完成的堆栈,用户就可以在日志中心上完整的看到详细堆栈。
61.通过本实施例的技术方案,用户很容易定位到一个具体业务内容所涉及到的日志内容,但是往往一个日志分析不单单只是为了日志信息的查看,还要查看日志的调用轨迹,比如模块间的调用,类之间的调用,方法间的调用等。日志中心通过链路索引来很好记录当次业务调用的调用轨迹与层次。让开发人员更能够直白的看到其业务调用逻辑。
62.由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
63.基于同一发明构思,本技术提供了实施例一对应的电子设备实施例,详见实施例三。
64.实施例三
65.本实施例提供了一种电子设备,如图7所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
66.由于本实施例所介绍的电子设备为实施本技术实施例一中方法所采用的设备,故而基于本技术实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本技术实施例中的方法不再详细介绍。只要本领域所属技术人员实施本技术实施例中的方法所采用的设备,都属于本技术所欲保护的范围。
67.基于同一发明构思,本技术提供了实施例一对应的存储介质,详见实施例四。
68.实施例四
69.本实施例提供一种计算机可读存储介质,如图8所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
70.本技术实施例提供的方法、装置、系统、设备及介质,至少具有如下技术效果或优点:本发明基于elasticsearch及多种消息中间件实现对日志信息的追踪,通过链路id记录微服务之间整个业务逻辑的调用过程,且在日志信息存储时,基于elasticsearch生成两个索引,一个是链路索引,一个是日志内容索引,从而在查询的时候,则可以根据链路id,查询到某一个业务操作的完整的日志记录,也可结合所配置的项目标志查询某一项目的所有日志内容,大大提高了查询效率,真正实现了百万日志内容,毫秒级定位。另外,服务方只需将其所需要记录的日志推送至中间件中,即可实现日志记录;而作为日志记录服务,也只需要
关系从中间件读取日志内容,从而实现了对服务的完全解耦,上下游系统毫无关联,真正做到了系统的无侵入。
71.本领域内的技术人员应明白,本发明的实施例可提供为方法、装置或系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
72.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
73.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
74.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
75.虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
再多了解一些

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

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

相关文献