[发明专利]分布式应用的异转同实现方法及装置在审
| 申请号: | 202110913117.9 | 申请日: | 2021-08-10 |
| 公开(公告)号: | CN113641472A | 公开(公告)日: | 2021-11-12 |
| 发明(设计)人: | 朱琳;唐松涛;尤见;黄鹏 | 申请(专利权)人: | 中国建设银行股份有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/52;G06F9/54 |
| 代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 贾磊;李辉 |
| 地址: | 100033 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 分布式 应用 实现 方法 装置 | ||
本发明涉及分布式技术领域,提供了一种分布式应用的异转同实现方法及装置,该方法包括:第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;接收其他应用服务反馈的受理结果,生成业务身份标识,在等待队列中形成等待线程;该业务身份标识记录有主机号和线程编号;接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;确定线程唤醒方法;利用线程唤醒方法,根据线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。通过形成等待线程,采用阻塞线程的方式,实现了异步响应结果的同步返回,从而避免了循环等待方式带来的内存溢出的风险,进而降低出错概率。
技术领域
本发明涉及分布式技术领域,尤其涉及一种分布式应用的异转同实现方法及装置。
背景技术
在分布式应用场景下,存在三种调用方式:同步调用:调用方在调用过程中,持续等待返回结果;异步调用:调用方在调用过程中,不直接等待返回结果,而是执行其他任务,结果返回形式通常为回调函数;异转同:在异步调用过程中,调用方持续等待,直至获得调用结果。
从用户角度出发,对于原本可以实时处理的业务,用户希望点击按钮后就可以得到相应的业务结果,而非被告知业务已受理,然后跳转页面通过查询方式来得知,为了有效提高用户友好度,分布式应用中均采用异转同的调用方式。现有技术中的异转同实现方法一般采用循环等待,但循环等待是非常消耗性能的,循环等待过程中,需要不断访问业务结果存放的内存等共享资源的位置,资源消耗大且会影响其他业务,在业务量大的时候,易造成CPU资源浪费,严重可导致内存溢出,从而导致分布式应用系统瘫痪,所有交易均失败。
发明内容
本发明实施例提供一种分布式应用的异转同实现方法,用以避免内存溢出的风险,降低分布式应用系统出错概率,该方法包括:
第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;所述业务请求报文包含业务流水号;
接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;所述业务身份标识记录有请求线程所在的主机号和请求线程编号;
接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;
根据所述业务身份标识,确定线程唤醒方法;
利用所述线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。
一具体实施例中的分布式应用的异转同实现方法,包括:
预设标识存储数据库,所述标识存储数据库中保存有业务流水号和业务身份标识的对应关系。
具体地,接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程,包括:
接收其他应用服务反馈的受理结果,若受理结果为成功,生成业务身份标识;
将请求线程的线程信息和业务身份标识保存至等待队列,阻塞请求线程,在等待队列中形成等待线程。
具体实施例中,根据所述业务身份标识,确定线程唤醒方法,包括:
拆解所述业务身份标识,得到请求线程所在的主机号;
根据所述主机号,确定该主机的组件号;
根据所述组件号,确定与组件绑定的线程唤醒方法。
相应地,另一具体实施例中的分布式应用的异转同实现方法,还包括:
预设唤醒方法存储数据库,所述唤醒方法存储数据库存储有主机号、组件号和线程唤醒方法的对应关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国建设银行股份有限公司,未经中国建设银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110913117.9/2.html,转载请声明来源钻瓜专利网。





