一种RPC请求调用方法及装置制造方法及图纸

技术编号:24293528 阅读:58 留言:0更新日期:2020-05-26 20:54
本发明专利技术公开了一种同步RPC请求调用方法及装置,涉及数据通信领域,该方法在客户端和服务器端对同步RPC请求调用过程进行监控和收发包分类计数,如果发生RPC请求超时,通过本发明专利技术能够有效帮助维护人员准确判定RPC请求超时的具体原因,提高故障排查效率。

An RPC request calling method and device

【技术实现步骤摘要】
一种RPC请求调用方法及装置
本专利技术涉及数据通信领域,尤其涉及一种RPC请求调用方法及装置。
技术介绍
远程过程调用(RemoteProcedureCall,简称RPC)一般是基于CS架构实现,即客户端发起RPC请求,服务器端根据客户端的请求实现功能调用。RPC请求的调用模式可分为同步调用和异步调用两类,根据不同需求选用不同的调用模式。同步调用是客户端向服务器端发起RPC请求后,需等待服务器端返回RPC响应从而得到执行结果;异步调用是客户端发起RPC请求后不必等待服务器端返回RPC响应,而是在服务器端向客户端返回RPC响应后,再由客户端通过回调机制得到执行结果。现实环境中RPC请求往往会因为各种原因出现调用失败,尤其是对于同步RPC调用的超时问题,如果不能及时发现同步RPC调用的超时原因,则会导致对应功能失效,严重影响业务的可用性,因此,及时发现同步RPC调用超时并及时解决是当前亟待解决的问题。
技术实现思路
本专利技术提供一种RPC请求调用方法及装置,能够帮助维护人员及时发现同步RPC请求发生调用超时的具体原因,提高故本文档来自技高网...

【技术保护点】
1.一种RPC请求调用方法,其特征在于,应用于发起同步RPC请求的客户端,所述方法包括:/n所述客户端向服务器端每发起一次同步的RPC请求,对该RPC请求对应的同类RPC请求的计数值进行累计;/n所述客户端每接收一次所述服务器端发送的RPC响应,对该RPC响应对应的同类RPC响应的计数值进行累计;/n所述客户端发起任一RPC请求后,如在预设的超时阈值内未收到所述任一RPC请求对应的RPC响应,记录所述任一RPC请求的调用信息用于后期调试。/n

【技术特征摘要】
1.一种RPC请求调用方法,其特征在于,应用于发起同步RPC请求的客户端,所述方法包括:
所述客户端向服务器端每发起一次同步的RPC请求,对该RPC请求对应的同类RPC请求的计数值进行累计;
所述客户端每接收一次所述服务器端发送的RPC响应,对该RPC响应对应的同类RPC响应的计数值进行累计;
所述客户端发起任一RPC请求后,如在预设的超时阈值内未收到所述任一RPC请求对应的RPC响应,记录所述任一RPC请求的调用信息用于后期调试。


2.如权利要求1所述的方法,其特征在于,所述RPC请求以及所述RPC响应包括:应用模块标识,客户端标识和服务器端标识组成的三元组信息;所述同类RPC请求是指包括相同三元组信息的RPC请求;所述同类RPC响应是指包括相同三元组信息的RPC响应。


3.如权利要求2所述的方法,其特征在于,所述记录所述任一RPC请求的调用信息用于后期调试,包括:
记录所述任一RPC请求的三元组信息与所述任一RPC请求的序列号的对应关系;
根据所述任一RPC请求的序列号对应的所述三元组信息中的应用模块标识,所述客户端通知对应的应用模块停止发起RPC请求;
等待设定的延迟时间后,比较所述任一RPC请求对应的同类RPC请求的计数值是否等于所述任一RPC请求对应RPC响应对应的同类RPC响应的计数值;若不相等,判定所述任一RPC请求因丢包导致超时,否则,判定所述任一RPC请求在所述服务器端调用超时。


4.一种RPC请求调用方法,其特征在于,应用于接收同步RPC请求的服务器端,所述方法包括:
所述服务器端接收客户端发起的任一RPC请求,对所述任一RPC请求对应的同类RPC请求的计数值进行累计;
监控所述任一RPC请求的调用过程是否超时,如是,记录所述任一RPC请求的异常信息;
在所述任一RPC请求调用结束后,所述服务器端向所述客户端发送所述任一RPC请求对应的RPC响应,并对所述RPC响应对应的同类RPC响应的计数值进行累计;其中,所述任一RPC请求对应的同类RPC请求的计数值和所述RPC响应对应的同类RPC响应的计数值用于后期调试。


5.如权利要求4所述的方法,其特征在于,所述RPC请求以及所述RPC响应包括:应用模块标识,客户端标识和服务器端标识组成的三元组信息;所述同类RPC请求是指包括相同三元组信息的RPC请求;所述同类RPC响应是指包括相同三元组信息的RPC响应。


6.如权利要求4所述的方法,其特征在于,所述监控所述任一RPC请求的调用过程是否超时,包括:
所述服务器端接收所述任一RPC请求后,获取当前时间作为所述任一RPC请求的第一时间戳,将所述RPC请求添加到先入先出待处理队列;
所述服务器端从所述待处理队列提取所述任一RPC请求,获取当前时间作为所述任一RPC请求的第二时间戳;
所述服务器端执行所述任一RPC请求,所述任一RPC请求执行结束后,获取当前时间作为所述任一RPC请求的第三时间戳;
如果所述第二时间戳与所述第一时间戳的差值大于等于预设的超时阈值,判定所述任一RPC请求在所述待处理队列的等待过程中发生超时;
如果所述第二时间戳与所述第一时间戳的差值小于所述超时阈值,且所述第三时间戳与所述第二时间戳的差值大于等于所述超时阈值,判定所述任一RPC请求在执行过程中发生超时;
如果所述第二时间戳与所述第一时间戳的差值和所述第三时间戳与所述第二时间戳的差值都小于所述超时阈值,且所述第三时间戳与所述第一时间戳的差值大于等于所述超时阈值,判定所述任一RPC请求在所述待处理队列的等待过程和执行过程中发生超时;
如果所述第二时间戳与所述第一时间戳的差值、所述第三时间戳与所述第二时间戳的差值和所述第三时间戳与所述第一时间戳的差值都小于所述超时阈值,判定所述任一RPC请求在所述服务器端的调用过程未超时;
所述记录所述任一RPC请求的异常信息,包括:
记录所述任一RPC请求的三元组信息与所述任一RPC请求的序列号的对应关系、所述任一RPC请求的超时原因;其中,记录的方式可采用日志、告警、邮件或者短消息中的任何一种。


7.如权利要求6所述的方法,其特征在于,所述服务器端执行所述任一RPC请求,包括:
所述服务器端执行所述任一RPC请求,同时释放信号量唤醒监控线程,如果所述任一RPC请求的执行时间超过预设的时间阈值,判定所述任一RPC请求在执行过程中发生超时,所述监控线程记录当前环境信息用于后期调试;所述当前环境信息,包括:执行所述任一RPC请求时的堆栈上下文和当前时间;所述时间阈值小于等于所述超时阈值。


8.一...

【专利技术属性】
技术研发人员:贺启波杨大川
申请(专利权)人:迈普通信技术股份有限公司
类型:发明
国别省市:四川;51

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

1