一种RPC请求控制的方法、存储介质、电子设备和系统技术方案

技术编号:17541437 阅读:73 留言:0更新日期:2018-03-24 18:16
本发明专利技术公开了一种RPC请求控制的方法,涉及互联网直播领域,包括步骤:监控服务进程内部运行状态;载入并动态调整负载控制策略;根据所述服务进程内部运行状态是否满足所述负载控制策略,对RPC请求做出相应的接收或拒绝操作。本发明专利技术提供的RPC请求控制的方法,可以根据实际情况动态调整策略,充分利用服务器资源,避免浪费服务器资源。

A RPC request control method, storage medium, electronic device, and system

The invention discloses a method for controlling the RPC request, involving the Internet broadcast domain, which comprises the following steps: monitoring the running state of internal service process; loading and dynamic adjustment of load control strategy according to the internal condition; the service process meets the load control strategy, make corresponding to the receiving RPC request or reject operation. The method of RPC request control provided by the invention can dynamically adjust the strategy according to the actual situation, make full use of server resources and avoid wasting server resources.

【技术实现步骤摘要】
一种RPC请求控制的方法、存储介质、电子设备和系统
本专利技术涉及互联网直播领域,具体涉及一种RPC请求控制的方法、存储介质、电子设备和系统。
技术介绍
在实现高并发的后台服务时,有效判断服务内部状态,以及高效实现对RPC请求的响应是决定服务性能的关键。但是,在高并发的后台服务中,经常会出现请求量激增的情况,例如有些活动的抢答阶段,使得请求量超出服务器处理极限,从而导致服务器宕机。因此,在请求量超出服务处理极限时,要保证处理能力以内的请求得到处理,同时主动拒绝超出处理能力的请求,合理利用服务器资源,以避免服务器宕机。为实现上述功能,现有技术采用的方法是:设定一个请求上限的计数,当每秒接收到的请求达到某个上限时,停止接收请求,并进行拒绝操作,由于在请求接入的同时,也会有请求完成,需要每秒重置该计数器。通常每个请求占用的服务器资源会有所不同,使用请求上限计数的方法,对服务内部状态管理非常粗糙,无法动态根据实际的情况决定当前是否要接收请求,因而无法将服务器资源的利用率达到最大化,造成部分服务器资源的浪费。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种RPC请求控制的方法,可以根据实际情况动态调整策略,充分利用服务器资源,避免浪费服务器资源。为达到以上目的,本专利技术采取的技术方案是:一种RPC请求控制的方法,包括步骤:监控服务进程内部运行状态;载入并动态调整负载控制策略;根据所述服务进程内部运行状态是否满足所述负载控制策略,对RPC请求做出相应的接收或拒绝操作。在上述技术方案的基础上,所述监控服务进程内部运行状态具体包括步骤如下:根据远程过程调用RPC请求的不同类别,分别构建不同的处理类,并构造每个处理类的枚举类型、构造函数和析构函数,所述枚举类型用于表示不同类别的RPC请求运行时的状态,所述构造函数用于为所述处理类分配空间,所述析构函数用于释放所述处理类的分配空间;;构建一变量,所述变量用于保存全局运行时每个处理类中逻辑单元的计数;构建单例类,在所述单例类中创建构造方法和析构方法,所述构造方法用于增加所述变量中每个处理类中逻辑单元的计数,所述析构方法用于减少所述变量中每个处理类中逻辑单元的计数;当有RPC请求进入时,在构造函数中调用所述构造方法,增加对应处理类中逻辑单元的计数,当服务进程内部RPC请求完成时,在析构函数中调用所述析构方法,减少对应处理类中逻辑单元的计数;根据每个处理类中逻辑单元的计数和枚举类型,获得服务进程内部运行状态。在上述技术方案的基础上,根据所述负载控制策略和监控到的服务进程内部运行状态,对RPC请求做出相应的接收或拒绝操作,具体包括如下:构建负载控制实例,并在所述负载控制实例中创建判断RPC请求接受或拒绝的方法;当有RPC请求时,调用所述负载控制实例中的方法,根据所述服务进程内部运行状态是否满足所述负载控制策略,判断是否接收所述RPC请求;若接受所述RPC请求,则允许所述RPC请求进入到正常的请求处理流程;若拒绝所述RPC请求,则向用户返回错误码。在上述技术方案的基础上,所述负载控制策略为一个逻辑链,所述逻辑链包含一系列顺次排列的逻辑。本专利技术还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述RPC请求控制的方法步骤。本专利技术还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述RPC请求控制的方法步骤。本专利技术还提供了一种RPC请求控制的系统,所述系统包括监控模块、载入模块和负载控制模块;所述监控模块用于监控服务进程内部运行状态;所述载入模块用于载入并动态调整负载控制策略;所述负载控制模块用于根据所述服务进程内部运行状态是否满足所述负载控制策略,对RPC请求做出相应的接收或拒绝操作。在上述技术方案的基础上,所述监控模块包括第一创建单元、第二创建单元、第三创建单元、处理单元和运算单元;所述第一创建单元用于根据远程过程调用RPC请求的不同类别,分别构建不同的处理类,并构造每个处理类的枚举类型、构造函数和析构函数,所述枚举类型用于标识不同类别的RPC请求运行时的状态,所述构造函数用于为所述处理类分配空间,所述析构函数用于释放所述处理类的分配空间;所述第二创建单元用于构建一用于保存全局运行时每个处理类中逻辑单元计数的变量;所述第三创建单元用于构建单例类、在所述单例类中创建构造方法和析构方法,所述构造方法用于增加所述变量中每个处理类中逻辑单元的计数,所述析构方法用于减少所述变量中每个处理类中逻辑单元的计数;所述处理单元用于当有RPC请求进入时,在构造函数中调用所述构造方法,增加对应处理类中逻辑单元的计数,当服务进程内部RPC请求完成时,在析构函数中调用所述析构方法,减少对应处理类中逻辑单元的计数;所述运算单元用于根据每个处理类中逻辑单元的计数和枚举类型,获得服务进程内部运行状态。在上述技术方案的基础上,所述负载控制模块包括实例创建单元、判断单元和反馈单元;所述实例创建单元用于构建负载控制实例,并在所述负载控制实例中创建判断RPC请求接受或拒绝的方法;所述判断单元用于当有RPC请求时,调用所述负载控制实例中的方法,根据所述服务进程内部运行状态是否满足所述负载控制策略,判断是否接收所述RPC请求;所述反馈单元用于根据判断结果对RPC请求进行相应的接收或拒绝操作。在上述技术方案的基础上,所述负载控制策略为一个逻辑链,所述逻辑链包含一系列顺次排列的逻辑。与现有技术相比,本专利技术的优点在于:本专利技术的RPC请求控制的方法可以根据实际情况动态调整负载控制策略,并监控服务进程内部运行状态,根据负载控制策略和服务进程内部运行状态,判断是否接受RPC请求,从而充分利用服务器资源,避免服务器资源浪费。附图说明图1为本专利技术实施例中一种RPC请求控制的方法流程图;图2为本专利技术实施例中电子设备的连接框图。具体实施方式以下结合附图及实施例对本专利技术作进一步详细说明。参见图1所示,本专利技术实施例提供一种RPC请求控制的方法,包括步骤:S1:监控服务进程内部运行状态,具体为:S101:根据远程过程调用RPC请求的不同类别,分别构建不同的处理类,并构造每个处理类的枚举类型E_LOGIC_UNIT、构造函数和析构函数,枚举类型用于表示不同类别的RPC请求运行时的状态。处理类分别记为RPCa、RPCb、RPCx、RPCy等,将处理不同类的RPC请求时占用的服务器资源大小记为Value,用以表示服务进程运行时的状态,如处理类RPCa对应的枚举类型E_LOGIC_UNIT分别为Valuea,构造函数用于为处理类分配空间,析构函数用于释放处理类的分配空间。S102:构建并封装一hashmap类型的变量,类型为std::hash_map<E_LOGIC_UNIT,int>,变量用于保存全局运行时每个处理类中逻辑单元的计数,每个RPC请求在服务进程内部运行时均计为一个逻辑单元。S103:构建单例类ProfileSingleton,在单例类ProfileSingleton中创建构造方法process_incr(E_LOGIC_UNIT)和析构方法voidprocess_decr(E_LOGIC_U本文档来自技高网...
一种RPC请求控制的方法、存储介质、电子设备和系统

【技术保护点】
一种RPC请求控制的方法,其特征在于,包括步骤:监控服务进程内部运行状态;载入并动态调整负载控制策略;根据所述服务进程内部运行状态是否满足所述负载控制策略,对远程过程调用RPC请求做出相应的接收或拒绝操作。

【技术特征摘要】
1.一种RPC请求控制的方法,其特征在于,包括步骤:监控服务进程内部运行状态;载入并动态调整负载控制策略;根据所述服务进程内部运行状态是否满足所述负载控制策略,对远程过程调用RPC请求做出相应的接收或拒绝操作。2.如权利要求1所述的RPC请求控制的方法,其特征在于,所述监控服务进程内部运行状态具体包括步骤如下:根据远程过程调用RPC请求的不同类别,分别构建不同的处理类,并构造每个处理类的枚举类型、构造函数和析构函数,所述枚举类型用于表示不同类别的RPC请求运行时的状态,所述构造函数用于为所述处理类分配空间,所述析构函数用于释放所述处理类的分配空间;构建一变量,所述变量用于保存全局运行时每个处理类中逻辑单元的计数;构建单例类,在所述单例类中创建构造方法和析构方法,所述构造方法用于增加所述变量中每个处理类中逻辑单元的计数,所述析构方法用于减少所述变量中每个处理类中逻辑单元的计数;当有RPC请求进入时,在构造函数中调用所述构造方法,增加对应处理类中逻辑单元的计数,当服务进程内部RPC请求完成时,在析构函数中调用所述析构方法,减少对应处理类中逻辑单元的计数;根据每个处理类中逻辑单元的计数和枚举类型,获得服务进程内部运行状态。3.如权利要求1所述的RPC请求控制的方法,其特征在于,根据所述负载控制策略和监控到的服务进程内部运行状态,对RPC请求做出相应的接收或拒绝操作,包括如下:构建负载控制实例,并在所述负载控制实例中创建判断RPC请求接受或拒绝的方法;当有RPC请求时,调用所述负载控制实例中的方法,根据所述服务进程内部运行状态是否满足所述负载控制策略,判断是否接收所述RPC请求;若接受所述RPC请求,则允许所述RPC请求进入到正常的请求处理流程;若拒绝所述RPC请求,则向用户返回错误码。4.如权利要求1所述的RPC请求控制的方法,其特征在于:所述负载控制策略为一个逻辑链,所述逻辑链包含一系列顺次排列的逻辑。5.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述权利要求1至4中任一项所述方法的步骤。6.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于...

【专利技术属性】
技术研发人员:刘吉林陈少杰张文明
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

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

1