一种远程服务调用系统及调用方法技术方案

技术编号:24409294 阅读:22 留言:0更新日期:2020-06-06 08:28
本发明专利技术公开了一种远程服务调用系统及调用方法,属于RPC调用技术领域;其中,服务管理端连接多个服务请求端,以及连接多个服务提供端。服务管理端接收服务请求端发送的请求数据并暂存,同时广播服务请求给服务提供端;服务提供端根据服务请求上传自身的执行能力;服务管理端根据服务请求对执行能力进行匹配,以选择出相应的服务提供端并下发执行确认指令;服务提供端根据执行确认指令反馈执行反馈信息,以建立任务执行链接;随后当服务提供端准备开始处理服务请求时,服务提供端从服务管理端提取请求数据并进行处理。上述技术方案的有益效果是:从服务提供方的角度来进行调用服务的分配和管理,减少调用服务的等待时间,提高服务执行效率。

A remote service calling system and method

【技术实现步骤摘要】
一种远程服务调用系统及调用方法
本专利技术涉及RPC调用
,尤其涉及一种远程服务调用系统及调用方法。
技术介绍
远程过程调用(RemoteProcedureCall,RPC)是一种远程数据或者服务调用的机制,概括来说,一个程序运行端可以通过RPC调用机制向另一个远程的服务端发起调用请求,请求调用该服务端的应用商部署的函数/方法,或者请求调用该服务端内保存的数据。在RPC调用的过程中,调用方无需了解被调用方的底层操作,而可以很方便地实现服务调用,例如调用方在调用函数时无需获知被调用方的函数实现方式,只需要获得函数计算结果即可。在RPC调用过程中,当调用方向被调用方发起调用请求时,调用方相关的进程会被挂起(程序运行中断),被调用方的被调用的进程开始执行,调用方可以直接通过参数传输的方式将请求服务的相关数据发送给被调用方,然后根据被调用方的数据处理得到相应的结果,从而恢复相关进程(程序恢复运行)。整个过程对于使用者来说是不可知的,看不到任何消息传递的过程。现有技术中的RPC调用机制中,如图1中所示,在网络上可能发布了多个服务提供方,多个服务提供方都可以提供相同的功能服务,这些服务提供方都可以作为被调用方进行调用。当调用方产生某个服务调用需求时,该调用方会根据某种预定的选择策略选择其中一个服务提供方作为被调用方并向其发送请求数据,被调用方根据请求数据进行处理后向调用方反馈处理结果,整个调用过程结束。由于网络中可能存在多个服务提供方,因此调用方需要采用预定的选择策略对服务提供方进行选择,以避免某个被调用方的负担过重导致调用服务不畅,常用的选择策略包括平均分配原则或者依序分配原则等。然而,所有选择策略均是从调用方的角度进行的选择,并不考虑各个服务提供方当前的实际运行状态和处理能力,有时候的分配结果无法跟被调用方的当前状态相匹配,从而导致调用服务处于长期等待的过程中,或者导致服务执行失败,综合考虑往往无法达到最佳的服务调用效果。
技术实现思路
根据现有技术中存在的问题,现提供一种远程服务调用系统及调用方法的技术方案,旨在从服务提供方的角度来进行调用服务的分配和管理,使得分配情况更贴合于各个服务提供方的实际运行状态,从而减少调用服务的等待时间,提高调用服务的执行效率。上述技术方案具体包括:一种远程服务调用系统,所述远程服务调用系统连接多个服务请求端,所述服务请求端在正常运行程序的过程中若需要调用特定服务,则所述服务请求端中断运行程序,并向所述远程服务调用系统发送相应的请求数据;其中,所述远程服务调用系统包括一服务管理端以及多个服务提供端,每个所述服务提供端分别连接所述服务管理端;所述服务管理端包括:数据接收单元,用于接收所述服务请求端发送的所述请求数据并进行暂存;请求生成单元,连接所述数据接收单元,用于根据所述请求数据生成相应的服务请求,并将所述服务请求广播至各个所述服务提供端;能力接收单元,用于接收各个所述服务提供端根据所述服务请求上报的执行能力;能力匹配单元,分别连接所述请求生成单元和所述能力接收单元,用于根据所述服务请求对各个所述服务提供端上报的所述执行能力进行匹配,以选择至少一个所述服务提供端并输出选择结果;指令下发单元,连接所述能力匹配单元,用于根据所述选择结果,向被选择的所述服务提供端下发执行确认指令;第一反馈单元,用于将被选择的所述服务提供端回传的对于所述请求数据的处理结果反馈至所述服务请求端;每个所述服务提供端包括:能力上报单元,在接收到所述服务请求后,所述能力上报单元将所述服务提供端自身的执行能力上报至所述服务管理端;指令反馈单元,在接收到所述执行确认指令后,所述指令反馈单元向所述服务管理端发送相应的执行反馈信息,以确认将对所述服务请求进行处理;服务提供单元,当所述服务提供端准备对所述服务请求进行处理时,所述服务提供单元从所述服务管理端提取暂存的所述请求数据并进行处理,输出相应的处理结果;结果反馈单元,连接所述服务提供单元,用于将所述处理结果反馈至所述服务管理端;当所述服务请求端接收到所述处理结果后,恢复运行程序。优选的,该远程服务调用系统,其中,所述能力上报单元进一步包括:能力获取模块,在接收到所述服务请求后,所述能力获取模块获取所述服务提供端自身的当前运行状态;能力评估模块,连接所述能力获取模块,用于根据所述当前运行状态评估得到所述执行能力;能力上报模块,连接所述能力评估模块,用于向所述服务管理端上报所述执行能力。优选的,该远程服务调用系统,其中,所述当前运行状态包括下述中的至少一种:所述服务提供端的线程数;所述服务提供端的内存容量;所述服务提供端当前正在执行的任务状态;以及所述服务提供端当前正等待执行的任务状态。优选的,该远程服务调用系统,其中:每个所述服务提供端还包括:第一检测单元,用于检测所述服务提供端是否出现能够被检测到的故障,并输出第一检测结果;列表生成单元,分别连接所述第一检测单元和所述服务提供单元,用于在所述第一检测结果表示所述服务提供端出现故障时形成一服务请求列表,所述服务请求列表中包括所述服务提供端尚未开始处理的所述服务请求;列表发送单元,连接所述列表生成单元,用于将所述服务请求列表发送至所述服务管理端;所述服务管理端还包括:列表接收单元,连接所述能力匹配单元,用于接收所述服务请求列表并发送至所述能力匹配单元;所述能力匹配单元还用于根据所述服务请求列表中包括的各项所述服务请求,分别对之前已经接收到的各个所述服务提供端上报的所述执行能力重新进行匹配,以针对各项所述服务请求重新选择所述服务提供端并重新输出所述选择结果。优选的,该远程服务调用系统,其中,所述故障服务提供端是否出现能够被检测到的故障包括下述中的至少一种:所述服务提供端进行例行维护;以及所述服务提供端接收到外部输入的指令以停止对所述服务请求进行处理。优选的,该远程服务调用系统,其中,所述服务管理端还包括:第二检测单元,用于检测各个所述服务提供端与所述服务管理端之间的连接是否出现故障,并输出第二检测结果;第二反馈单元,分别连接所述第二检测单元和所述能力匹配单元,用于在所述第二检测结果表示所述服务管理端与所述服务提供端之间的连接出现故障时,根据出现故障的所述服务提供端所对应的所有所述服务请求,分别向对应的所述服务请求端发送用于表示服务提供出错的故障反馈结果;当所述服务请求端接收到所述故障反馈结果后,恢复运行程序。优选的,该远程服务调用系统,其中,所述第二检测单元采用心跳检测的方式检测各个所述服务提供端与所述服务管理端之间的连接是否出现故障。优选的,该远程服务调用系统,其中,每个所述服务请求端还分别连接所有所述服务提供端;每个所述服务请求端中还包括:第三检测单元,用于检测所述服务管理本文档来自技高网
...

【技术保护点】
1.一种远程服务调用系统,所述远程服务调用系统连接多个服务请求端,所述服务请求端在正常运行程序的过程中若需要调用特定服务,则所述服务请求端中断运行程序,并向所述远程服务调用系统发送相应的请求数据;/n其特征在于,所述远程服务调用系统包括一服务管理端以及多个服务提供端,每个所述服务提供端分别连接所述服务管理端;/n所述服务管理端包括:/n数据接收单元,用于接收所述服务请求端发送的所述请求数据并进行暂存;/n请求生成单元,连接所述数据接收单元,用于根据所述请求数据生成相应的服务请求,并将所述服务请求广播至各个所述服务提供端;/n能力接收单元,用于接收各个所述服务提供端根据所述服务请求上报的执行能力;/n能力匹配单元,分别连接所述请求生成单元和所述能力接收单元,用于根据所述服务请求对各个所述服务提供端上报的所述执行能力进行匹配,以选择至少一个所述服务提供端并输出选择结果;/n指令下发单元,连接所述能力匹配单元,用于根据所述选择结果,向被选择的所述服务提供端下发执行确认指令;/n第一反馈单元,用于将被选择的所述服务提供端回传的对于所述请求数据的处理结果反馈至所述服务请求端;每个所述服务提供端包括:/n能力上报单元,在接收到所述服务请求后,所述能力上报单元将所述服务提供端自身的执行能力上报至所述服务管理端;/n指令反馈单元,在接收到所述执行确认指令后,所述指令反馈单元向所述服务管理端发送相应的执行反馈信息,以确认将对所述服务请求进行处理;/n服务提供单元,当所述服务提供端准备对所述服务请求进行处理时,所述服务提供单元从所述服务管理端提取暂存的所述请求数据并进行处理,输出相应的处理结果;/n结果反馈单元,连接所述服务提供单元,用于将所述处理结果反馈至所述服务管理端;当所述服务请求端接收到所述处理结果后,恢复运行程序。/n...

【技术特征摘要】
1.一种远程服务调用系统,所述远程服务调用系统连接多个服务请求端,所述服务请求端在正常运行程序的过程中若需要调用特定服务,则所述服务请求端中断运行程序,并向所述远程服务调用系统发送相应的请求数据;
其特征在于,所述远程服务调用系统包括一服务管理端以及多个服务提供端,每个所述服务提供端分别连接所述服务管理端;
所述服务管理端包括:
数据接收单元,用于接收所述服务请求端发送的所述请求数据并进行暂存;
请求生成单元,连接所述数据接收单元,用于根据所述请求数据生成相应的服务请求,并将所述服务请求广播至各个所述服务提供端;
能力接收单元,用于接收各个所述服务提供端根据所述服务请求上报的执行能力;
能力匹配单元,分别连接所述请求生成单元和所述能力接收单元,用于根据所述服务请求对各个所述服务提供端上报的所述执行能力进行匹配,以选择至少一个所述服务提供端并输出选择结果;
指令下发单元,连接所述能力匹配单元,用于根据所述选择结果,向被选择的所述服务提供端下发执行确认指令;
第一反馈单元,用于将被选择的所述服务提供端回传的对于所述请求数据的处理结果反馈至所述服务请求端;每个所述服务提供端包括:
能力上报单元,在接收到所述服务请求后,所述能力上报单元将所述服务提供端自身的执行能力上报至所述服务管理端;
指令反馈单元,在接收到所述执行确认指令后,所述指令反馈单元向所述服务管理端发送相应的执行反馈信息,以确认将对所述服务请求进行处理;
服务提供单元,当所述服务提供端准备对所述服务请求进行处理时,所述服务提供单元从所述服务管理端提取暂存的所述请求数据并进行处理,输出相应的处理结果;
结果反馈单元,连接所述服务提供单元,用于将所述处理结果反馈至所述服务管理端;当所述服务请求端接收到所述处理结果后,恢复运行程序。


2.如权利要求1所述的远程服务调用系统,其特征在于,所述能力上报单元进一步包括:
能力获取模块,在接收到所述服务请求后,所述能力获取模块获取所述服务提供端自身的当前运行状态;
能力评估模块,连接所述能力获取模块,用于根据所述当前运行状态评估得到所述执行能力;
能力上报模块,连接所述能力评估模块,用于向所述服务管理端上报所述执行能力。


3.如权利要求1所述的远程服务调用系统,其特征在于,所述当前运行状态包括下述中的至少一种:
所述服务提供端的线程数;
所述服务提供端的内存容量;
所述服务提供端当前正在执行的任务状态;以及
所述服务提供端当前正等待执行的任务状态。


4.如权利要求1所述的远程服务调用系统,其特征在于:
每个所述服务提供端还包括:
第一检测单元,用于检测所述服务提供端是否出现能够被检测到的故障,并输出第一检测结果;
列表生成单元,分别连接所述第一检测单元和所述服务提供单元,用于在所述第一检测结果表示所述服务提供端出现故障时形成一服务请求列表,所述服务请求列表中包括所述服务提供端尚未开始处理的所述服务请求;
列表发送单元,连接所述列表生成单元,用于将所述服务请求列表发送至所述服务管理端;所述服务管理端还包括:
列表接收单元,连接所述能力匹配单元,用于接收所述服务请求列表并发送至所述能力匹配单元;
所述能力匹配单元还用于根据所述服务请求列表中包括的各项所述服务请求,分别对之前已经接收到的各个所述服务提供端上报的所述执行能力重新进行匹配,以针对各项所述服务请求重新选择所述服务提供端并重新输出所述选择结果。


5.如权利要求4所述的远程服务调用系统,其特征在于,所述故障服务提供端是否出现能够被检测到的故障包括下述中的至少一种:
所述服务提供端进行例行维护;以及
所述服务提供端接收到外部输入的指令以停止对所述服务请求进行处理。


6.如权利要求1所述的远程服务调用系统,其特征在于,所述服务管理端还包括:
第二检测单元,用于检测各个所述服务提供端与所述服务管理端之间的连接是否出现故障,并输出第二检测结果;
第二反馈单元,分别连接所述第二检测单元和所述能力匹配单元,用于在所述第二检测结果表示所述服务管理端与所述服务提供端之间的连接出现故障时,根据出现故障的所述服务提供端所对应的所有所述服务请求,分别向对应的所述服务请求端发送用于表示服务提供出错的故障反馈结果;
当所述服务请求端接收到所述故障反馈结果后,恢复运行程序。
...

【专利技术属性】
技术研发人员:朱烨
申请(专利权)人:上海瀚之友信息技术服务有限公司
类型:发明
国别省市:上海;31

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

1