交易请求发送方法及装置与流程

文档序号:29119756发布日期:2022-03-04 21:37阅读:76来源:国知局
交易请求发送方法及装置与流程

1.本发明涉及移动互联技术领域,尤其涉及交易请求发送方法及装置。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.http/2协议是一种新型的协议,netty是一个基于java nio的客户端、服务器端的开源编程框架,其中提供了http/2协议的支持。但是其仅仅提供了报文封装层面的支持。例如,对于一个字符串文本或二进制文本,netty提供了把这个文本封装为http/2协议的实现,所实现的http/2协议也仅仅是一个串行的协议,无法充分利用http/2协议的并行特点。也即只能将封装成http/2协议的交易请求串行发送,无法应对交易请求高并发场景的需求,基于http/2协议的交易请求发送效率低。


技术实现要素:

4.本发明实施例提供一种交易请求发送方法,用以并行发送基于http/2协议的交易请求,且优先吞吐量较大的链路进行发送,提高交易请求的发送效率,该方法包括:
5.将基于http/2协议的客户端程序运行在多个线程上,在每一线程上建立一条链路;
6.从所述多个线程分别对应的链路中确定出没有发送交易请求且吞吐量大于预设阈值的第一链路;
7.利用所述第一链路向服务器发送交易请求;其中,所述交易请求为基于http/2协议的交易请求。
8.本发明实施例还提供一种交易请求发送装置,用以并行发送基于http/2协议的交易请求,且优先吞吐量较大的链路进行发送,提高交易请求的发送效率,该装置包括:
9.链路建立模块,用于将基于http/2协议的客户端程序运行在多个线程上,在每一线程上建立一条链路;
10.第一处理模块,用于从所述多个线程分别对应的链路中确定出没有发送交易请求且吞吐量大于预设阈值的第一链路;
11.发送模块,用于利用所述第一链路向服务器发送交易请求;其中,所述交易请求为基于http/2协议的交易请求。
12.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述交易请求发送方法。
13.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述交易请求发送方法。
14.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程
序,所述计算机程序被处理器执行时实现上述交易请求发送方法。
15.本发明实施例中,将基于http/2协议的客户端程序运行在多个线程上,在每一线程上建立一条链路;从所述多个线程分别对应的链路中确定出没有发送交易请求且吞吐量大于预设阈值的第一链路;利用所述第一链路向服务器发送交易请求;其中,所述交易请求为基于http/2协议的交易请求。这样,存在多条链路,在一条链路发送交易请求的同时,其它未发送交易请求的链路也可以发送交易请求,适用于交易请求高并发的场景,且优先使用吞吐量较大的链路进行发送,提高交易请求的发送效率。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
17.图1为本发明实施例中提供的一种交易请求发送方法的流程图;
18.图2为本发明实施例中提供的一种从所述多个线程分别对应的链路中确定出没有发送交易请求且吞吐量大于预设阈值的第一链路的方法流程图;
19.图3为本发明实施例中提供的一种利用所述第一链路向服务器发送交易请求的方法流程图;
20.图4为本发明实施例中提供的一种交易请求发送装置的示意图;
21.图5为本发明实施例中提供的一种计算机设备的示意图。
具体实施方式
22.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
23.本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
24.在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本技术的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
25.经研究发现,http/2协议是一种新型的协议,netty是一个基于java nio的客户端、服务器端的开源编程框架,其中提供了http/2协议的支持。但是其仅仅提供了报文封装层面的支持。例如,对于一个字符串文本或二进制文本,netty提供了把这个文本封装为
http/2协议的实现,所实现的http/2协议也仅仅是一个串行的协议,无法充分利用http/2协议的并行特点。也即只能将封装成http/2协议的交易请求串行发送,无法应对交易请求高并发场景的需求,基于http/2协议的交易请求发送效率低。
26.针对上述研究,本发明实施例提供一种交易请求发送方法,如图1所示,包括:
27.s101:将基于http/2协议的客户端程序运行在多个线程上,在每一线程上建立一条链路;
28.s102:从所述多个线程分别对应的链路中确定出没有发送交易请求且吞吐量大于预设阈值的第一链路;
29.s103:利用所述第一链路向服务器发送交易请求;其中,所述交易请求为基于http/2协议的交易请求。
30.本发明实施例中,将基于http/2协议的客户端程序运行在多个线程上,在每一线程上建立一条链路;从所述多个线程分别对应的链路中确定出没有发送交易请求且吞吐量大于预设阈值的第一链路;利用所述第一链路向服务器发送交易请求;其中,所述交易请求为基于http/2协议的交易请求。这样,存在多条链路,在一条链路发送交易请求的同时,其它未发送交易请求的链路也可以发送交易请求,适用于交易请求高并发的场景,且优先使用吞吐量较大的链路进行发送,提高交易请求的发送效率。
31.下面对上述s101~s103加以详细说明。
32.针对上述s101,将基于http/2协议的客户端程序运行在多个线程上,在每一线程上建立一条链路,这样,就建立了多链路。
33.其中,链路用于基于http/2协议的客户端向服务器发送交易请求。
34.针对上述s102,每个线程上的链路都可以发送交易请求,但是为了确保交易请求发送的完整性,针对同一链路,在将当前交易请求发送完成后,才可以发送下一交易请求,因此在为要发送的交易请求确定发送的链路时,需要从多条链路中选择出没有正在发送交易请求的链路,且为了提高发送效率,可以优先选用吞吐量大的链路进行发送。
35.如图2所示,为本发明实施例提供的一种从所述多个线程分别对应的链路中确定出没有发送交易请求且吞吐量大于预设阈值的第一链路的方法流程图,包括:
36.s201:从所述多个线程分别对应的链路中确定出没有发送交易请求的第二链路。
37.此处,在每个链路接收到发送交易请求的命令时会将该链路的状态标记为正在发送交易请求,在将交易请求发送完毕之后,会将该链路的状态标记为没有发送交易请求,根据多个线程分别对应的链路中每一链路的状态,从所述多个线程分别对应的链路中确定出没有发送交易请求的第二链路。
38.s202:利用第二链路向服务器发送探测包,接收服务器根据所述探测包反馈的第一反馈信息。
39.s203:根据所述探测包中包含的数据量、以及每一第二链路从发射探测报到接收到反馈信息的时长,得到每一第二链路分别对应的吞吐量。
40.示例性的,探测包中的数据量为100m,第二链路从发送该探测包到接收到反馈信息的时长为1秒,则该第二链路的吞吐量为100m每秒。
41.s204:从第二链路中确定出吞吐量大于预设阈值的第一链路。
42.此处,预设阈值例如包括:预设吞吐量;其中预设吞吐量可以根据历史发送交易请
求的达标吞吐量确定,也可以实时基于当前第二链路的吞吐量的排序确定。
43.例如,历史发送交易请求时,吞吐量达到100m每秒时,发送交易请求的效率就可以满足需求,则可以确定预设吞吐量为100m每秒。或者,在计算得到每一第二链路的吞吐量之后,想选取吞吐量排序前三的第二链路(降序排序),则将排序第四的第二链路的吞吐量确定为预设阈值。
44.针对上述s103,交易请求为基于http/2协议的交易请求,如图3所示,为本发明实施例提供的一种利用所述第一链路向服务器发送交易请求的方法流程图,包括:
45.s301:将所述第一链路的状态标记为正在发送交易请求,根据所述第一链路每次发送的数据量、以及待发送交易请求中包含的数据量,得到第一链路发送交易请求的预计发送次数。
46.示例性的,交易请求中包含的数据量为100m,第一链路每次发送的数据量为1m,则得到预计发送次数为100次。
47.s302:在所述第一链路对交易请求的发送次数等于所述预计发送次数时,将所述第一链路的状态标记为没有发送交易请求。
48.这样,可以确保链路在完全发送完一个交易请求后,再参与发送其它交易请求的选拔,使得在利用多个链路发送交易请求时也能保证同一条链路上交易请求发送的完整性。
49.此外,本发明另一实施例中,每隔第一预设时长,利用没有发送交易请求的第二链路发送探测包,针对无法在第二预设时长内接收到服务器反馈的第二反馈信息的第二链路,在该第二链路对应的线程上重新建立一个新链路;针对正在发送交易请求的第三链路,在发送交易请求后的第二预设时长内没有接收到服务器反馈的第三反馈信息后,在该第三链路对应的线程上重新建立一个新链路,并利用新链路重新发送最近一次发送的交易请求。
50.这样,可以实时对每一链路进行监测,针对没有正在发送交易请求的链路,可以监测到该链路是否处于连通状态,能否被选择发送交易请求,在发现链路存在问题时能及时在该链路对应的线程上建立新的链路。针对正在发送交易请求的链路,通过对该链路的监测可以判断链路有没有成功的把交易请求发送至服务器,若发现链路存在问题,代表交易请求没有发送成功,在该链路对应的线程上建立新的链路,利用新的链路将发送失败的交易请求重新发送。提高了交易请求发送的成功率。
51.另外,在将交易请求发送给服务器后,还需要接收服务器对交易请求的响应数据,若一条链路在发送交易请求后,一直等待服务器返回响应数据后才发送其它交易请求,也会导致交易请求的发送效率低。
52.因此,本发明另一实施例中,交易请求中还包括:交易标识;利用所述第一链路向服务器发送要发送的交易请求之后,利用空闲的链路接收服务器根据交易请求返回的响应数据;其中,响应数据中包含交易请求对应的交易标识;其中,空闲链路包括当前没有发送交易请求的链路;根据响应数据中携带的交易标识确定响应数据对应的交易请求,将响应数据发送给发起交易请求的用户。
53.这样,在发送交易数据的时候交易数据中携带交易标识,每一链路在将交易请求发送出去之后,无需等待该交易请求的响应数据,可以直接去发送其它交易数据,该交易数
据对应的响应数据返回来时,可以直接利用此时空闲的任一链路接收该响应数据,根据响应数据中的交易标识确定其对应的交易数据即可,提高了交易请求的发送效率。
54.此处,基于http/2协议的响应数据一般较为繁琐无序,因此例如可以采用下述方法将响应数据发送给发起对应交易请求的用户:从响应数据中提取返回码、以及返回信息,将返回码、返回信息封装在一起发送给发起对应交易请求的用户。
55.这样,用户可以直观的得到返回结果和返回信息,提升用户体验度。
56.本发明实施例中还提供了一种交易请求发送装置,如下面的实施例所述。由于该装置解决问题的原理与交易请求发送方法相似,因此该装置的实施可以参见交易请求发送方法的实施,重复之处不再赘述。
57.如图4所示,为本发明实施例提供的一种交易请求发送装置的示意图,包括:链路建立模块401、第一处理模块402、以及发送模块403;其中,
58.链路建立模块401,用于将基于http/2协议的客户端程序运行在多个线程上,在每一线程上建立一条链路;
59.第一处理模块402,用于从所述多个线程分别对应的链路中确定出没有发送交易请求且吞吐量大于预设阈值的第一链路;
60.发送模块403,用于利用所述第一链路向服务器发送交易请求;其中,所述交易请求为基于http/2协议的交易请求。
61.在一种可能的实施方式中,第一处理模块,具体用于从所述多个线程分别对应的链路中确定出没有发送交易请求的第二链路;利用第二链路向服务器发送探测包,接收服务器根据所述探测包反馈的第一反馈信息;根据所述探测包中包含的数据量、以及每一第二链路从发射探测包到接收到反馈信息的时长,得到每一第二链路分别对应的吞吐量;从第二链路中确定出吞吐量大于预设阈值的第一链路。
62.在一种可能的实施方式中,发送模块,具体用于将所述第一链路的状态标记为正在发送交易请求,根据所述第一链路每次发送的数据量、以及待发送交易请求中包含的数据量,得到第一链路发送交易请求的预计发送次数;在所述第一链路对交易请求的发送次数等于所述预计发送次数时,将所述第一链路的状态标记为没有发送交易请求。
63.在一种可能的实施方式中,还包括:监测模块,用于每隔第一预设时长,利用没有发送交易请求的第二链路发送探测包,针对无法在第二预设时长内接收到服务器反馈的第二反馈信息的第二链路,在该第二链路对应的线程上重新建立一个新链路;针对正在发送交易请求的第三链路,在发送交易请求后的第二预设时长内没有接收到服务器反馈的第三反馈信息后,在该第三链路对应的线程上重新建立一个新链路,并利用新链路重新发送最近一次发送的交易请求。
64.在一种可能的实施方式中,交易请求中还包括:交易标识;所述装置还包括:第二处理模块,用于利用空闲的链路接收服务器根据交易请求返回的响应数据;其中,响应数据中包含交易请求对应的交易标识;其中,空闲链路包括当前没有发送交易请求的链路;根据响应数据中携带的交易标识确定响应数据对应的交易请求,将响应数据发送给发起交易请求的用户。
65.在一种可能的实施方式中,第二处理模块,具体用于从响应数据中提取返回码、以及返回信息,将返回码、返回信息封装在一起发送给发起对应交易请求的用户。
66.基于前述发明构思,如图5所示,本发明还提出了一种计算机设备500,包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序530,所述处理器520执行所述计算机程序530时实现前述交易请求发送方法。
67.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述交易请求发送方法的计算机程序。
68.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述交易请求发送方法。
69.本发明实施例中,将基于http/2协议的客户端程序运行在多个线程上,在每一线程上建立一条链路;从所述多个线程分别对应的链路中确定出没有发送交易请求且吞吐量大于预设阈值的第一链路;利用所述第一链路向服务器发送交易请求;其中,所述交易请求为基于http/2协议的交易请求。这样,存在多条链路,在一条链路发送交易请求的同时,其它未发送交易请求的链路也可以发送交易请求,适用于交易请求高并发的场景,且优先使用吞吐量较大的链路进行发送,提高交易请求的发送效率。
70.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
71.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
72.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
73.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
74.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1