本发明涉及分布式文件系统领域,特别涉及一种请求处理环节的记录方法、系统、装置及可读存储介质。
背景技术:
在分布式文件系统中对客户端请求的处理过程中,由于集群对单个请求的处理过程需要多个节点参与,甚至涉及到跨节点的协同处理,导致一些请求的处理过程比较缓慢,而由于请求处理需要的环节比较多,所以很难推测究竟是哪几个步骤的卡顿造成整个请求变慢。
业界通用的做法是通过打印日志文件的方式,在请求处理的过程中插入很多打印语句,这样虽然能跟踪每个请求的处理流程,但是由于日志记录本身需要写入到磁盘,而写盘非常耗时,当每个请求都要打印很多条日志的时候,会进一步拖慢请求的处理速度。
因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。
技术实现要素:
有鉴于此,本发明的目的在于提供一种请求处理环节的记录方法、系统、装置及可读存储介质,以便快捷地获取请求处理环节的信息。其具体方案如下:
一种请求处理环节的记录方法,应用于分布式文件系统,包括:
在内存中建立请求追踪表;
当收到业务请求,在处理所述业务请求的同时,将所述业务请求的每个环节的信息记录写入所述请求追踪表;
当收到查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。
优选的,每条所述环节的信息记录包括:
对应的所述业务请求的请求号、所述环节的编码和所述环节开始处理的时间戳。
优选的,所述当收到查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录的过程,具体包括:
当从查询接口中收到所述查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。
优选的,所述将所述业务请求的每个环节的信息记录写入所述请求追踪表的同时,还包括:
如果所述请求追踪表中的信息记录的数量到达记录阈值,删除所述请求追踪表中记录时间最久的所述信息记录。
相应的,本发明公开了一种请求处理环节的记录系统,应用于分布式文件系统,包括:
建立模块,用于在内存中建立请求追踪表;
记录模块,用于当收到业务请求,在处理所述业务请求的同时,将所述业务请求的每个环节的信息记录写入所述请求追踪表;
查询模块,用于当收到查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。
优选的,所述环节的信息记录包括:
对应的所述业务请求的请求号、所述环节的编码和所述环节开始处理的时间戳。
优选的,所述查询模块具体用于:
当从查询接口中收到所述查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。
优选的,所述记录模块还用于:
如果所述请求追踪表中的信息记录的数量到达记录阈值,删除所述请求追踪表中记录时间最久的所述信息记录。
相应的,本发明还公开了一种请求处理环节的记录装置,应用于分布式文件系统,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上文任一项所述请求处理环节的记录方法的步骤。
相应的,本发明还公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述请求处理环节的记录方法的步骤。
本发明公开了一种请求处理环节的记录方法,应用于分布式文件系统,包括:在内存中建立请求追踪表;当收到业务请求,在处理所述业务请求的同时,将所述业务请求的每个环节的信息记录写入所述请求追踪表;当收到查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。由于本发明中的请求追踪表位于内存中,因此将业务请求的信息记录到请求追踪表的动作耗时极少,不会影响处理业务请求的速度;同时调取其信息记录的速度也远高于从磁盘日志中调取,远比现有技术中高效便捷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例中一种请求处理环节的记录方法的步骤流程图;
图2为本发明实施例中一种请求处理环节的记录系统的结构分布图;
图3为本发明实施例中一种请求处理环节的记录装置的结构分布图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
业界通用的做法是通过打印日志文件的方式跟踪每个请求的处理流程,在请求处理的过程中插入很多打印语句,这样虽然能跟踪每个请求的处理流程,但是由于日志记录本身需要写入到磁盘,而写盘非常耗时,当每个请求都要打印很多条日志的时候,会进一步拖慢请求的处理速度。
而本发明中的请求追踪表位于内存中,因此将业务请求的信息记录到请求追踪表的动作耗时极少,不会影响处理业务请求的速度;同时调取其信息记录的速度也远高于从磁盘日志中调取,远比现有技术中高效便捷。
本发明实施例公开了一种请求处理环节的记录方法,应用于分布式文件系统,参见图1所示,包括:
s1:在内存中建立请求追踪表;
s2:当收到业务请求,在处理所述业务请求的同时,将所述业务请求的每个环节的信息记录写入所述请求追踪表;
具体的,每条所述环节的信息记录可以包括:对应的所述业务请求的请求号、所述环节的编码和所述环节开始处理的时间戳。
当然,信息记录还可以包括每个环节处理结束的时间戳,但由于该环节处理结束的时间戳和下一环节开始处理的时间戳相同,因此可以将处理结束的时间戳省略。
除此之外,信息记录还可以包括每个环节的其他信息;业务请求的请求号是用于识别区分识别不同的业务请求的,环节的编码同理,因此,上述请求号和编码的形式既可以为单纯的数字、字母组合,还可以是具体的指代名称。可以理解的是,信息的类型在建立请求追踪表时确定,之后执行写入操作时会抓取信息流中相应的关键参数写入请求追踪表相应的位置。
例如,步骤s1中建立的请求追踪表的格式可以为:
key:value
请求号1[环节1,环节1开始处理的时间戳]
[环节2,环节2开始处理的时间戳]
[环节3,环节3开始处理的时间戳]
请求号2[环节1,环节1开始处理的时间戳]
[环节2,环节2开始处理的时间戳]
……
[环节n,环节n开始处理的时间戳]
在将业务请求的每个环节的信息记录写入请求追踪表时,可以先将请求号和当前时间戳写入请求追踪表中,然后写入必要的环节的信息记录。
s3:当收到查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。
可以理解的是,该查询请求可对应某一业务请求的某一环节,也可以只对应某一业务请求,调取请求追踪表中的相关信息记录即可。
具体的,当从查询接口中收到所述查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。
该查询接口由集群提供,用于查询对应的信息记录。
进一步的,考虑到内存的容量限制,当业务请求的量很大的时候,不可能将所有的业务请求的信息记录都写入请求追踪表,因此可以限制请求追踪表中信息记录的数量,只允许查询最近记录阈值内的记录,当请求追踪表内的信息记录超过记录阈值后,将请求追踪表内保存时间最近的信息记录删去,再写入新的信息记录。
考虑到这一点,在实际操作中,步骤s2所述将所述业务请求的每个环节的信息记录写入所述请求追踪表的同时,还包括:
如果所述请求追踪表中的信息记录的数量到达记录阈值,删除所述请求追踪表中记录时间最久的所述信息记录。
具体的,记录阈值可以设为十万,还可以根据业务量大小和内存空间分配进行具体的调整设置。
本发明公开了一种请求处理环节的记录方法,应用于分布式文件系统,包括:在内存中建立请求追踪表;当收到业务请求,在处理所述业务请求的同时,将所述业务请求的每个环节的信息记录写入所述请求追踪表;当收到查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。由于本发明中的请求追踪表位于内存中,因此将业务请求的信息记录到请求追踪表的动作耗时极少,不会影响处理业务请求的速度;同时调取其信息记录的速度也远高于从磁盘日志中调取,远比现有技术中高效便捷。
相应的,本发明公开了一种请求处理环节的记录系统,应用于分布式文件系统,参见图2所示,包括:
建立模块1,用于在内存中建立请求追踪表;
记录模块2,用于当收到业务请求,在处理所述业务请求的同时,将所述业务请求的每个环节的信息记录写入所述请求追踪表;
查询模块3,用于当收到查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。
由于本发明中的请求追踪表位于内存中,因此将业务请求的信息记录到请求追踪表的动作耗时极少,不会影响处理业务请求的速度;同时调取其信息记录的速度也远高于从磁盘日志中调取,远比现有技术中高效便捷。
在一些具体的实施例中,所述环节的信息记录包括:
对应的所述业务请求的请求号、所述环节的编码和所述环节开始处理的时间戳。
在一些具体的实施例中,所述查询模块3具体用于:
当从查询接口中收到所述查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。
在一些具体的实施例中,所述记录模块2还用于:
如果所述请求追踪表中的信息记录的数量到达记录阈值,删除所述请求追踪表中记录时间最久的所述信息记录。
相应的,本发明还公开了一种请求处理环节的记录装置,应用于分布式文件系统,参见图3所示,包括处理器11和存储器12;其中,所述处理11执行所述存储器12中保存的计算机程序时实现以下步骤:
在内存中建立请求追踪表;
当收到业务请求,在处理所述业务请求的同时,将所述业务请求的每个环节的信息记录写入所述请求追踪表;
当收到查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。
由于本发明中的请求追踪表位于内存中,因此将业务请求的信息记录到请求追踪表的动作耗时极少,不会影响处理业务请求的速度;同时调取其信息记录的速度也远高于从磁盘日志中调取,远比现有技术中高效便捷。
在一些具体的实施例中,每条所述环节的信息记录包括:对应的所述业务请求的请求号、所述环节的编码和所述环节开始处理的时间戳。
在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:当从查询接口中收到所述查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。
在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:如果所述请求追踪表中的信息记录的数量到达记录阈值,删除所述请求追踪表中记录时间最久的所述信息记录。
进一步的,本实施例中的请求处理环节的记录装置,还可以包括:
输入接口13,用于获取外界导入的计算机程序,并将获取到的计算机程序保存至所述存储器12中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器11中,以便处理器11利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口13具体可以包括但不限于usb接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。
输出接口14,用于将处理器11产生的各种数据输出至与其相连的终端设备,以便于与输出接口14相连的其他终端设备能够获取到处理器11产生的各种数据。本实施例中,所述输出接口14具体可以包括但不限于usb接口、串行接口等。
通讯单元15,用于在请求处理环节的记录装置和外部服务器之间建立远程通讯连接,以便于请求处理环节的记录装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元15具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。
键盘16,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。
显示器17,用于对请求处理环节的记录过程的相关信息进行实时显示,以便于用户及时地了解请求处理环节的记录情况。
鼠标18,可以用于协助用户输入数据并简化用户的操作。
进一步的,本申请实施例还公开了一种计算机可读存储介质,这里所说的计算机可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动硬盘、cd-rom或技术领域内所公知的任意其他形式的存储介质。计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在内存中建立请求追踪表;
当收到业务请求,在处理所述业务请求的同时,将所述业务请求的每个环节的信息记录写入所述请求追踪表;
当收到查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。
由于本发明中的请求追踪表位于内存中,因此将业务请求的信息记录到请求追踪表的动作耗时极少,不会影响处理业务请求的速度;同时调取其信息记录的速度也远高于从磁盘日志中调取,远比现有技术中高效便捷。
在一些具体的实施例中,每条所述环节的信息记录包括:对应的所述业务请求的请求号、所述环节的编码和所述环节开始处理的时间戳。
在一些具体的实施例中,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:当从查询接口中收到所述查询请求,调取所述请求追踪表中与所述查询请求对应的环节的信息记录。
在一些具体的实施例中,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:如果所述请求追踪表中的信息记录的数量到达记录阈值,删除所述请求追踪表中记录时间最久的所述信息记录。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种请求处理环节的记录方法、系统、装置及可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。