一种批量化处理方法、装置、设备及存储介质与流程

未命名 07-23 阅读:123 评论:0


1.本技术涉及计算机技术领域,涉及但不限于一种批量化处理方法、装置、设备、及存储介质。


背景技术:

2.相关技术中,接口调用采用短连接方式,每次发起和响应都需要建立并关闭一次网络通道,这导致系统的连接层吞吐量小于系统内部可处理的数据量,网络带宽和服务资源都无法得到有效利用。
3.随着业务的不断增长,接口的调用量日益增长。提出了批量处理的方式,将相同类型的多个请求合并为一个请求,减少通信次数,从而降低请求时延提升系统并发。但这种批量处理存在以下问题:针对的是单体应用下的批量化,无法适应分布式系统和微服务框架,特别是业务的处理链路较为复杂时,单体应用的批量化只在入口对客户端的请求进行了简单的合并,系统内的io操作(例如数据库读写,服务间远程调用)依然是单个的请求,系统内网络资源和计算资源无法得到有效利用的问题依然存在。


技术实现要素:

4.本技术提供一种批量化处理方法、装置、设备及存储介质,能够提高分布式系统内网络资源和计算资源的资源利用率。
5.本技术实施例的技术方案是这样实现的:
6.本技术实施例提供了一种批量化处理方法,所述方法包括:
7.第一服务节点接收至少两条访问请求,所述至少两条访问请求基于至少两个客户端触发;
8.所述第一服务节点基于所述至少两条访问请求中各访问请求的访问类型,对所述至少两条访问请求进行分组,得到至少一个请求集合,不同请求集合对应的访问类型不同;
9.对于所述至少一个请求集合中的各请求集合,所述第一服务节点将所述请求集合中的访问请求进行合并,得到第一合并请求;
10.所述第一服务节点执行所述第一合并请求对应的资源访问操作。
11.本技术实施例提供了一种批量化处理装置,应用于第一服务节点,所述装置包括:
12.接收模块,用于接收至少两条访问请求,所述至少两条访问请求基于至少两个客户端触发;
13.分组模块,用于基于所述至少两条访问请求中各访问请求的访问类型,对所述至少两条访问请求进行分组,得到至少一个请求集合,不同请求集合对应的访问类型不同;
14.合并模块,用于对于所述至少一个请求集合中的各请求集合,将所述请求集合中的访问请求进行合并,得到第一合并请求;
15.执行模块,用于执行所述第一合并请求对应的资源访问操作。
16.本技术实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并
可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述批量化处理方法中的步骤。
17.本技术实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述批量化处理方法。
18.本技术实施例所提供的批量化处理方法、装置、设备及存储介质,第一服务节点接收至少两条访问请求,所述至少两条访问请求基于至少两个客户端触发;
19.所述第一服务节点基于所述至少两条访问请求中各访问请求的访问类型,对所述至少两条访问请求进行分组,得到至少一个请求集合,不同请求集合对应的访问类型不同;对于所述至少一个请求集合中的各请求集合,所述第一服务节点将所述请求集合中的访问请求进行合并,得到第一合并请求;所述第一服务节点执行所述第一合并请求对应的资源访问操作,降低了分布式系统内部访问操作的操作次数,提高了分布式系统内网络资源和计算资源的资源利用率。
附图说明
20.图1为本技术实施例提供的分布式系统的一种可选的结构示意图;
21.图2为本技术实施例提供的分布式系统的一种可选的结构示意图;
22.图3为本技术实施例提供的批量化处理方法的一种可选的流程示意图;
23.图4为本技术实施例提供的消息队列分布的一种可选的位置示意图;
24.图5为本技术实施例提供的分布式系统一种可选的逻辑结构示意图;
25.图6为本技术实施例提供的批量化处理方法的一种可选的结构示意图;
26.图7为本技术实施例提供的链路标识或批量标识的一种可选的结构示意图;
27.图8为本技术实施例提供的合并请求的传输示意图;
28.图9为本技术实施例提供的批量化处理装置的一种可选的结构示意图;
29.图10为本技术实施例提供的电子设备的一种可选的结构示意图。
具体实施方式
30.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对申请的具体技术方案做进一步详细描述。以下实施例用于说明本技术,但不用来限制本技术的范围。
31.本技术实施例可提供为批量化处理方法及设备、存储介质。实际应用中,批量化处理方法可实施于电子设备,电子设备中的各功能实体可以由电子设备(如终端设备、服务器)的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)协同实现。
32.本技术实施例提供的批量化处理方法应用于分布式系统100,如图1所示,分布式系统100包括:至少两个服务节点101,其中,不同节点为不同的服务,不同的服务用于实现不同的功能,且各服务提供有与其他服务之间进行交互的接口。分布式系统能够通过网络接收至少一个客户端102发送的请求,并通过包括的至少两个服务节点101中的部分或全部服务节点对接收到的请求进行处理,得到响应数据,并将响应数据返回至发送该响应数据对应的请求的客户端102。
33.本技术实施例提供的批量化处理方法应用于第一服务节点,第一服务节点为分布式系统中任一服务节点。
34.第一服务节点接收至少两条访问请求,所述至少两条访问请求基于至少两个客户端触发;所述第一服务节点基于所述至少两条访问请求中各访问请求的访问类型,对所述至少两条访问请求进行分组,得到至少一个请求集合,不同请求集合对应的访问类型不同;对于所述至少一个请求集合中的各请求集合,所述第一服务节点将所述请求集合中的访问请求进行合并,得到第一合并请求;所述第一服务节点执行所述第一合并请求对应的资源访问操作。
35.本技术实施例中,第一服务节点接收的至少两个请求可直接来自于客户端,即第一服务节点为入口服务节点。第一服务节点接收的至少两个请求也可为其他服务节点发送的访问请求,其中,其他服务节点发送的服务请求也是基于客户端来触发的。
36.基于图1所示的分布式系统,本技术实施例提供的分布式系统,如图2所示,分布式系统100还可包括:数据库103、配置中心104。其中,数据库103用于存储分布式系统的数据,分布式系统中的服务节点能够对数据库103进行读写操作,配置中心104用于对分布式系统中的服务节点进行监控,并对分布式系统中的服务节点进行统一管理。
37.结合图1或图2所示的分布式系统,本实施例提出一种批量化处理方法,分布式系统中的各服务节点基于接收的多条访问请求中各访问请求的访问类型对反问请求进行合并,得到合并请求,并基于合并请求进行批量的资源访问操作,从而对接收到的访问请求进行批量化处理,能够降低分布式系统内部输入输出操作次数,提高分布式系统内网络资源和计算资源的资源利用率。
38.下面,结合图1或图2所示的分布式系统的示意图,对本技术实施例提供的批量化处理方法及设备、存储介质的各实施例进行说明。
39.本实施例提供一种批量化处理方法,该方法应用于实施为服务节点的电子设备。该方法所实现的功能可以通过电子设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该电子设备至少包括处理器和存储介质。
40.电子设备可以是任何具有信息处理能力的设备,在一种实施例中,电子设备还可以是不便移动的具有计算功能的终端设备,比如台式计算机、桌面电脑等。在再一实施例中,电子设备还可以是服务器,比如:云端服务器等。
41.当然,本技术实施例不局限于提供为方法和硬件,还可有多种实现方式,例如提供为存储介质(存储有用于执行本技术实施例提供的批量化处理方法的指令)。
42.图3为本技术实施例的批量化处理方法的实现流程示意图,如图3所示,该方法包括以下步骤:
43.s301、第一服务节点接收至少两条访问请求。
44.所述至少两条访问请求基于至少两个客户端触发。
45.本技术实施例中,第一服务节点为分布式系统中的任一服务所在的节点,在一示例中,第一服务节点为提供的服务为入口服务的入口服务节点,其中,入口服务直接接收客户端发送的访问请求。在一示例中,第一服务节点为提供的服务为非入口服务的非入口服务节点,其中,一个非入口服务可直接从客户端接收访问请求,也可从其他非入口服务接收访问请求。
46.在第一服务节点为入口服务节点的情况下,第一服务节点直接接收来自至少两个客户端的至少两条访问请求。
47.在第一服务节点为非入口服务节点的情况下,第一服务节点通过其他服务节点接收来自至少两个客户端的至少两条访问请求。
48.在实际应用中,至少两条访问请求为第一服务节点在第一时长内接收到的访问请求。至少两条访问请求中可包括已经经过合并处理的合并请求。
49.s302、所述第一服务节点基于所述至少两条访问请求中各访问请求的访问类型,对所述至少两条访问请求进行分组,得到至少一个请求集合。
50.不同请求集合对应的访问类型不同。
51.本技术实施例中,第一服务节点确定至少两个访问请求中各访问请求的访问类型,并将访问类型相同的访问请求划分至同一组即请求集合中,这里,可认为请求集合与这些访问请求的访问类型对应。
52.在一示例中,第一服务节点接收到的访问请求包括:访问请求1、访问请求2、访问请求3和访问请求4,其中,访问请求1和访问请求3的访问类型相同,访问请求2和访问请求4的访问类型相同,第一服务节点将访问请求1和访问请求3划分至请求集合1中,将访问请求2和访问请求4划分至请求集合2中。
53.本技术实施例中,第一服务节点可将至少两个访问请求中存在有相同访问类型的访问请求划分在同一请求集合中。对于不存在相同请求类型的访问请求,可不进行请求集合的划分,也可进行请求集合的划分。
54.在一示例中,第一服务节点接收到的访问请求包括:访问请求1、访问请求2、访问请求3和访问请求4,其中,访问请求1和访问请求3的访问类型相同,,第一服务节点将访问请求1和访问请求3划分至请求集合1中,对于访问请求2和访问请求4不进行处理。
55.在一示例中,第一服务节点接收到的访问请求包括:访问请求1、访问请求2、访问请求3和访问请求4,其中,访问请求1和访问请求3的访问类型相同,,第一服务节点将访问请求1和访问请求3划分至请求集合1中,将访问请求2划分至请求集合3中,将访问请求4划分至请求集合4中。
56.本技术实施例中,对至少两条请求中不存在相同访问类型的访问请求的处理方式不进行限定。
57.本技术实施例中的访问类型包括:协议类型和请求类型,其中,协议类型表征访问请求使用的协议的类型,包括:超文本传输协议(hypertext transfer protocol,http)、结构化查询语言(structured query language、sql)等,请求类型表征请求的访问的资源的地址相同,比如:统一资源定位器(uniform resource locator,url)相同、访问的表相同等。其中,在协议类型为http的情况下,url相同,则认为访问类相同,在协议类型为sql的情况下,访问的表相同,则认为访问类型相同。本技术实施例中,对访问请求使用的协议不进行限定,以及一个协议类型下的访问类型的判定方式不进行任何限定。
58.在一示例中,至少两条访问请求包括:访问请求1、访问请求2、访问请求3、访问请求4、访问请求5、访问请求6、访问请求7、访问请求8,其中,访问请求1的协议为http、访问地址为url1,访问请求1的协议为sql、访问地址为表1,访问请求3的协议为http、访问地址为url1,访问请求4的协议为sql、访问地址为表1,访问请求5的协议为http、访问地址为url2,
访问请求6的协议为sql、访问地址为表2,访问请求7的协议为http、访问地址为url2,访问请求8的协议为sql、访问地址为表2,则访问请求1和访问请求3的访问类型相同,访问请求2和访问请求4的访问类型相同,访问请求5和访问请求7的访问类型相同,访问请求6和访问请求8的访问类型相同。
59.s303、对于所述至少一个请求集合中的各请求集合,所述第一服务节点将所述请求集合中的访问请求进行合并,得到第一合并请求。
60.对于划分的请求集合,第一服务节点将各请求集合中的访问请求进行合并。
61.在一示例中,划分的请求集合包括:请求集合1和请求集合2,其中,请求集合1中包括访问请求1和访问请求3,请求集合2中包括访问请求2和访问请求4,则将访问请求1和访问请求3进行合并,得到合并请求1,将访问请求2和访问请求4进行合并,得到合并请求2。
62.对于一个请求集合,第一服务节点将统一请求集合中的不同访问请求的对应相同字段的参数合并在一个参数集合中。本技术实施例中,对于合并请求,相对于需要合并的访问请求,可增加表征合并的字段。
63.在一示例中,http请求1和http请求2为访问类型相同的访问请求,且假设http请求1的报文即访问参数为{“param”,“1”},http请求2的报文为{“param”,“2”},对http请求1和http请求2合并之后的http请求报文为{"requests":[{"param1":"xxx1"},{"param1":"xxx 2"}]}。xxx1为http请求1的param1的值,xxx2为http请求2的param1的值。
[0064]
本技术实施例中,第一合并请求的访问类型与该第一合并请求所合并的各访问请求的访问类型相同。在一示例中,请求集合中的访问请求的协议类型为http1、访问类型为url1,则该请求集合中的访问请求合并后的第一合并请求的协议类型为http1、访问类型为url1。
[0065]
s304、所述第一服务节点执行所述第一合并请求对应的资源访问操作。
[0066]
当将一个请求集合中的多个访问请求合并为一个第一合并请求后,第一服务节点执行第一合并请求对应的资源访问操作即数据读写(io)操作,访问第一合并请求对应的目标资源。
[0067]
这里,当第一合并请求需要访问其他服务时,第一服务节点可将第一合并请求发送至其他服务对应的服务节点,以实现服务之间的访问请求的批量化交互。当第一合并请求为对内存或数据库的访问,则基于第一合并请求对内存进行访问或将第一合并请求发送至数据库,以对内存或数据库进行批量化访问。
[0068]
本技术实施例中,第一服务节点在访问其他服务节点、内存、数据库进行访问后,得到其他服务、内存或数据库返回的响应,此时第一服务节点接收到的响应为针对第一合并请求的合并响应。
[0069]
在实际应用中,本技术实施例提供的批量化处理方法,可在第一服务节点中集成批量化程序,第一服务节点在接收到服务请求后,由批量化程序对第一服务节点接收的访问请求进行批量化,将批量化得到的合并请求发送至http接口、mymysql、redis等下游节点,从而将批量化的合并请求作为单条的访问请求对待,且不限定协议类型。以获取订单信息接口为例,业务上假设需要从订单服务获取订单信息,然后从商品服务获取商品信息,合并信息后返回。相关技术中,订单服务需要将http接口改为支持获取批量订单信息的接口,然后循环去调用商品服务,调用商品服务还是单个请求,没有进行合并,且仅支持http协
议。本技术实施例提供的批量化处理方法,解决了分布式下请求链路合并不充分的问题,全链路批量化处理,在不需要改动代码的情况下,订单服务调用商品服务的请求在订单服务中已经合并。
[0070]
本技术实施例提供的批量化处理方法,第一服务节点接收至少两条访问请求,所述至少两条访问请求基于于至少两个客户端触发;所述第一服务节点基于所述至少两条访问请求中各访问请求的访问类型,对所述至少两条访问请求进行分组,得到至少一个请求集合,不同请求集合对应的访问类型不同;对于所述至少一个请求集合中的各请求集合,所述第一服务节点将所述请求集合中的访问请求进行合并,得到第一合并请求;所述第一服务节点执行所述第一合并请求对应的资源访问操作,降低了分布式系统内部输入输出操作次数,提高了分布式系统内网络资源和计算资源的资源利用率。
[0071]
在一些实施例中,s302第一服务节点基于所述至少两条访问请求中各访问请求的访问类型,对所述至少两条访问请求进行分组,得到至少一个请求集合,包括:
[0072]
所述第一服务节点基于所述至少两条访问请求中各访问请求的访问类型,将所述至少两条访问请求发送中各访问请求发送至各访问请求的访问类型对应的消息队列中;
[0073]
对于各访问类型对应的消息队列,所述第一服务节点基于第一批量化配置从所述消息队列中获取至少两条访问请求,并将获取的至少两条访问请求划分至一个请求集合;所述请求集合对应的访问类型为所述消息队列对应的访问类型。
[0074]
本技术实施例中,针对一个访问请求,第一服务节点在接收到访问请求后,可确定该访问请求的访问类型,并将该访问请求发送与该访问请求的访问类型对应的消息队列中。其中,消息队列的主题(topic)可为访问类型,从而实现消息队列与访问类型的对应。
[0075]
在一示例中,第一服务节点接收到访问请求1,判断访问请求1的访问类型为访问类型1,则将访问请求1发送至消息队列1,其中,消息队列1对应的访问类型为访问类型1;第一服务节点接收到访问请求2,判断访问请求2的访问类型为访问类型2,则将访问请求2发送至消息队列2,其中,消息队列2对应的访问类型为访问类型2;第一服务节点接收到访问请求3,判断访问请求3的访问类型为访问类型1,则将访问请求3发送至消息队列1;第一服务节点接收到访问请求4,判断访问请求4的访问类型为访问类型2,则将访问请求4发送至消息队列2。
[0076]
本技术实施例中,消息队列可包括位于本地的本地消息队列和位于远端的远端消息队列中的一种或两种,其中,本地消息队列位于第一服务节点上,远端消息队列位于第一服务节点之外的节点上。
[0077]
本技术实施例中,消息队列可为服务节点本地的本地消息队列,也可为远程的远端消息队列。消息队列的分布情况包括:
[0078]
分布情况1、各访问类型对应的消息队列均为本地的消息队列;
[0079]
分布情况2、各访问类型对应的消息队列均为远端消息队列;
[0080]
分布情况3、各访问类型对应的消息队列中,部分访问类型对应的消息队列为本地的消息队列,且另外部分访问类型对应的消息队列为远端消息队列。
[0081]
分布情况4,各访问类型对应的消息队列包括本地消息队列和远端消息队列。
[0082]
在消息队列的分布请求为分布情况4时,服务节点可基于本地消息队列中请求的数量和远端消息队列中请求的数量,对同一访问类型中本地消息队列中请求数量和远端消
息队列中请求的数量进行动态调整。
[0083]
在一示例中,如图4所示,服务节点40中的本地消息队列包括消息队列401和消息队列402,其中,消息队列401的主题为访问类型1,消息队列402的主题为访问类型2,缓存节点41中的远端消息队列包括消息队列411和消息队列412,其中,消息队列411的主题为访问类型1,消息队列412的主题为访问类型2,则当服务节点400本地存储的请求的数量大于或等于数量阈值,接收到访问类型1的请求,则将请求投递到消息队列411,当服务节点400本地存储的请求的数量小于数量阈值,接收到访问类型1的请求,则将请求投递到消息队列401。
[0084]
第一服务节点将访问请求发送至消息队列中,根据第一批量化配置从消息队列中拉取访问请求,并对拉取的访问请求进行合并。其中,第一批量化配置可包括:最大合并数量。第一批量化配置还可包括:会话超时时间、最大批量操作执行线程数、第一占比,第一占比为针对同一访问请求,消息队列包括本地消息队列和远端消息队列的情况下,本地消息队列中的访问请求和远端消息队列中的访问请求的比例。
[0085]
其中,最大合并数量用于控制第一合并请求所对应的访问请求的数量,会话超时时间用于控制消息队列中一个访问请求是否有效,当消息队列中一个访问请求的进入该消息队列的时间大于会话超时时间,则可认为该访问请求为超时的访问请求,不对概访问请求进行合并或处理,最大批量操作执行线程数指示合并得到的第一合并请求的最大数量,其中一个合并请求的合并由一个批量操作执行线程来执行。第一占比用于指示第一服务节点从本地消息队列中还是从远端消息队列中拉取访问请求,以实现负载均衡。
[0086]
在一些实施例中,第一服务节点还执行以下处理:
[0087]
所述第一服务节点判断本地是否存在所述第一批量化配置;
[0088]
所述第一服务节点确定本地不存在所述第一批量化配置的情况下,从批量配置中心节点获取所述第一批量化配置,所述批量配置中心节点配置有至少两个服务节点中各服务节点对应的批量化配置,所述至少两个服务节点包括所述第一服务节点。
[0089]
本技术实施例中,当第一服务节点在基于第一批量化配置从消息队列中获取访问请求之前,先获取第一批量化配置。第一服务节点可先判断本地是否保存有第一批量化配置,在存在第一批量化配置的情况下,直接从本地获取第一批量化配置,否则,从批量配置中心节点获取第一批量化配置。这里,批量配置中心节点可认为是批量化中心,能够对不同服务节点的批量化配置进行配置和更新,其中,第一批量化配置为第一服务节点的批量化配置。
[0090]
当第一服务节点向批量配置中心节点获取第一批量化配置时,批量配置中心节点不存在第一批量化配置的情况下,则在配置中心节点对第一服务节点的服务进行注册,并初始化第一批量化配置。批量配置中心节点接收配置中心节点发送的第一批量化配置,并将接收的第一批量化配置存储并发送至第一服务节点。
[0091]
在实际应用中,第一服务节点可直接从批量配置中心节点获取第一批量化配置。
[0092]
在一些实施例中,s304所述第一服务节点基于所述请求集合对应的访问类型执行所述第一合并请求对应的资源访问操作的实施,包括:
[0093]
所述第一服务节点将所述第一合并请求发送至第二服务节点,并接收所述第二服务节点发送的所述第一合并请求对应的合并响应,所述第二服务节点为与所述访问类型相
关的服务节点。
[0094]
本技术实施例中,对于一第一合并请求,当第一服务节点在执行第一合并请求的io操作时,可将第一合并请求发送至第二服务节点,以基于第二服务节点对第一合并请求进行处理时,则将第一需要并请求发送至第二服务节点,从而实现批量化的合并请求在服务节点之间的交互。
[0095]
其中,第一服务节点是够将第一合并请求发送至第二服务节点,基于业务代码逻辑。在一示例中,以订单信息接口为例,订单服务(第一服务节点的服务)需要先去数据库查询订单信息,然后再调用商品服务(第二服务节点的服务)的接口获取商品信息,组装后返回,所以链路上,订单服务先请求数据库,再请求商品服务。数据库的请求合并以及商品信息接口请求的合并,由对应的队列决定,数据库请求与商品信息请求互相之间是独立的。
[0096]
在一示例中,当第一合并请求为多个登陆请求时,第一服务节点为登陆服务,登陆服务需要获取各登陆请求的认证信息,第一合并请求发送至认证服务,以实现认证服务对多个登陆请求的认证。
[0097]
在实际应用中,第二服务节点在接收到第一合并请求后,可将第一合并请求作为一条访问请求进行处理,可与接收到的其他访问请求进行合并。
[0098]
在一些实施例中,第一服务节点还执行以下处理:
[0099]
对于所述至少一个请求集合中的各请求集合,所述第一服务节点确定所述第一合并请求对应的合并响应中,所述请求集合中各访问请求对应的响应数据,并将根据所述响应数据对应的访问请求的会话信息,将所述响应数据发送至所述会话信息对应的连接。
[0100]
本技术实施例中,第一服务节点对访问请求时,基于第一合并请求对多个访问请求进行批量化处理,得到的处理结果为多个访问请求的响应数据构成的合并响应,此时,第一服务节点对合并响应进行分割,确定各访问请求的响应数据。
[0101]
在一示例中,第一合并请求为访问请求1和访问请求3合并得到,第一服务节点获得第一合并请求对应的合并响应后,对合并响应进行分割,得到访问请求1的响应数据1和访问请求3的响应数据3。
[0102]
第一服务节点在获得个访问请求的响应数据后,依据各访问请求的会话信息发送至各访问请求对应的连接。本技术实施例中,第一服务节点为个访问请求生成会话信息,以对不同的访问请求和对应的连接进行关联。
[0103]
在一示例中,第一合并请求为访问请求1和访问请求3合并得到,第一服务节点对第一合并请求对应的合并响应分割,得到访问请求1的响应数据1和访问请求3的响应数据3后,将响应数据1发送至访问请求1对应的连接1,将应数据3发送至访问请求3对应的连接3。
[0104]
本技术实施例中,基于会话信息对各访问请求的连接进行区分,从而实现批量化处理的情况下,各访问请求的响应数据能够精确的反馈。
[0105]
在一些实施例中,第一服务节点还执行以下处理:
[0106]
对于所述至少两条访问请求中的各访问请求,所述第一服务节点保持接收所述请求的连接,并基于所述连接创建所述请求对应的会话信息。
[0107]
本技术实施例中,第一服务节点接收到访问请求后,在连接层保持该访问请求的连接,并创建该访问请求相关的会话信息。其中,会话信息为访问请求的上下文信息,包含:请求入口信息(发送请求的设备ip,请求内容)、请求链路信息、请求响应(处理请求的设备
ip,响应内容)等。本技术实施例中,对会话信息包括的信息的类型不进行任何限定。
[0108]
在一些实施例中,所述将所述第一合并请求发送至第二服务节点,包括:
[0109]
所述第一服务节点基于所述第一服务节点的节点信息、所述第一合并请求的合并参数生成批量标识,不同的第一合并请求对应不同的批量标识;
[0110]
所述第一服务节点将所述批量标识携带在所述第一合并请求中发送至所述第二服务节点,所述批量标识用于标识所述第一合并请求为所述第一服务节点生成的。
[0111]
本技术实施例中,对一个请求集合中的访问请求进行合并的同时,生成批量标识,并将第一合并请求发送至第二服务节点时,将批量标识携带在第一合并请求。其中,批量标识基于第一服务节点的节点信息、所述第一合并请求的合并参数生成。其中,第一服务节点的节点信息用于识别生成第一合并请求的服务节点,合并参数用于识别第一服务节点生成的哪个合并请求,其中,合并参数可包括以下信息中的一个或多个:第一进程号、第一时间、合并请求id等,第一进程号表征生成第一合并请求的批量化合并进程,第一时间为生成第一合并请求的时间,合并请求id用于标识不同的第一合并请求。
[0112]
在实际应用中,第一服务节点可将合并标识分别对应第一合并请求中各访问请求部署。在一示例中,第一合并请求为对访问请求1和合并请求3合并得到,且批量标识为batchid1,则在第一合并请求中携带:batchid1.param1,batchid1.param3,其中,param1为访问请求1的访问参数,param3为访问请求3的访问参数。
[0113]
本技术实施例中,第一服务节点将携带第一合并请求的批量标识发送至第二服务节点,使得第二服务节点能够确定第一合并请求是哪个服务节点生成的,跟踪调用链路中的合并状态和位置。
[0114]
这里,当对于一个第一合并请求生成批量标识,则该批量标识可适用于该第一合并请求中所有的访问请求,使得包括第一服务节点和第二服务节点在内的访问请求经历过合并之后的下游服务节点能够识别到该访问请求在第一服务节点进行了合并。在一示例中,访问请求1和访问请求3合并的合并请求1生成批量标识1,访问请求2和访问请求4合并的合并请求2生成批量标识2,服务节点a(第一服务节点)将批量标识1携带在合并请求1中发送至服务节点b,且将批量标识2携带在合并请求2中发送至服务节点c中;此时,服务节点b能够确认第一服务节点对访问请求1进行了合并,且能够确认第一服务节点对访问请求1进行了合并,服务节点c能够确认第一服务节点对访问请求2进行了合并,且能够确认第一服务节点对访问请求4进行了合并。当服务节点c将第一合并请求发送至服务节点d,服务节点d也能够确认第一服务节点对访问请求1进行了合并,且也能够确认第一服务节点对访问请求1进行了合并。
[0115]
本技术实施例中,批量标识可携带在第一合并请求的请求头中。
[0116]
在一些实施例中,第一服务节点还执行以下处理:
[0117]
对于所述至少两条访问请求中的各访问请求,所述第一服务节点判断所述请求是否携带链路标识,在所述请求未携带所述链路标识的情况下,所述第一服务节点基于所述第一服务节点的节点信息、所述请求的请求参数生成所述链路标识,并建立所述请求与所述链路标识之间的绑定关系,不同的链路标识用于标识不同链路的访问请求。
[0118]
本技术实施例中,第一节点接收到访问请求且确认访问请求未携带链路标识的情况下,基于第一服务节点的节点信息和请求的请求参数生成链路标识,不同的链路标识用
于标识不同链路的访问请求。其中,第一服务节点的节点信息表征收到该访问请求的服务节点为第一服务节点,请求参数可包括:第二进程号、第二时间、请求id等,第二进程号表征处理该访问请求的进程,第二时间为接收访问请求的时间,请求id用于标识不同的访问请求。
[0119]
本技术实施例中,可将一个访问请求触发的至少一个访问请求认为是同一链路的访问请求。在一示例中,第一服务节点接收到的访问请求为登陆请求,并基于登陆请求触发注册请求的情况下,登陆请求与注册请求为同一链路的访问请求。
[0120]
当根据第一服务节点的节点信息、所述访问请求的请求参数生成所述链路标识,并将链路标识携带在该访问请求所在链路的访问请求中,使得服务节点能够对该条链路上的访问请求进行识别。在实际应用中,第一服务节点可在创建会话信息时,判断是否已经创建链路标识,如果没有创建链路标识,则标识该访问请求未被批量化即合并,此时,创建链路信息,且下游服务节点不需要再创建链路标识。
[0121]
当第一服务节点对多个访问请求进行合并,得到第一合并请求的情况下,第一合并请求可携带各访问请求的链路标识。其中,各访问请求的链路标识可携带在第一合并请求的请求头中。
[0122]
在实际应用中,第一合并请求的请求头中可同时带各访问请求的批量标识和链路标识。
[0123]
在一示例中,在一个电商系统的获取订单信息http接口,该接口需要从订单服务获取订单信息,然后从商品服务获取商品信息的场景下,第一服务节点为订单服务节点,在同一时间有两个获取订单信息的接口进入订单服务,第一个访问请求生成上下文并标记链路标识为traceid1,第二个访问请求标记链路标识为traceid2,当这两个访问请求的业务需要请求商品服务时,请求商品服务的访问请求被合并为一个访问请求,合并标记为batchid1,此时,第一合并请求可携带以下信息:batchid1.traceid1,batchid1.traceid2。
[0124]
在一些实施例中,s301所述第一服务节点接收至少两条访问请求,包括:
[0125]
所述第一服务节点接收第三服务节点发送的第二合并请求,并拦截所述第二合并请求;
[0126]
所述第一服务节点对所述第二合并请求进行拆分,得到至少两条拆分访问请求,并调用所述拆分访问请求对应方法。
[0127]
本技术实施例中,当第一服务节点为支持单个个请求操作的服务节点,接收其他服务节点即第三服务节点发送的第二合并请求,此时,第一服务节点为第三服务节点的下游节点,第一服务节点在接收到第二合并请求后,将第二合并请求发送至处理请求的接口之前,拦截第二合并请求,并对拦截的第二合并请求进行分割,得到多个拆分访问请求,其中,拆分访问请求为对合并请求进行拆分得到的访问请求。
[0128]
本技术实施例中,如果第一服务节点是mysql、redis等原生支持批量操作的服务,不需要进行拆分处理。如果第一服务节点为只支持单个请求操作的服务,第一服务节点会拦截从第三服务节点接收到的第二合并请求,并对第二合并请求进行拆分,循环调用单个请求接口的实现。在一示例中,第二合并请求的报文为{"requests":[{"param":"1"},{"param":"2"}]},第一服务节点的服务的处理方法为void func(var param),第一服务节点可拦截请求,根据请求的请求头(header)判断接收到请求是否为合并请求,如果是合并请
求,则将合并请求的报文分割成单条访问请求{“param”,“xxx1”}和{“param”,“xxx2”},并循环调用方法(func)两次,完成批量请求的执行。
[0129]
在实际应用中,第一服务节点中可集成批量化程序,由批量化程序对第二合并请求进行拦截和拆分。
[0130]
下面,对本技术实施例提供的批量化处理方法进行进一步说明。
[0131]
相关技术中,接口调用采用短连接方式,每次发起和响应都需要建立并关闭一次网络通道,这导致系统的连接层吞吐量小于系统内部可处理的数据量,网络带宽和服务资源都无法得到有效利用。
[0132]
随着业务的不断增长,接口的调用量日益增长。提出了批量处理的方式,将相同类型的多个请求合并为一个请求,减少通信次数,从而降低请求时延提升系统并发。但这种批量处理存在以下问题:
[0133]
问题1、针对的是单体应用下的批量化,无法适应分布式系统和微服务框架,特别是业务的处理链路较为复杂时,单体应用的批量化只在入口对客户端的请求进行了简单的合并,系统内的io操作(例如数据库读写,服务间远程调用)依然是单个的请求,系统内网络资源和计算资源无法得到有效利用的问题依然存在。
[0134]
问题2、系统内的服务之间没有形成闭环的协调控制,无法根据系统目前的负载进行自动灵活的批量参数调整,使得稳定性低。
[0135]
问题3、批量化组合了多个请求,如果链路较长,调用服务多,定位问题时难度较大。
[0136]
本技术实施例提供的批量化处理方法,能够解决上述分布式系统下资源利用率不高、稳定性不高、定位效率低的问题。本技术实施例提供的批量化处理方法涉及以下几个方面:
[0137]
第一方面、通过批量客户端和批量管理中心相结合的方式实现分布式系统资源的统一调配和批量化的统一管理。
[0138]
第二方面、提出全链路批量化概念,实现了整个调用链路的批量化,降低了系统内部io操作次数,提高了资源利用率,从而提升了系统的吞吐量和性能。
[0139]
第三方面、设计了全链路批量化的链路模型,可以快速定位到不同请求在批量链路中的去向和状态,提升开发和排障效率。
[0140]
本技术实施例提供的批量化处理方法,在分布式系统以及分布式系统中的平台之间实现全链路批量化。分布式系统中包括集成在服务节点上的批量化客户端和批量化中心节点即批量配置中心节点,其中,批量化客户端用于实现服务节点上所有io操作的批量化处理,批量化中心节点实现对分布式系统内各个批量化客户端统一的批量化管理。本技术实施例提供的批量化处理方法还提出全链路批量化的概念,实现多个请求在内部调用链路中灵活的合并或拆分成批量操作,提升分布式系统io资源的利用率和性能。
[0141]
本技术实施例提供的批量化处理方法应用于分布式系统,分布式系统的架构如图5所示,包括:客户端501(包括客户端501-1、客户端501-2)、服务502、服务503、数据库504、批量化中心505、配置中心506。
[0142]
客户端501-1、客户端501-2的请求发送至服务502,服务502对接收到的请求进行批量化处理,得到批量请求即合并请求,服务502基于批量请求的访问类型对批量请求进行
对应的操作,其中,基于业务代码逻辑,服务502可将批量请求发送至服务503。在一示例中,以订单信息接口为例,订单服务需要先去数据库查询订单信息,然后再调用商品服务的接口获取商品信息,组装后返回,所以链路上,先请求数据库,再请求商品服务。数据库的请求合并以及商品信息接口请求的合并,由对应的队列决定,数据库请你去与商品信息请求互相之间是独立的。
[0143]
服务502中包括:会话管理单元5021、路由器5022、装配器5023、执行器5024、消息队列5025,其中,会话管理单元5021、路由器5022、装配器5023、执行器5024和消息队列5025组成批量化客户端,消息队列5025可位于服务502上,也可位于服务502之外。
[0144]
批量化客户端对服务中的所有io操作进行统一的批量化控制,实现批量化操作。
[0145]
会话管理单元5021保存io操作即请求的入口信息,存储在入口信息用于在io批量操作处理完成时进行响应。
[0146]
路由器5022则对io操作进行分组和归类。
[0147]
消息队列5025为io操作提供缓存并保证时序性,消息队列5025可采用服务的本地缓存实现,也可为远程提供,以用于集群内负载均衡。
[0148]
装配器5023按照合适的数量从消息队列5025拉取多条访问请求,合并为批量请求;
[0149]
执行器5024针对不同访问类型的批量请求,执行批量请求,或将批量请求发送至服务503或数据库504。
[0150]
本技术实施例中,服务503中也可集成有批量化客户端,且批量化处理客户端的处理机制同服务502上的批量化客户端。
[0151]
批量化中心505(如zookeeper)位于批量配置中心节点上,用于对分布式系统中所有的批量化客户端提供统一的管理,能够存储分布式系统中所有服务的批量化配置,且能够对所有的批量化客户端进行监听,批量化客户端可以直接从配置中心获取对应服务的批量化配置。
[0152]
批量化中心505包括:收集器5051、决策器5052和进行配置批量存储的存储单元5053。
[0153]
收集器5051定时的从所有批量化客户端收接到监控指标,监控指标可包括:客户端的批处理执行情况、机器负载。
[0154]
决策器5052判断一个批量化客户端的监控指标到达预先设定的阀值,则会按照合理的规则对该批量化客户端所在的服务对应的批量配置进行动态修改,触发批量化客户端进行调整,保证整个系统批量化的稳定运行。
[0155]
存储单元5053,用于存储各服务对应的批量配置即批量化配置。
[0156]
当存储单元5053未存储一服务的批量化配置,则在配置中心506进行注册,配置中心506初始化该服务的批量化配置,并将初始化的批量化配置发送至批量化中心505。
[0157]
本技术实施例提供的批量化处理方法可如图6所示,包括:
[0158]
s601、服务接收请求。
[0159]
服务收到io操作的请求后,在连接层保持请求的连接,创建请求相关的会话信息。
[0160]
s602、服务创建会话。
[0161]
s603、服务判断是否存在批量化配置。
[0162]
这里,服务判断本地是否存在批量化配置,其中,批量化配置包括:会话超时时间、最大请求合并数量、最大批量操作执行线程数、本地与远端消息队列的消息占比。
[0163]
如果服务本地没有批量化配置,则向批量化中心发送批量化配置获取请求,批量化配置执行s6041至s6044,并接收配置化中心发送的批量化配置;如果服务本地有批量化配置,则执行s604。
[0164]
s604、服务投递消息队列。
[0165]
服务判断消息的访问类型,并根据消息的访问类型和批量化配置将接收到的请求投递到访问类型对应的消息队列。
[0166]
本技术实施例中,消息队列可为本地消息队列或者远端消息队列,且不同的消息队列的主题(topic)为不同的访问类型。
[0167]
s605、服务拉取多条请求。
[0168]
服务从对应的topic的消息队列中循环获取指定数量的请求。
[0169]
s606、服务合并请求得到批量请求。
[0170]
服务将从一个消息队列中拉取的多条请求合并为一条批量请求。
[0171]
s607、服务处理批量请求。
[0172]
服务根据合并请求的访问类型对合并请求进行对应的处理。
[0173]
这里,对于访问类型与服务的访问类型相同的批量处理,由当前服务之星该批量处理,得到批量响应;对于访问类型与其他服务的访问类型相同的批量处理,当前服务将该批量请求转发至其他的服务,且接收其他服务返回的批量响应;对于访问类型为数据库对应的访问类型,则当前服务将批量请求转发至数据库,且接收数据库返回的批量响应。
[0174]
s608、服务获得批量响应。
[0175]
服务获得响应批量请求的批量响应即批量请求的处理结果。
[0176]
这里,服务将获取的批量响应回调给会话管理。
[0177]
s609、服务响应请求。
[0178]
服务确定批量响应中各响应消息对应的连接,将各响应消息通过对应的连接返回至客户端。
[0179]
这里,批量化中心可接收到服务请求获取批量化配置的请求,则批量化中心执行s6041至s6044,其中:
[0180]
s6041、批量化中心接收批量化配置获取请求。
[0181]
s6042、批量化中心判断是否存在服务对应的批量化配置。
[0182]
如果没有,则执行s6043,如果有,则执行s6064、批量化中心向服务发送批量化配置,此时,服务接收批量化中心方的批量化配置。
[0183]
s6043、批量化中心注册并创建批量化配置。
[0184]
这里,批量化中心在配置中心注册服务,配置中心注册该服务并初始化批量化配置,并将初始化的批量化配置发送至批量化中心。
[0185]
批量化中心在接收到配置中心初始化的批量化配置后,执行6044。
[0186]
s6044、批量化中心向服务发送批量化配置。
[0187]
本技术实施例提供的批量化处理方法还能够实现全链路批量化处理,从而实现整个分布式系统的批量化。
[0188]
这里,对全链路批量化处理涉及的部分术语进行解释:
[0189]
链路,客户端到服务、服务到服务、或服务到数据库等不同的处理节点之间的通路。
[0190]
完整链路,指一条访问请求从客户端进入分布式系统,以及进入分布式系统后的接收请求的服务至得到最终响应数据的服务之间所经过所有的链路。其中,本技术实施例中,完整链路中所有的链路的接口均支持批量化调用,即不同的服务之间可进行批量请求的发送和接收。举例来说,平台提供给客户端的接口、文件读写、数据库读写、第三方平台接口,都应当支持批量操作。所有的服务在接收到请求后,都会进行批量化客户端的相关流程,将单一的请求合并为批量请求,从而实现批量化操作。
[0191]
本技术实施例中,批量请求在服务之间传输时携带链路标识(trace id)和批量标识(batch id),以对所经过的链路进行标记,从而对分布式系统中的批量化进行统一的管理,在出现问题时快速定位问题节点。其中,traceid是请求所经过的链路的唯一标识,在一条访问请求的整个链路中保持不变;batchid表示每次批处理操作的唯一标识,链路中每次批处理操作都会生成一个batchid,一个traceid对应多个batchid,同时一个批量操作中的单个操作可能来自不同请求,所以一个batchid对应多个traceid。
[0192]
traceid与batchid的生成规则见图7所示,包括:预留字段、请求时间戳、系统id、服务id、机器ip地址、进程号、自增标识。其中,预留字段可占用两位,用于拓展,默认为00,可存储0-256的数据;请求时间戳占用11位,精确到毫秒,可以显示558年的时间信息;系统id占用两位,表示0-256的不同平台;服务id占用两位,表示0-256的不同服务;机器ip地址占用4位,用于表示请求当前所在机器的内部ip;进程号占用4位,表示当前机器处理请求的进程;自增id占用4位,每毫秒可以生成0-65536的数据。这些信息组装在一起,形成了一个随时间增加,包含该请求当前处理信息的唯一标识。
[0193]
对于traceid,traceid表示系统收到请求时创建的链路id,一个链路只有唯一一个,系统id、服务id、机器ip地址表示的是收到请求的系统、服务与机器。
[0194]
对于batchid,batchid表示合并多条访问请求生成的批量请求,系统id、服务id、机器id表示的是合并请求的批量化客户端所在的系统、服务与机器。
[0195]
本技术实施例中,为了保证信息存储容量和通用性上达到平衡,traceid与batchid中所有字段采用10进制表示。
[0196]
本技术实施例提供的批量化处理方法中,服务在接收到请求后创建会话时,如果上下文中没有traceid,则视为首次进行批量化,为请求创建traceid,投递消息队列并被批量消费生成批量任务后,为批量任务生成batchid,并将traceid和batchid传递到下游服务中,下游服务创建批量任务在上游服务batchid的基础上生成新的batchid。有了这种树状关系,不仅可以定位到一条客户端发送的请求,在业务处理中经过了哪些平台、服务、机器和进程,执行了什么样的批量任务,还可以统计执行批量任务所需的时间,实现请求的可溯性。
[0197]
在一示例中,如图8所示,服务804从客户端801和客户端802接收到请求1和请求2后,分别为请求1和请求2创建traceid1和traceid2,服务805从客户端3接收到请求3后,为请求创建traceid3,服务804对请求1和请求2进行合并,得到批量请求1,为批量请求1创建batchid1,且将(batchid1、traceid1)、(batchid1、traceid2)随着批量请求1中请求1和请
求2的访问参数发送至服务806,服务805对请求3进行合并处理,得到批量请求2,为批量请求2中的请求3创建batchid2,且将(batchid2、traceid3)随着批量请求2中请求3发送在服务806。服务806接收到批量请求1和批量请求2,对批量请求1和批量请求2进行处理,基于请求1、请求2和请求3的处理均涉及服务807和数据库808,则基于请求1触发请求11和请求12,基于请求2触发请求21和请求22,基于请求3触发请求31和请求32。服务806将请求11、请求21和请求31进行合并,得到发送中服务807的批量请求3,并为批量请求3创建batchid3,则随着批量请求3中的请求11、请求21和请求31的访问参数发送至服务807:分别携带有(batchid3、batchid1、traceid1)、(batchid3、batchid1、traceid2)(batchid3、batchid2、traceid3)。服务806将请求12、请求22和请求32进行合并,得到发送中数据库808的批量请求4,并为批量请求4创建batchid4,则批量请求4发送至数据库808时,分别随着中的请求12、请求22和请求32携带有(batchid4、batchid1、traceid1)、(batchid4、batchid1、traceid2)(batchid4、batchid2、traceid3)。
[0198]
相比相关技术中的批量化处理,本技术实施例提供的批量化处理方法,设计了分布式系统以及多平台之间的全链路批量化方案,实现了系统io操作彻底的批量化。通过集成批量化客户端,批量化中心统一管理的设计,在保证服务高效批量化的同时,实现了对整个系统批量化的可控。通过提出全链路批量化的概念,打通了服务内部、服务之间、平台之间的批量化io通道,提升了系统网络资源的利用率以及整个业务处理的吞吐量;通过设计全链路批量化模型,实现对全链路批量处理状态的监控,提升定位问题的效率。
[0199]
本技术实施例提供一种批量化处理装置900,如图9所示,批量化处理装置900包括:
[0200]
接收模块901,用于接收至少两条访问请求,所述至少两条访问请求基于至少两个客户端触发;
[0201]
分组模块902,用于基于所述至少两条访问请求中各访问请求的访问类型,对所述至少两条访问请求进行分组,得到至少一个请求集合,不同请求集合对应的访问类型不同;
[0202]
合并模块903,用于对于所述至少一个请求集合中的各请求集合,将所述请求集合中的访问请求进行合并,得到第一合并请求;
[0203]
执行模块904,用于执行所述第一合并请求对应的资源访问操作。
[0204]
在一些实施例中,分组模块902,还用于:
[0205]
基于所述至少两条访问请求中各访问请求的访问类型,将所述至少两条访问请求中各访问请求发送至各访问请求的访问类型对应的消息队列中;
[0206]
对于各访问类型对应的消息队列,基于第一批量化配置从所述消息队列中获取至少两条访问请求,并将获取的至少两条访问请求划分至一个请求集合;所述请求集合对应的访问类型为所述消息队列对应的访问类型。
[0207]
在一些实施例中,装置900还包括:
[0208]
判断模块,用于判断本地是否存在所述第一批量化配置;
[0209]
获取模块,用于确定本地不存在所述第一批量化配置的情况下,从批量配置中心节点获取所述第一批量化配置,所述批量配置中心节点配置有至少两个服务节点中各服务节点对应的批量化配置,所述至少两个服务节点包括所述第一服务节点。
[0210]
在一些实施例中,合并模块903,还用于将所述第一合并请求发送至第二服务节
点,并接收所述第二服务节点发送的所述第一合并请求对应的合并响应,所述第二服务节点为与所述访问类型相关的服务节点。
[0211]
在一些实施例中,装置900还包括:
[0212]
响应模块,用于对于所述至少一个请求集合中的各请求集合,确定所述第一合并请求对应的合并响应中,所述请求集合中各访问请求对应的响应数据,并将根据所述响应数据对应的访问请求的会话信息,将所述响应数据发送至所述会话信息对应的连接。
[0213]
在一些实施例中,装置900还包括:
[0214]
保持模块,用于对于所述至少两条访问请求中的各访问请求,保持接收所述访问请求的连接息;
[0215]
第一创建模块,用于基于所述连接创建所述访问请求对应的会话信。
[0216]
在一些实施例中,合并模块903,还用于:
[0217]
基于所述第一服务节点的节点信息、所述第一合并请求的合并参数生成批量标识,不同的第一合并请求对应不同的批量标识;
[0218]
将所述批量标识携带在所述第一合并请求中发送至所述第二服务节点,所述批量标识用于标识所述第一合并请求为所述第一服务节点生成的。
[0219]
在一些实施例中,装置900还包括:链路标识模块,用于:
[0220]
对于所述至少两条访问请求中的各访问请求,判断所述访问请求是否携带链路标识,在所述访问请求未携带所述链路标识的情况下,所述第一服务节点基于所述第一服务节点的节点信息、所述访问请求的请求参数生成所述链路标识,并建立所述访问请求与所述链路标识之间的绑定关系,不同的链路标识用于标识不同链路的访问请求。
[0221]
在一些实施例中,接收模块901,还用于:
[0222]
接收第三服务节点发送的第二合并请求,并拦截所述第二合并请求;
[0223]
对所述第二合并请求进行拆分,得到至少两条拆分访问请求,并调用所述拆分访问请求对应方法。
[0224]
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
[0225]
需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的批量化处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特定的硬件和软件结合。
[0226]
对应地,本技术实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的批量化处理方法中的步骤。
[0227]
对应地,本技术实施例提供一种存储介质,也就是计算机可读存储介质,其上存储
有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的批量化处理方法。
[0228]
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术存储介质和设备实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
[0229]
需要说明的是,图10为本技术实施例电子设备的一种硬件实体示意图,如图10所示,所述电子设备1000包括:一个处理器1001、至少一个通信总线1002、用户接口1003、至少一个外部通信接口1004和存储器1005。其中,通信总线1002配置为实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏,外部通信接口1004可以包括标准的有线接口和无线接口。
[0230]
存储器1005配置为存储由处理器1001可执行的指令和应用,还可以缓存待处理器1001以及电子设备中各模块待处理或已经处理的数据,可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。
[0231]
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0232]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0233]
在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0234]
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0235]
另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0236]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存
储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
[0237]
或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
[0238]
以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。

技术特征:
1.一种批量化处理方法,其特征在于,所述方法包括:第一服务节点接收至少两条访问请求,所述至少两条访问请求基于至少两个客户端触发;所述第一服务节点基于所述至少两条访问请求中各访问请求的访问类型,对所述至少两条访问请求进行分组,得到至少一个请求集合,不同请求集合对应的访问类型不同;对于所述至少一个请求集合中的各请求集合,所述第一服务节点将所述请求集合中的访问请求进行合并,得到第一合并请求;所述第一服务节点执行所述第一合并请求对应的资源访问操作。2.根据权利要求1所述的方法,其特征在于,所述第一服务节点基于所述至少两条访问请求中各访问请求的访问类型,对所述至少两条访问请求进行分组,得到至少一个请求集合,包括:所述第一服务节点基于所述至少两条访问请求中各访问请求的访问类型,将所述至少两条访问请求中各访问请求发送至各访问请求的访问类型对应的消息队列中;对于各访问类型对应的消息队列,所述第一服务节点基于第一批量化配置从所述消息队列中获取至少两条访问请求,并将获取的至少两条访问请求划分至一个请求集合;所述请求集合对应的访问类型为所述消息队列对应的访问类型。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:所述第一服务节点判断本地是否存在所述第一批量化配置;所述第一服务节点确定本地不存在所述第一批量化配置的情况下,从批量配置中心节点获取所述第一批量化配置,所述批量配置中心节点配置有至少两个服务节点中各服务节点对应的批量化配置,所述至少两个服务节点包括所述第一服务节点。4.根据权利要求1所述的方法,其特征在于,所述第一服务节点执行所述第一合并请求对应的资源访问操作,包括:所述第一服务节点将所述第一合并请求发送至第二服务节点,并接收所述第二服务节点发送的所述第一合并请求对应的合并响应,所述第二服务节点为与所述访问类型相关的服务节点。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:对于所述至少一个请求集合中的各请求集合,所述第一服务节点确定所述第一合并请求对应的合并响应中,所述请求集合中各访问请求对应的响应数据,并将根据所述响应数据对应的访问请求的会话信息,将所述响应数据发送至所述会话信息对应的连接。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:对于所述至少两条访问请求中的各访问请求,所述第一服务节点保持接收所述访问请求的连接,并基于所述连接创建所述访问请求对应的会话信息。7.根据权利要求4所述的方法,其特征在于,所述将所述第一合并请求发送至第二服务节点,包括:所述第一服务节点基于所述第一服务节点的节点信息、所述第一合并请求的合并参数生成批量标识,不同的第一合并请求对应不同的批量标识;所述第一服务节点将所述批量标识携带在所述第一合并请求中发送至所述第二服务节点,所述批量标识用于标识所述第一合并请求为所述第一服务节点生成的。
8.根据权利要求1或7所述的方法,其特征在于,所述方法还包括:对于所述至少两条访问请求中的各访问请求,所述第一服务节点判断所述访问请求是否携带链路标识,在所述访问请求未携带所述链路标识的情况下,所述第一服务节点基于所述第一服务节点的节点信息、所述访问请求的请求参数生成所述链路标识,并建立所述访问请求与所述链路标识之间的绑定关系,不同的链路标识用于标识不同链路的访问请求。9.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述第一服务节点接收第三服务节点发送的第二合并请求,并拦截所述第二合并请求;所述第一服务节点对所述第二合并请求进行拆分,得到至少两条拆分访问请求,并调用所述拆分访问请求对应方法。10.一种批量化处理装置,其特征在于,应用于第一服务节点,所述装置包括:接收模块,用于接收至少两条访问请求,所述至少两条访问请求基于至少两个客户端触发;分组模块,用于基于所述至少两条访问请求中各访问请求的访问类型,对所述至少两条访问请求进行分组,得到至少一个请求集合,不同请求集合对应的访问类型不同;合并模块,用于对于所述至少一个请求集合中的各请求集合,将所述请求集合中的访问请求进行合并,得到第一合并请求;执行模块,用于执行所述第一合并请求对应的资源访问操作。11.一种电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9任一项所述批量化处理方法中的步骤。12.一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现权利要求1至9任一项所述批量化处理方法。

技术总结
本申请公开了一种批量化处理方法、装置、设备及存储介质,包括:第一服务节点接收至少两条访问请求,所述至少两条访问请求基于至少两个客户端触发;所述第一服务节点基于所述至少两条访问请求中各访问请求的访问类型,对所述至少两条访问请求进行分组,得到至少一个请求集合,不同请求集合对应的访问类型不同;对于所述至少一个请求集合中的各请求集合,所述第一服务节点将所述请求集合中的访问请求进行合并,得到第一合并请求;所述第一服务节点执行所述第一合并请求对应的资源访问操作,提高分布式系统内网络资源和计算资源的资源利用率。用率。用率。


技术研发人员:丁明 汪胜 操新星
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2022.01.06
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐