[发明专利]一种远程调用方法及远程调用装置有效
申请号: | 201710175351.X | 申请日: | 2017-03-22 |
公开(公告)号: | CN107092532B | 公开(公告)日: | 2020-08-04 |
发明(设计)人: | 支猛;陈少杰;张文明 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 汤财宝 |
地址: | 430000 湖北省武汉市武汉东湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 远程 调用 方法 装置 | ||
本发明提供一种远程调用方法及远程调用装置,所述的方法包括:内嵌Jetty服务器,接收外部发送的断路器开闭请求,其中,断路器开闭请求中携带有断路器标识信息和所请求的断路器的开闭状态信息;从HashMap中查找得到与断路器标识信息对应的断路器原有的开闭状态;根据断路器开闭请求中所请求的断路器的开闭状态,对从HashMap中查找得到的断路器原有的开闭状态进行更新,并根据更新后的断路器的开闭状态来允许或拒绝远程调用请求。本发明通过在程序中内嵌Jetty服务器,该Jetty服务器接收外部的断路器开闭请求,能够在调用程序启动后,对断路器的开闭状态进行更新,使断路器的开闭状态更符合实际情况。
技术领域
本发明涉及计算机应用技术领域,更具体地,涉及一种远程调用方法及远程调用装置。
背景技术
软件系统通常会对在不同进程中运行的软件进行远程调用,这些进程很可能位于网络上的不同机器上。进程内调用和远程调用的一个很大的不同是远程调用经常会出现失败或者无响应挂起直到超时的问题。更糟糕的是,如果在一个无响应的服务上发起许多个调用,那么将很可能导致系统耗尽关键资源,从而导致多个系统上的级联故障。
针对上述问题,目前提出了断路器模式来避免这种级联故障。断路器的原理非常简单,就是使用断路器封装受到调用的方法,断路器能够监控调用该方法的失败情况。一旦调用该方法的失败次数超过了一定的阈值,断路器就处于打开状态,拒绝后续到达断路器上的远程调用请求,而避免了受保护方法的调用。
采用上述解决方式,由于断路器打开的条件阈值是在远程调用程序之前设置好的,一旦远程调用程序启动后,断路器打开的条件阈值是无法更改的。这样,在远程调用程序启动后,预先设置的断路器打开的条件阈值很可能不能反映整个过程中真实的情况。
发明内容
本发明提供一种远程调用方法及远程调用装置,克服了现有的一旦设置了断路器的开闭条件、就无法修改的问题。
根据本发明的一个方面,提供了一种远程调用方法,包括:
S1,内嵌Jetty服务器,接收外部发送的断路器开闭请求,其中,所述断路器开闭请求中携带有断路器标识信息和所请求的断路器的开闭状态信息;
S2,从HashMap中查找得到与所述断路器标识信息对应的断路器原有的开闭状态,其中,HashMap中表征断路器标识信息和断路器的开闭状态的映射关系;
S3,根据所述断路器开闭请求中所请求的断路器的开闭状态,对从HashMap中查找得到的断路器原有的开闭状态进行更新,并根据更新后的断路器的开闭状态来允许或拒绝远程调用请求。
本发明的有益效果为:通过在原有的系统中内嵌Jetty服务器,该Jetty服务器接收外部的断路器开闭请求,能够在调用程序启动后,对断路器的开闭状态进行更新,使断路器的开闭状态更符合实际情况;在断路器中引入Jetty服务器,利用服务器来实现对断路器的开闭状态的更新,不会影响断路器本身的运行。
在上述技术方案的基础上,本发明还可以作如下改进。
可选的,在所述步骤S1之前还包括:
为每一个远程调用的方法配置一个断路器来封装该方法;
对远程调用断路器封装的方法的调用状况进行分析,来确定该断路器的开闭状态,并将所述断路器的开闭状态存储于HashMap中。
可选的,所述对远程调用断路器封装的方法的调用状况进行分析来确定该断路器的开闭状态具体包括:
统计在预设周期内远程调用断路器封装的方法的失败次数,当失败次数达到第一预设次数时,将该方法对应的断路器设置为打开状态,否则,将所述断路器设置为闭合状态;或者,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710175351.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种覆膜砂均匀混合摆动装置
- 下一篇:一种注蜡机夹具