CN109254854A - 异步调用方法、计算机装置及存储介质 - Google Patents
异步调用方法、计算机装置及存储介质 Download PDFInfo
- Publication number
- CN109254854A CN109254854A CN201810929436.7A CN201810929436A CN109254854A CN 109254854 A CN109254854 A CN 109254854A CN 201810929436 A CN201810929436 A CN 201810929436A CN 109254854 A CN109254854 A CN 109254854A
- Authority
- CN
- China
- Prior art keywords
- client
- request
- server
- data
- asynchronous
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000009434 installation Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000004044 response Effects 0.000 claims abstract description 43
- 230000006870 function Effects 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/549—Remote execution
Abstract
本发明提供一种异步调用方法,所述方法包括:接收来自客户端的HTTP请求;所述HTTP请求为向指定的资源提交数据,其中,所述HTTP请求携带有所述客户端录入的数据;基于所述HTTP请求保存所述客户端录入的数据;基于所述HTTP请求生成异步调用请求;发送所述异步调用请求至服务端以请求所述服务端保存所述客户端录入的数据;向所述客户端返回应答消息;其中,所述应答消息包括向客户端返回表征所述客户端请求已得到处理的信息,以使得所述客户端能够进行下一步操作。本发明还公开了一种计算机装置和计算机可读存储介质。本发明在调用不同关联数据库时通过采用异步调用替代同步调用,可缩短客户端等待时间,提升客户体验度。
Description
技术领域
本发明涉及信息管理技术领域,尤其涉及一种异步调用方法、计算机装置及存储介质。
背景技术
现有的异步调用多数依赖数据库,对数据的存储和查询的效率和灵活度都不够。特别是对于多维的客户信息,管理起来更加复杂,存储与查询的实现逻辑也更加复杂,导致存储的查询的效率更加地下。例如,保险行业中,保险代理人及客户信息与市面上其他系统信息相比多了一个代理人维度,管理起来更加复杂,且需要对保险客户信息进行数据分析时时效慢。此外,现有的以数据库为主的异步调用,数据存在数据库中无法灵活的运用标记、分析等场景,数据的利用率不高。
发明内容
鉴于以上内容,有必要提供一种异步调用方法、计算机装置及存储介质,能够快速定位客户的完整信息,使得存储及查询客户信息的效率提升。
本发明提供一种异步调用方法,所述方法包括:
接收客户端请求,所述客户端请求为HTTP请求,用于请求提交所述客户端录入的数据;
基于客户端请求保存所述客户端录入的数据;
配置异步调用客户端,通过该异步调用客户端生成异步调用请求,及发送该异步调用请求至服务端,所述异步调用请求用于请求所述服务端保存所述客户端录入的数据;
在所述异步调用请求发送后,响应所述客户端请求,其中响应所述客户端请求包括向客户端返回表征所述客户端请求已得到处理的信息,以使得所述客户端能够进行下一步操作。
在本发明优选实施中,其中,表征所述客户端请求已得到处理的信息包括代表“OK”的应答状态码。
在本发明优选实施中,所述方法还包括:
所述异步调用客户端为Apache HTTPAsyncClient,所述异步调用请求通过线程发送。
在本发明优选实施中,所述异步调用客户端为基于netty架构的客户端。
在本发明优选实施中,所述创建异步调用客户端包括:
创建客户端Bootstrap实例,其中所述bootstrap包括ChannelFactory和PipelineFactory两个类,ChannelFactory用于创建通道Channel,PipelineFactory用于创建channel的管道Channelpipeline,每个通道Channel对应一个管道ChannelPipeline,每一管道ChannelPipeline中设置有一个或多个处理类ChannelHandler,所述处理类ChannelHandler用于对读取数据进行处理;
设置线程池,所述线程池包括两种:一个为Boss线程池,一个为Worker线程池,其中Boss线程用于处理连接请求,Worker线程用于处理具体的IO事件。
在本发明优选实施中,其中所述生成异步调用请求,并发送至所述服务端包括:
boss线程监听到有异步调用需要进行处理时,尝试与所述服务端建立连接;
在连接成功时,选择一个worker线程,并绑定一个通道Channel,调用管道ChannelPipeline内的处理类来对数据进行处理以生成异步调用请求;
调用管道ChannelPipeline内的处理类发送所述异步调用请求至所述服务端。
在本发明优选实施中,发送所述异步调用请求后,所述方法还包括:
监听服务端的应答信息;
接收到所述服务端的应答信息时,回调所述worker线程,以调用管道ChannelPipeline内的处理类来处理该应答消息。
在本发明优选实施中,所述异步调用请求包括请求调用的请求对象、资源地址URL、数据。
本发明还提供一种计算机装置,所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现任意实施例中所述的异步调用方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现任意实施例中所述的异步调用方法。
由以上技术方案看出,本发明通过采用异步调用替代同步调用,可缩短客户端等待时间,提升客户体验度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是实现本发明的异步调用方法的实施例的应用环境图。
图2是本发明实施例提供的异步调用方法的流程图。
图3是本发明另一实施例提供的异步调用方法的流程图。
图4是本发明实施例提供的异步调用装置的功能模块图。
图5是本发明实现异步调用方法的较佳实施例的计算机装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
如图1所示,是实现本发明的异步调用方法的较佳实施例的应用环境图。所述异步调用方法应用于计算机装置,所述计算机装置1为一种业务系统,与客户端2通信连接,可以响应所述客户端2的HTTP请求而执行业务处理。所述服务端3为一种与所述计算机装置1相关联的业务系统,其可被所述计算机装置1调用而执行相应的业务。具体地,所述计算机装置1接收来自所述客户端2的HTTP请求,基于该HTTP请求进行业务处理后,再提交相应的HTTP请求至所述服务端3以使得所述服务端3执行相应的业务,所述服务端3执行完成相应的业务后回复调用结果至所述计算机装置1。在本发明实施例中,在所述计算机装置1的业务处理完成后,不管所述服务端3是否回复调用结果,即可继续处理下一业务。
在一实例中,以代理人录入客户信息为例,所述计算机装置1(第一业务系统)为销售系统,所述服务端3(第二业务系统)为客户中心。代理人在所述客户端2录入完客户信息,点击下一步时,向所述计算机装置1发起一个HTTP请求提交在所述客户端2录入的客户信息。所述计算机装置1需要将数据保存到数据库(执行第一业务系统的业务),并将数据推送给所述服务端3以将客户信息同步保存至所述服务端3(第二业务系统,客户中心)。在所述计算机装置1将数据推送至所述服务端3后,不管所述服务端3的业务是否处理完毕,即可响应由所述客户端2发起的HTTP请求。所述客户端2收到所述计算机装置1的响应后跳转到下一页面。从而在所述客户端2不用等待所述服务端3的业务处理过程所耗费的时间。
如图2所示,为本发明实施例提供的一种异步调用方法的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
步骤20,接收来自客户端的HTTP请求;所述HTTP请求为向指定的资源提交数据,其中,所述HTTP请求携带有所述客户端录入的数据。
通常,客户通过客户端2的界面发出HTTP请求。所述HTTP请求可包括从指定的资源请求数据或提交数据等,例如GET请求、POST请求。GET请求用于从指定的资源请求数据,POST请求用于向指定的资源提交要被处理的数据。在本实施例中,所述HTTP请求为向指定的资源提交数据,例如POST请求。在一实例中,代理人可通过客户端录入客户资料,所述客户端2即向所述计算机装置1发出一个POST请求以请求提交所述客户端录入的客户信息。
步骤21,基于所述HTTP请求保存所述客户端录入的数据。
所述计算机装置1基于该客户端2的请求进行相应业务处理。具体地,若所述请求为从指定的资源请求数据,则所述计算机装置1基于该请求返回指定的数据至所述客户端2;若所述请求为向指定的资源提交数据,则所述计算机装置1基于该请求将该数据保存在所述计算机装置1的存储器中。例如上述实例中,所述计算机装置1将所述客户资料保存在所述计算机装置1的存储器中。
步骤22,基于所述HTTP请求生成异步调用请求
在一些实例中,客户端提交的数据需要同步保存到一个或多个相互关联的系统中,则所述计算机装置1需要基于该客户端2提交的数据调用一个或多个相互关联的系统来保存在客户端2提交的数据。例如,在上述实例中,所述计算机装置1(销售系统)与所述服务端3(客户中心)为相互关联的业务系统,所述客户端2提交的客户信息需要保存在所述计算机装置1及所述服务端3中。所述计算机装置1在将所述客户端2提交的客户信息保存在所述计算机装置1的存储器中后,需要调用所述服务端3来保存该客户端2提交的客户信息至所述服务端3的存储器中。在本实施例中,所述计算机装置1基于所述HTTP请求生成异步调用请求。所述异步调用请求为基于HTTP协议的HTTP请求,所述异步调用请求包括请求调用的请求对象(例如HTTPClient的GET、POST等请求对象)、资源地址(URL)、交互数据(DATA)等。其中数据DATA即为请求交互的数据(例如上述实例中的客户资料)。例如向服务端发送异步调用请求,请求服务端保存客户资料,则需要保存的客户资料作为数据DATA,调用POST请求对象,将服务端URL及DATA都作为POST请求对象的参数封装在POST请求对象中即构成该异步调用请求。
步骤23,发送所述异步调用请求至服务端以请求所述服务端保存所述客户端录入的数据。
将该异步调用请求发送至所述服务端3以调用所述服务端3来保存该客户端2提交的客户信息至所述服务端3的存储器中。其中,生成及发送异步调用请求具体请参阅图3所示的流程。
步骤24,向所述客户端返回应答消息;其中,所述应答消息包括向客户端返回表征所述客户端请求已得到处理的信息,以使得所述客户端能够进行下一步操作。
在所述计算机装置1发出所述异步调用请求后,无需等待所述服务端3返回的调用结果,即可响应所述客户端2的HTTP请求,以通知所述客户端2所述计算机装置1的业务已经处理完毕,使得所述客户端2可以进行下一步操作。其中响应客户端请求包括向所述客户端返回应答消息,所述应答消息包括向客户端返回表征所述客户端请求已得到处理的信息,例如向客户端返回代表“OK”的应答状态码。在一些实施例中,如客户端请求返回数据,则所述计算机装置1向客户端应答还包括向客户端发送数据,所述数据可包括头信息及用户所请求的实际数据。
在同步调用方式下,所述计算机装置1在接收客户端请求后,基于所述客户端2请求执行业务,然后再创建同步客户端HTTPClient,然后根据需要创建请求对象(例如HTTPGET请求对象、HTTP POST请求对象等),将服务端URL、交互数据(例如客户资料)作为请求对象的参数封装成HTTP请求,然后调用HTTPClient的execute方法发送该HTTP请求至所述服务端3。所述服务端3基于该HTTP请求执行相应业务(例如保存该客户资料在客户中心),然后返回响应内容HTTPResponse。所述计算机装置1在接收到所述服务端3返回的响应内容后再响应所述客户端请求。因此,相较于本申请的异步调用方法,所述客户端2需要多等待所述HTTP请求从所述计算机装置1发送至所述服务端3的时长、所述服务端3基于该HTTP请求执行相应业务的时长及所述服务端3返回响应内容至所述计算机装置1的时长。如此,采用本申请的异步调用方法,可以减少客户端的等待时间,提升客户端的体验度。
请参阅图3所示,为本发明实施例提供的一种异步调用方法的流程图。
步骤30,创建异步调用客户端。
在本实施例中,所述异步调用客户端为异步HTTP客户端(HTTPclient)。所述异步HTTP客户端可为任意适宜的异步客户端,例如Apache HTTPAsyncClient、基于netty架构的HTTP客户端等。所述异步调用客户端用于向所述服务端3发出异步调用请求,请求所述服务端3处理指定业务。所述异步调用请求为基于HTTP协议的请求,采用符合HTTP协议的请求封包格式。其中,对于Apache HTTPAsyncClient,其封包调用请求的方法流程与同步调用请求的类似,同样通过GET、POST等请求对象发起调用请求,其中设置的参数及请求的资源URL等都封装在调用请求中,区别在于发送该调用请求的方法不同,同步调用是直接发出该请求,而异步调用是将调用请求放在线程中进行执行,在线程中将该调用请求发送出去后,该线程处于等待回复状态,当服务端回复时,通过回调线程中的处理类(AsyncHTTPResponseHandler)来进行处理。
如下以基于netty架构的HTTP客户端为例进行说明创建异步调用客户端的方法流程。具体地,创建异步调用客户端包括:设置客户端实例ClientBootstrap,所述ClientBootstrap包括两个类,其中一个为ChannelFactory,用于创建通道Channel,通道Channel是一个类似链接,统一了tcp、udp、Nio、Oio等网络接口的访问方式。通道Channel是一个资源的容器,包含了一个连接涉及到的所有资源;ClientBootstrap可以创建多个通道Channel。另一个为PipelineFactory,用于创建channel的管道Channelpipeline。ClientBootstrap会为每个通道Channel生成一个管道ChannelPipeline。管道ChannelPipeline的作用就是处理通道Channel上的数据。管道ChannelPipeline中可根据需要添加一个或多个处理类ChannelHandler,所述处理类ChannelHandler用于对读取数据进行业务操作。
为了管理调用异步请求客户端的Channel,创建异步调用客户端还包括设置线程池。所述线程池包括两种线程池,一个为Boss线程池,一个为Worker线程池,其中Boss线程用于处理连接请求,Worker用于处理具体的IO事件。boss线程监听到有异步调用需要进行处理时,将通道channel设置到work线程中,后续就可以基于这个通道channel监听事件。
步骤31,通过异步调用客户端生成异步调用请求,并发送至服务端
以基于Netty的HTTPClient为例,生成及发送异步调用请求可包括如下步骤:
boss线程监听到有异步调用事件需要进行处理时,先尝试与所述服务端3建立连接;
在连接成功时,选择一个worker线程,并绑定一个Channel,调用管道(ChannelPipeline)内的处理类来对异步调用事件进行处理以生成异步调用请求。所述处理包括对异步调用相关数据进行解析、编码(例如二进制编码)、封装成异步调用请求。封装后的异步调用请求通过调用处理类中的channel.writeAndFlush方法发送至服务端。其中,调用write方法是将数据写到缓冲区(一个单向链表的数据结构)中,调用flush方法是将缓冲区中的数据写入至socket的输出缓冲区中发送出去。
为了对所述服务端3的处理回复进行监听,所述异步调用请求发送后还包括:
监听所述服务端的应答信息。
具体地,所述异步调用请求发送后会返回一个ChannelFuture对象。这个ChannelFuture对象中添加一个Listener等待回调。所述listener用于监听服务端的应答消息。
接收到所述服务端的应答消息后回调所述worker线程,调用所述通道中的处理类处理所述应答消息。
等得到服务端的应答消息后回调所述worker线程,调用所述通道Channel中的相应的处理类handler将从socket输入至Pipeline中的数据一步步解析成HTTPResponse对象,然后再调用相应handler来处理这个应答消息response。
在一实例中,所述异步调用客户端调用管道(ChannelPipeline)内的处理类将客户资料进行解析编码后作为Post方法的参数封装在Post对象中,作为异步调用请求,调用处理类中的channel.writeAndFlush方法发送至服务端,所述异步调用请求发送出去后,所述异步调用客户端返回ChannelFure对象,所述ChannelFuture对象中的Listener监听服务端的应答消息,当接收到服务端的应答消息后,回调所述Worker线程,并调用所述线程中的处理类来处理应答消息。所述应答消息包括表征所述服务端的业务已处理完毕的代码,例如代表OK的数字代码“200”等。在一些实施例中,若服务端的业务处理失败,可能返回代表不同错误类型的数字代码,例如500表示服务器内部错误。
如图4所示,为本发明实施例提供的异步调用装置的功能模块图。所述异步调用装置包括接收模块100、处理模块120、异步调用模块130及响应模块140。本发明所称的模块是指一种能够被计算机装置的处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在计算机装置的存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
所述接收模块100用于接收来自客户端的HTTP请求;所述HTTP请求为向指定的资源提交数据,其中,所述HTTP请求携带有所述客户端录入的数据。
通常,客户通过客户端2的界面发出HTTP请求。所述HTTP请求可包括从指定的资源请求数据或提交数据等,例如GET请求、POST请求。GET请求用于从指定的资源请求数据,POST请求用于向指定的资源提交要被处理的数据。在本实施例中,所述HTTP请求为向指定的资源提交数据,例如POST请求。在一实例中,代理人可通过客户端录入客户资料,所述客户端2即向所述计算机装置1发出一个POST请求以请求提交所述客户端录入的客户信息。
所述处理模块120用于基于该请求进行相应业务处理。例如上述实例中,所述计算机装置1将所述客户资料保存在数据库中。
所述异步调用模块130用于创建异步调用请求发送至所述服务端3,以使得所述服务端3执行指定业务。
在一些实例中,客户端提交的数据需要同步保存到一个或多个相互关联的系统中,则所述计算机装置1需要基于该客户端2提交的数据调用一个或多个相互关联的系统来保存在客户端2提交的数据。例如,在上述实例中,所述计算机装置1(销售系统)与所述服务端3(客户中心)为相互关联的业务系统,所述客户端2提交的客户信息需要保存在所述计算机装置1及所述服务端3中。所述计算机装置1在将所述客户端2提交的客户信息保存在所述计算机装置1的存储器中后,需要调用所述服务端3来保存该客户端2提交的客户信息至所述服务端3的存储器中。在本实施例中,所述计算机装置1基于所述HTTP请求生成异步调用请求。所述异步调用请求为基于HTTP协议的HTTP请求,所述异步调用请求包括请求调用的请求对象(例如HTTPClient的GET、POST等请求对象)、资源地址(URL)、交互数据(DATA)等。其中数据DATA即为请求交互的数据(例如上述实例中的客户资料)。例如向服务端发送异步调用请求,请求服务端保存客户资料,则需要保存的客户资料作为数据DATA,调用POST请求对象,将服务端URL及DATA都作为POST请求对象的参数封装在POST请求对象中即构成该异步调用请求。
生成异步调用请求后,将该异步调用请求发送至所述服务端3以调用所述服务端3来保存该客户端2提交的客户信息至所述服务端3的存储器中。其中,生成及发送异步调用请求具体请参阅图3所示的流程。
所述响应模块140用于向所述客户端返回应答消息;其中,所述应答消息包括向客户端返回表征所述客户端请求已得到处理的信息,以使得所述客户端能够进行下一步操作。
在所述计算机装置1发出所述异步调用请求后,无需等待所述服务端3返回的调用结果,即可响应所述客户端2的HTTP请求,以通知所述客户端2所述计算机装置1的业务已经处理完毕,使得所述客户端2可以进行下一步操作。其中响应客户端请求包括向所述客户端返回应答消息,所述应答消息包括向客户端返回表征所述客户端请求已得到处理的信息,例如向客户端返回代表“OK”的应答状态码。在一些实施例中,如客户端请求返回数据,则所述计算机装置1向客户端应答还包括向客户端发送数据,所述数据可包括头信息及用户所请求的实际数据。
本发明提供的异步调用装置通过异步调用请求调用服务端的业务,不需要等待服务端的业务处理结果即可响应客户端请求,可以提升对客户端的响应效率,减少客户端的等待时间,提升客户体验度。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述异步调用方法的部分步骤。
如图5所示,图5是本发明实现异步调用方法的较佳实施例的计算机装置的结构示意图。所述计算机装置1包括至少一个发送装置11、至少一个存储器12、至少一个处理器13、至少一个接收装置14以及至少一个通信总线。其中,所述通信总线用于实现这些组件之间的连接通信。
所述计算机装置1是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。所述计算机装置1还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
所述计算机装置1可以是,但不限于任何一种数据处理能力的电子产品,例如,桌上型计算机、笔记本电脑、服务器等。
所述计算机装置1所处的网络包括,但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
其中,所述接收装置14和所述发送装置11可以是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他设备进行数据通信。
所述存储器12用于存储程序代码。所述存储器12可以是集成电路中没有实物形式的具有存储功能的电路,如RAM(Random-Access Memory,随机存取存储器)、FIFO(First InFirst Out,)等。或者,所述存储器12也可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)、智能媒体卡(smart media card)、安全数字卡(secure digitalcard)、快闪存储器卡(flash card)等储存设备等等。
所述处理器13可以包括一个或者多个微处理器、数字处理器。所述处理器13可调用存储器12中存储的程序代码以执行相关的功能。例如,图4中所述的各个单元是存储在所述存储器12中的程序代码,并由所述处理器13所执行,以实现一种异步调用方法。所述处理器13又称中央处理器(CPU,Central Processing Unit),是一块超大规模的集成电路,是运算核心(Core)和控制核心(Control Unit)。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种异步调用方法,其特征在于,所述方法包括:
接收来自客户端的HTTP请求;所述HTTP请求为向指定的资源提交数据,其中,所述HTTP请求携带有所述客户端录入的数据;
基于所述HTTP请求保存所述客户端录入的数据;
基于所述HTTP请求生成异步调用请求;
发送所述异步调用请求至服务端以请求所述服务端保存所述客户端录入的数据;
向所述客户端返回应答消息;其中,所述应答消息包括向客户端返回表征所述客户端请求已得到处理的信息,以使得所述客户端能够进行下一步操作。
2.如权利要求1所述的方法,其特征在于,其中,表征所述客户端请求已得到处理的信息包括代表“OK”的应答状态码。
3.如权利要求1所述的方法,其特征在于,其中,所述基于所述HTTP请求生成异步调用请求;发送所述异步调用请求至服务端以请求所述服务端保存所述客户端录入的数据包括:
创建异步调用客户端;
通过异步调用客户端生成异步调用请求,并发送至服务端。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
所述异步调用客户端为Apache HTTPAsyncClient,所述异步调用请求通过线程发送。
5.如权利要求3所述的方法,其特征在于,所述异步调用客户端为基于netty架构的客户端,所述创建异步调用客户端包括:
创建客户端Bootstrap实例,其中所述bootstrap包括ChannelFactory和PipelineFactory两个类,ChannelFactory用于创建通道Channel,PipelineFactory用于创建channel的管道Channelpipeline,每个通道Channel对应一个管道ChannelPipeline,每一管道ChannelPipeline中设置有一个或多个处理类ChannelHandler,所述处理类ChannelHandler用于对读取数据进行处理;
设置线程池,所述线程池包括两种:一个为Boss线程池,一个为Worker线程池,其中Boss线程用于处理连接请求,Worker线程用于处理具体的IO事件。
6.如权利要求5所述的方法,其特征在于,其中所述生成异步调用请求,并发送至所述服务端包括:
boss线程监听到有异步调用需要进行处理时,尝试与所述服务端建立连接;
在连接成功时,选择一个worker线程,并绑定一个通道Channel,调用管道ChannelPipeline内的处理类来对数据进行处理以生成异步调用请求;
调用管道ChannelPipeline内的处理类发送所述异步调用请求至所述服务端。
7.如权利要求6所述的方法,其特征在于,发送所述异步调用请求后,所述方法还包括:
监听服务端的应答信息;
接收到所述服务端的应答信息时,回调所述worker线程,以调用管道ChannelPipeline内的处理类来处理该应答消息。
8.如权利要求1所述的方法,其特征在于,所述异步调用请求包括请求调用的请求对象、资源地址URL、数据。
9.一种计算机装置,其特征在于,所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现如权利要求1至8中任一项所述异步调用方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于:所述计算机指令被处理器执行时实现如权利要求1至8中任意一项所述异步调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810929436.7A CN109254854A (zh) | 2018-08-15 | 2018-08-15 | 异步调用方法、计算机装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810929436.7A CN109254854A (zh) | 2018-08-15 | 2018-08-15 | 异步调用方法、计算机装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109254854A true CN109254854A (zh) | 2019-01-22 |
Family
ID=65050152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810929436.7A Pending CN109254854A (zh) | 2018-08-15 | 2018-08-15 | 异步调用方法、计算机装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109254854A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535751A (zh) * | 2019-08-19 | 2019-12-03 | 深圳追一科技有限公司 | 一种消息响应方法、装置、计算机设备和存储介质 |
CN110851283A (zh) * | 2019-11-14 | 2020-02-28 | 百度在线网络技术(北京)有限公司 | 资源处理方法、装置以及电子设备 |
CN110995817A (zh) * | 2019-11-27 | 2020-04-10 | 广州华多网络科技有限公司 | 请求回调方法、装置及客户端设备 |
CN111522605A (zh) * | 2020-04-16 | 2020-08-11 | 艾普阳科技(深圳)有限公司 | 一种本地过程调用方法、装置、设备及介质 |
CN111552488A (zh) * | 2019-02-11 | 2020-08-18 | 福建省天奕网络科技有限公司 | H5跨引擎客户端数据自动化更新的方法、存储介质 |
CN112733001A (zh) * | 2021-01-14 | 2021-04-30 | 上海蓝云网络科技有限公司 | 获取订阅信息的方法、装置和电子设备 |
CN115208936A (zh) * | 2022-05-26 | 2022-10-18 | 锐凌无线有限责任公司 | 远程调用方法、系统、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120102109A1 (en) * | 2010-09-17 | 2012-04-26 | Oracle International Corporation | System and method for extending a web service environment to support scalable asynchronous clients |
CN103729451A (zh) * | 2013-12-31 | 2014-04-16 | 华为技术有限公司 | 一种数据库的信息录入方法、装置及系统 |
CN106874267A (zh) * | 2015-12-10 | 2017-06-20 | 航天信息股份有限公司 | 一种异步实现发票实时上传的方法 |
-
2018
- 2018-08-15 CN CN201810929436.7A patent/CN109254854A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120102109A1 (en) * | 2010-09-17 | 2012-04-26 | Oracle International Corporation | System and method for extending a web service environment to support scalable asynchronous clients |
CN103729451A (zh) * | 2013-12-31 | 2014-04-16 | 华为技术有限公司 | 一种数据库的信息录入方法、装置及系统 |
CN106874267A (zh) * | 2015-12-10 | 2017-06-20 | 航天信息股份有限公司 | 一种异步实现发票实时上传的方法 |
Non-Patent Citations (2)
Title |
---|
孙静 等著: "《电子商务技术基础》", vol. 1, 31 August 2017, 北京理工大学出版社, pages: 167 * |
龚鹏等: "基于Netty 框架的数据通讯服务系统的设计", no. 1, pages 46 - 49 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552488A (zh) * | 2019-02-11 | 2020-08-18 | 福建省天奕网络科技有限公司 | H5跨引擎客户端数据自动化更新的方法、存储介质 |
CN110535751A (zh) * | 2019-08-19 | 2019-12-03 | 深圳追一科技有限公司 | 一种消息响应方法、装置、计算机设备和存储介质 |
CN110851283A (zh) * | 2019-11-14 | 2020-02-28 | 百度在线网络技术(北京)有限公司 | 资源处理方法、装置以及电子设备 |
CN110995817A (zh) * | 2019-11-27 | 2020-04-10 | 广州华多网络科技有限公司 | 请求回调方法、装置及客户端设备 |
CN110995817B (zh) * | 2019-11-27 | 2022-05-20 | 广州华多网络科技有限公司 | 请求回调方法、装置及客户端设备 |
CN111522605A (zh) * | 2020-04-16 | 2020-08-11 | 艾普阳科技(深圳)有限公司 | 一种本地过程调用方法、装置、设备及介质 |
CN111522605B (zh) * | 2020-04-16 | 2022-07-29 | 艾普阳科技(深圳)有限公司 | 一种本地过程调用方法、装置、设备及介质 |
CN112733001A (zh) * | 2021-01-14 | 2021-04-30 | 上海蓝云网络科技有限公司 | 获取订阅信息的方法、装置和电子设备 |
CN112733001B (zh) * | 2021-01-14 | 2023-09-29 | 上海蓝云网络科技有限公司 | 获取订阅信息的方法、装置和电子设备 |
CN115208936A (zh) * | 2022-05-26 | 2022-10-18 | 锐凌无线有限责任公司 | 远程调用方法、系统、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254854A (zh) | 异步调用方法、计算机装置及存储介质 | |
CN107590001B (zh) | 负载均衡方法及装置、存储介质、电子设备 | |
CN108055343B (zh) | 用于机房的数据同步方法及装置 | |
US10075549B2 (en) | Optimizer module in high load client/server systems | |
CN112667414A (zh) | 基于消息队列的消息消费方法、装置、计算机设备及介质 | |
CN108108252B (zh) | 一种全局唯一id生成方法、系统及存储介质 | |
EP2044749B1 (en) | Dispatching request fragments from a response aggregating surrogate | |
TWI354475B (en) | Dispatching client requests to appropriate server- | |
CN109032796B (zh) | 一种数据处理方法和装置 | |
CN110781180B (zh) | 一种数据筛选方法和数据筛选装置 | |
JP5479709B2 (ja) | データを処理するためのサーバ‐プロセッサ・ハイブリッド・システムおよび方法 | |
CN113703997A (zh) | 集成多种消息代理的双向异步通信中间件系统及实现方法 | |
CN112612467A (zh) | 一种处理基于qiankun的微前端架构的方法和装置 | |
CN107517188A (zh) | 一种基于安卓系统的数据处理方法和装置 | |
CN107204998B (zh) | 处理数据的方法和装置 | |
US8938522B2 (en) | Tiered XML services in a content management system | |
US20210149709A1 (en) | Method and apparatus for processing transaction | |
CN113965628A (zh) | 消息调度方法、服务器和存储介质 | |
US9537931B2 (en) | Dynamic object oriented remote instantiation | |
CN112019689A (zh) | 来电秀业务处理系统及方法 | |
CN110022323A (zh) | 一种基于WebSocket与Redux的跨终端实时交互的方法和系统 | |
CN110768855B (zh) | 链路化性能测试的方法和装置 | |
CN113760482A (zh) | 一种任务处理方法、装置和系统 | |
CN112099841A (zh) | 一种生成配置文件的方法和系统 | |
CN112799797A (zh) | 一种任务管理的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |