[发明专利]一种服务间异步调用的方法及系统在审
申请号: | 201810026867.2 | 申请日: | 2018-01-11 |
公开(公告)号: | CN108259595A | 公开(公告)日: | 2018-07-06 |
发明(设计)人: | 梁栋 | 申请(专利权)人: | 北京值得买科技股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/861 |
代理公司: | 北京维澳专利代理有限公司 11252 | 代理人: | 周放;赵景平 |
地址: | 100068 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 异步调用 服务间 请求方 解析 分布式消息 被请求方 可用 队列 存储介质 地址保存 队列系统 接收请求 数据传输 中间系统 持久化 发送 服务 | ||
本发明公开了一种服务间异步调用的方法及系统,该服务间异步调用的方法包括:接收请求方发送的数据和被请求方的地址;将所接收的数据和请求方的地址保存到分布式消息队列中;依次解析所述分布式消息队列中的数据和请求方的地址;根据所解析的所述请求方的地址发起调;将解析得到的所述数据传入到所述被请求方。该服务间异步调用的方法,基于高可用的持久化队列系统作为存储介质,实现高可用的分布式中间系统,为服务间异步调用数据传输提供稳定高效的服务。
技术领域
本发明涉及计算机网络技术领域,特别涉及一种服务间异步调用的方法及系统。
背景技术
在分布式系统中,不同的服务之间通过异步调用完成数据的传输,不对传输的结果进行确认。在一个分布式系统环境下,不同的服务之间需要进行业务数据的同步,且通常请求方/发起方不需要数据立即完成同步,而是排队后异步传输。
目前存在两种主流的同步方式:
1)实时的数据同步:即上游产生数据后,立即调用下游接口进行同步,阻塞等待同步完成;
2)排队的数据同步:即上游产生数据后,将数据存储到MySQL或者redis中排队;编写一个脚本定时的获取MySQL/redis中的数据,调用下游接口进行同步,并阻塞等待同步完成。
而上述现有技术的缺点包括如下方面:
1)调用阻塞:调用下游接口采用了阻塞等待模式,无法并发处理;
2)重复工作:每个业务方各自实现自己的排队同步机制,开发效率低;
3)无容错机制:当下游服务响应变慢时,会导致上游处理进程大量阻塞,导致服务不可用;
4)无保护机制:当出现业务峰值时,对下游的调用会随之增加,没有对下游进行限流/限并发的保护机制;
5)可用性低:当MySQL/redis出现单点故障,整个系统将出现不可用问题。
发明内容
本发明提供了一种服务间异步调用的方法及系统,该方法为服务间异步调用提供简单接入、高性能、高可用的代理服务,解决了现有技术的调用出现阻塞、效率低的问题。
本发明提供了一种服务间异步调用的方法,该方法包括:接收请求方发送的数据和被请求方的地址;将所接收的数据和请求方的地址保存到分布式消息队列中;依次解析所述分布式消息队列中的数据和请求方的地址,并根据所解析的所述请求方的地址发起调用,将解析得到的所述数据传入到所述被请求方。
优选地,该方法还包括:在根据所解析的所述请求方的地址发起调用前,执行如下至少一者的操作:限流校验、限并发校验。
优选地,将所述数据传入到被请求方包括:如果解析得到的所述数据发送到被请求方失败,则进行设定次数的重传。
优选地,该方法还包括:在接收请求方发送的数据和被请求方的地址后,向所述请求方发送接收成功的应答。
优选地,该方法还包括:在接收到请求方发送的数据和被请求方的地址后,进行权限的校验。
本发明还提供一种服务间异步调用的系统,该系统包括:接收模块,用于接收请求方发送的数据和被请求方的地址;存储模块,用于将所接收的数据和请求方的地址保存到分布式消息队列中;解析模块,用于依次解析所述分布式消息队列中的数据和请求方的地址;调用模块,用于根据所述解析模块解析的所述请求方的地址发起调用;发送模块,用于将所述解析模块解析得到的所述数据发送到被请求方。
优选地,该系统还包括:校验模块,所述校验模块用于:在根据所述请求方的地址发起调用前,执行如下至少一者的操作:限流校验、限并发校验。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京值得买科技股份有限公司,未经北京值得买科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810026867.2/2.html,转载请声明来源钻瓜专利网。