一种服务间异步调用的方法及系统技术方案

技术编号:18404113 阅读:19 留言:0更新日期:2018-07-08 22:19
本发明专利技术公开了一种服务间异步调用的方法及系统,该服务间异步调用的方法包括:接收请求方发送的数据和被请求方的地址;将所接收的数据和请求方的地址保存到分布式消息队列中;依次解析所述分布式消息队列中的数据和请求方的地址;根据所解析的所述请求方的地址发起调;将解析得到的所述数据传入到所述被请求方。该服务间异步调用的方法,基于高可用的持久化队列系统作为存储介质,实现高可用的分布式中间系统,为服务间异步调用数据传输提供稳定高效的服务。

A method and system for asynchronous invocation between services

The invention discloses a method and system for asynchronous invocation between services. The method of asynchronous invocation between the services includes the data sent by the requestor and the address of the requested Party; the received data and the address of the requestor are saved to the distributed message queue, and the data in the distributed message queue is parsed in turn and the data is parsed in turn. The address of the requester; initiates the address according to the address of the requesting party; and imports the parsed data into the requesting party. The method of asynchronous invocation between the services is based on a highly available persistent queuing system as a storage medium to implement a highly available and distributed intermediate system, providing a stable and efficient service for asynchronous transfer of data between services.

【技术实现步骤摘要】
一种服务间异步调用的方法及系统
本专利技术涉及计算机网络
,特别涉及一种服务间异步调用的方法及系统。
技术介绍
在分布式系统中,不同的服务之间通过异步调用完成数据的传输,不对传输的结果进行确认。在一个分布式系统环境下,不同的服务之间需要进行业务数据的同步,且通常请求方/发起方不需要数据立即完成同步,而是排队后异步传输。目前存在两种主流的同步方式:1)实时的数据同步:即上游产生数据后,立即调用下游接口进行同步,阻塞等待同步完成;2)排队的数据同步:即上游产生数据后,将数据存储到MySQL或者redis中排队;编写一个脚本定时的获取MySQL/redis中的数据,调用下游接口进行同步,并阻塞等待同步完成。而上述现有技术的缺点包括如下方面:1)调用阻塞:调用下游接口采用了阻塞等待模式,无法并发处理;2)重复工作:每个业务方各自实现自己的排队同步机制,开发效率低;3)无容错机制:当下游服务响应变慢时,会导致上游处理进程大量阻塞,导致服务不可用;4)无保护机制:当出现业务峰值时,对下游的调用会随之增加,没有对下游进行限流/限并发的保护机制;5)可用性低:当MySQL/redis出现单点故障,整个系统将出现不可用问题。
技术实现思路
本专利技术提供了一种服务间异步调用的方法及系统,该方法为服务间异步调用提供简单接入、高性能、高可用的代理服务,解决了现有技术的调用出现阻塞、效率低的问题。本专利技术提供了一种服务间异步调用的方法,该方法包括:接收请求方发送的数据和被请求方的地址;将所接收的数据和请求方的地址保存到分布式消息队列中;依次解析所述分布式消息队列中的数据和请求方的地址,并根据所解析的所述请求方的地址发起调用,将解析得到的所述数据传入到所述被请求方。优选地,该方法还包括:在根据所解析的所述请求方的地址发起调用前,执行如下至少一者的操作:限流校验、限并发校验。优选地,将所述数据传入到被请求方包括:如果解析得到的所述数据发送到被请求方失败,则进行设定次数的重传。优选地,该方法还包括:在接收请求方发送的数据和被请求方的地址后,向所述请求方发送接收成功的应答。优选地,该方法还包括:在接收到请求方发送的数据和被请求方的地址后,进行权限的校验。本专利技术还提供一种服务间异步调用的系统,该系统包括:接收模块,用于接收请求方发送的数据和被请求方的地址;存储模块,用于将所接收的数据和请求方的地址保存到分布式消息队列中;解析模块,用于依次解析所述分布式消息队列中的数据和请求方的地址;调用模块,用于根据所述解析模块解析的所述请求方的地址发起调用;发送模块,用于将所述解析模块解析得到的所述数据发送到被请求方。优选地,该系统还包括:校验模块,所述校验模块用于:在根据所述请求方的地址发起调用前,执行如下至少一者的操作:限流校验、限并发校验。优选地,如果所述发送模块将所述解析模块解析得到的所述数据传入到被请求方失败,则进行设定次数的重传。优选地,其中,所述发送模块还用于:在所述接收模块接收到所述请求方发送的数据和被请求方的地址后,向所述请求方发送接收成功的应答。优选地,所述校验模块还用于:在接收模块接收到请求方发送的数据和被请求方的地址后,进行权限的校验。本专利技术的服务间异步调用的方法及系统,基于高可用的持久化队列系统作为存储介质,实现一个高可用的分布式中间系统,为服务间的数据异步传输提供稳定高效的服务。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1为根据本专利技术一种实施方式的服务间异步调用的方法的流程图;图2为根据本专利技术另一种实施方式的服务间异步调用的方法的流程图;图3为根据本专利技术一种实施方式的服务间异步调用的系统的结构示意图;图4为根据本专利技术另一种实施方式的服务间异步调用的系统的结构示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的参数或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。本专利技术提供的一种服务间异步调用的方法,解决现有技术中调用出现阻塞、调用效率较低的技术问题。为了更好的理解本专利技术的技术方案和技术效果,以下将结合流程示意图对具体的实施方式进行详细的描述。图1是本专利技术一种实施方式的服务间异步调用的方法的流程图。如图1所示的根据本专利技术一种实施方式的服务间异步调用的方法,可以包括以下步骤:在步骤S100中,接收请求方发送的数据和被请求方的地址;在步骤S110中,将所接收的数据和请求方的地址保存到分布式消息队列中;在步骤S120中,依次解析所述分布式消息队列中的数据和请求方的地址;在步骤S130中,根据所解析的所述请求方的地址发起调用;在步骤S140中,将解析得到的所述数据传入到所述被请求方。图2是本专利技术另一种实施方式的服务间异步调用的方法的流程图。如图2所示的根据本专利技术另一种实施方式的服务间异步调用的方法,还包括:在步骤S122中,在根据所解析的所述请求方的地址发起调用前,执行如下至少一者的操作:限流校验、限并发校验。上述方案中,在步骤S140中,将所述数据发送到被请求方包括:如果解析得到的所述数据传入到被请求方失败,则进行设定次数的重传。作为示例,该方法还包括:在接收请求方发送的数据和被请求方的地址后,在步骤S102中,向所述请求方发送接收成功的应答。作为另一示例,该方法还包括:在接收到请求方发送的数据和被请求方的地址后,在步骤S101中,进行权限的校验。图3是本专利技术一种实施方式的服务间异步调用的系统结构示意图。如图3所示的根据本专利技术一种实施方式的服务间异步调用的系统,包括,接收模块,用于接收请求方发送的数据和被请求方的地址;存储模块,用于将所接收的数据和请求方的地址保存到分布式消息队列中;解析模块,用于依次解析所述分布式消息队列中的数据和请求方的地址;调用模块,用于根据所述解析模块解析的所述请求方的地址发起调用;发送模块,用于将所述解析模块解析得到的所述数据发送到被请求方。图4是本专利技术另一种实施方式的服务间异步调用的系统结构示意图。如图4所示的根据本专利技术另一种实施方式的服务间异步调用的系统,还包括:校验模块,所述校验模块用于:在根据所述请求方的地址发起调用前,执行如下至少一者的操作:限流校验、限并发校验。如果所述发送模块将所述解析模块解析得到的所述数据发送到被请求方失败,则进行设定次数的重传。上述方案中,所述发送模块还用于:在所述接收模块接收到所述请求方发送的数据和被请求方的地址后,向所述请求方发送接收成功的应答。上述方案中,所述校验模块还用于:在接收模块接收到请求方发送的数据和被请求方的地址后,进行权限的校验。上述方案中,各个模块的工作流程如下:1)请求方/上游业务通过HTTP协议远程调用该系统/中间件,在请求中携带将要调用的本请求方/下游服务地址,以及需要传输的数据。该系统/中间件解析请求有效后,立即向请求方/调用方返回成功的应答。2)该系统/中间件通过接收模块收到上述请求,校验模块会首先进行权限的校验,校验本文档来自技高网...

【技术保护点】
1.一种服务间异步调用的方法,其特征在于,该方法包括:接收请求方发送的数据和被请求方的地址;将所接收的数据和请求方的地址保存到分布式消息队列中;依次解析所述分布式消息队列中的数据和请求方的地址;根据所解析的所述请求方的地址发起调用;将解析得到的所述数据传入到所述被请求方。

【技术特征摘要】
1.一种服务间异步调用的方法,其特征在于,该方法包括:接收请求方发送的数据和被请求方的地址;将所接收的数据和请求方的地址保存到分布式消息队列中;依次解析所述分布式消息队列中的数据和请求方的地址;根据所解析的所述请求方的地址发起调用;将解析得到的所述数据传入到所述被请求方。2.根据权利要求1所述的方法,其特征在于,该方法还包括:在根据所解析的所述请求方的地址发起调用前,执行如下至少一者的操作:限流校验、限并发校验。3.根据权利要求1所述的方法,其特征在于,其中,将解析得到的所述数据传入到被请求方包括:如果所述数据传入到被请求方失败,则进行设定次数的重传。4.根据权利要求1所述的方法,其特征在于,该方法还包括:在接收请求方发送的数据和被请求方的地址后,向所述请求方发送接收成功的应答。5.根据权利要求4所述的方法,其特征在于,其中,该方法还包括:在接收到请求方发送的数据和被请求方的地址后,进行权限的校验。6.一种服务间异步调用的系统,其特征在于,该系统包括:接收模块,用于接收请...

【专利技术属性】
技术研发人员:梁栋
申请(专利权)人:北京值得买科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1