本公开涉及计算机,更具体地,涉及一种请求响应方法、装置、电子设备、存储介质及程序产品。
背景技术:
1、流式数据,是与时间相关的数据。流式数据处理技术是指处理一系列连续的、无限的、高速到达的数据流的技术。相关示例中,通常是基于客户端与服务端建立的长链接,接收来自客户端的流式数据,经过处理之后再返回客户端。
2、在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:由于流数据的数据量较大导致客户端与服务端的交互时长较长,响应速度较低。
技术实现思路
1、有鉴于此,本公开提供了一种请求响应方法、装置、电子设备、存储介质及程序产品。
2、本公开的一个方面提供了一种请求响应方法,包括:响应于接收到来自客户端的流式数据处理请求,创建用于处理与流式数据处理请求对应的待处理数据流的多个线程,并断开与客户端的通信链接;基于动态数据切分策略,对待处理数据流进行切分,得到多个数据片段,其中,多个数据片段的长度大于或等于预定阈值;基于多个线程对多个数据片段进行异步处理,得到多个处理结果片段;以及响应于接收到来自客户端的处理结果查询请求,通过聚合多个处理结果片段,生成用于向客户端发送的目标处理结果。
3、根据本公开的实施例,上述基于动态数据切分策略,对待处理数据流进行切分,得到多个数据片段,包括:确定与待处理数据流对应的标识信息;基于标识信息,将待处理数据流写入与标识信息对应的临时存储区域;以及响应于临时存储区域内的数据片段长度大于或等于预定阈值,将临时存储区域内的数据片段作为数据片段写入与标识信息对应的缓存区域,并删除临时存储区域内的数据片段。
4、根据本公开的实施例,标识信息包括:流式数据标识和数据处理场景标识。上述将临时存储区域内的数据片段作为数据片段写入与标识信息对应的缓存区域,包括:根据流式数据标识,确定第一缓存区域;根据数据处理场景标识,从第一缓存区域内确定第二缓存区域;以及将临时存储区域内的数据片段作为数据片段写入与第二缓存区域。
5、根据本公开的实施例,上述方法还包括:将与数据片段对应的处理结果写入与标识信息对应的缓存区域。
6、根据本公开的实施例,通过聚合多个处理结果片段,生成用于向客户端发送的目标处理结果,包括:获取与待处理数据流对应的标识信息;以及根据标识信息,通过对多个处理结果片段进行聚合,生成目标处理结果。
7、根据本公开的实施例,根据标识信息,通过对多个处理结果片段进行聚合,生成目标处理结果,包括:基于标识信息,确定多个数据片段的切分顺序;以及基于切分顺序,通过对与多个数据片段对应的多个处理结果片段进行拼接,生成目标处理结果。
8、根据本公开的实施例,上述方法还包括:响应于接收到来自客户端的处理完成的认证信息,删除与标识信息对应的缓存区域内的多个数据片段和多个处理结果;其中,处理完成的认证信息是在客户端读取到结束标识时发送的;结束标识是在待处理数据流全部被写入缓存区域之后写入缓存区域的。
9、根据本公开的实施例,上述方法还包括:确定与待处理数据流对应的流式数据标识;以及在与多个线程对应的创建完成时刻,向客户端发送流式数据标识。
10、本公开的另一个方面提供了一种请求响应装置,包括:创建模块、切分模块、处理模块和发送模块。创建模块,用于响应于接收到来自客户端的流式数据处理请求,创建用于处理与流式数据处理请求对应的待处理数据流的多个线程,并断开与客户端的通信链接。切分模块,用于基于动态数据切分策略,对待处理数据流进行切分,得到多个数据片段,其中,多个数据片段的长度大于预定阈值。处理模块,用于基于多个线程对多个数据片段进行并行处理,得到多个处理结果。发送模块,用于响应于接收到来自客户端的处理结果查询请求,通过聚合多个处理结果片段,生成用于向客户端发送的目标处理结果。
11、根据本公开的实施例,切分模块包括:第一确定子模块、第一写入子模块和第二写入子模块。第一确定子模块,用于确定与待处理数据流对应的标识信息。第一写入子模块,用于基于标识信息,将待处理数据流写入与标识信息对应的临时存储区域。第二写入子模块,用于响应于临时存储区域内的数据片段长度大于或等于预定阈值,将临时存储区域内的数据片段作为数据片段写入与标识信息对应的缓存区域,并删除临时存储区域内的数据片段。
12、根据本公开的实施例,标识信息包括:流式数据标识和数据处理场景标识。第二写入子模块包括:第一确定单元、第二确定单元和写入单元。第一确定单元,用于根据流式数据标识,确定第一缓存区域。第二确定单元,用于根据数据处理场景标识,从第一缓存区域内确定第二缓存区域。写入单元,用于将临时存储区域内的数据片段作为数据片段写入与第二缓存区域。
13、根据本公开的实施例,上述装置还包括:写入模块,用于将与数据片段对应的处理结果写入与标识信息对应的缓存区域。
14、根据本公开的实施例,生成模块包括:获取子模块和聚合子模块。获取子模块,用于获取与待处理数据流对应的标识信息。聚合子模块,用于根据标识信息,通过对多个处理结果片段进行聚合,生成目标处理结果。
15、根据本公开的实施例,聚合子模块包括:第三确定单元和拼接单元。第三确定单元,用于基于标识信息,确定多个数据片段的切分顺序。拼接单元,用于基于切分顺序,通过对与多个数据片段对应的多个处理结果片段进行拼接,生成目标处理结果。
16、根据本公开的实施例,上述装置还包括:删除模块,用于响应于接收到来自客户端的处理完成的认证信息,删除与标识信息对应的缓存区域内的多个数据片段和多个处理结果;其中,处理完成的认证信息是在客户端读取到结束标识时发送的;结束标识是在待处理数据流全部被写入缓存区域之后写入缓存区域的。
17、根据本公开的实施例,上述装置还包括:确定模块和发送模块。确定模块,用于确定与待处理数据流对应的流式数据标识。发送模块,用于在与多个线程对应的创建完成时刻,向客户端发送流式数据标识。
18、本公开的另一个方面提供了一种电子设备,包括:
19、一个或多个处理器;
20、存储器,用于存储一个或多个程序,
21、其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上的方法。
22、本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,指令在被执行时用于实现如上的方法。
23、本公开的另一方面提供了一种计算机程序产品,计算机程序产品包括计算机可执行指令,指令在被执行时用于实现如上的方法。
24、根据本公开的实施例,因为采用了在创建完用于处理待处理数据流的多个线程之后就断开与客户端的通信链接,可以提高响应速度。其次,由于采用了动态数据切分策略,对待处理数据流进行切分,得到多个数据片段,并基于多个线程对多个数据片段进行异步处理,得到多个结果片段,最后通过聚合多个处理结果片段,生成用于向客户端发送的目标处理结果的技术手段,所以至少部分地克服了客户端与服务端对流式数据处理请求响应时长较长的技术问题,进而达到了缩短客户端与服务端之间的交互时长技术效果。
1.一种请求响应方法,包括:
2.根据权利要求1所述的方法,其中,所述基于动态数据切分策略,对所述待处理数据流进行切分,得到多个数据片段,包括:
3.根据权利要求2所述的方法,其中,所述标识信息包括:流式数据标识和数据处理场景标识;
4.根据权利要求2所述的方法,所述方法还包括:
5.根据权利要求1所述的方法,其中,所述通过聚合所述多个处理结果片段,生成用于向所述客户端发送的目标处理结果,包括:
6.根据权利要求4所述的方法,其中,所述根据所述标识信息,通过对所述多个处理结果片段进行聚合,生成所述目标处理结果,包括:
7.根据权利要求4所述的方法,所述方法还包括:
8.根据权利要求1所述的方法,所述方法还包括:
9.一种请求响应装置,包括:
10.一种电子设备,包括:
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至8中任一项所述的方法。
12.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-8中任一项所述的方法。
