调节消息推送执行体的运行数量的方法及系统技术方案

技术编号:12440271 阅读:90 留言:0更新日期:2015-12-04 02:42
本发明专利技术提供一种调节消息推送执行体的运行数量的方法及系统,所述方法包括:读取消息推送执行体的基于服务端的负载信息的配置量;识别所述读取的配置量是否已更新;若识别为已更新,则根据所述读取的配置量调节所述消息推送执行体的运行数量。根据采用本发明专利技术提供的技术方案,可以基于服务端的负载信息对消息推送执行体的数量进行调节,从而实现根据下游服务端的实际处理能力动态调节消息推送执行体的数量,最大化利用机器资源以提高消息队列的推送性能。

【技术实现步骤摘要】

本专利技术涉及通信领域,更为具体而言,涉及调节消息推送执行体的运行数量的方法及系统
技术介绍
通常一个消息队列有很多消息分区或子队列,一个消息分区由一个消息推送执行体(进程或者线程)推送消息,多个消息推送执行体可以同时并发地推送消息,从而提高消息队列的推送qps (Query Per Second,每秒查询率)。消息推送执行体的数量一般是在初始化时就指定一个合理的固定值,不能太大,因为下游服务端可能既接收消息推送接口请求,还有可能接收其他接口请求或web (互联网)请求,这样如果每个分区都有一个消息推送执行体推送消息,会导致下游服务器压力过大,从而导致其他请求响应超时或服务不可用,但消息推送执行体数目设置过小却又导致一部分分区可能有消息却没有消息推送执行体推送,从而降低消息队列的推送qps,延长消息的处理时间,增加了机器使用的闲置率。在现有技术中,采用人工方式来配置消息推送执行体的数量,然而由于下游部署关系很复杂,采用人工方式难以根据下游服务端的实际处理能力动态调节消息推送执行体的数量,因此,难以最大化利用机器资源以提高消息队列的推送性能。
技术实现思路
为有效地解决上述技术问题,本专利技术提供了一种调节消息推送执行体的运行数量的方法及系统。—方面,本专利技术的实施方式提供了一种调节消息推送执行体的运行数量的方法,所述方法包括:读取消息推送执行体的基于服务端的负载信息的配置量;识别所述读取的配置量是否已更新;若识别为已更新,则根据所述读取的配置量调节所述消息推送执行体的运行数量。另一方面,本专利技术的实施方式还提供了一种调节消息推送执行体的运行数量的系统,所述系统包括:读取模块,用于读取消息推送执行体的基于服务端的负载信息的配置量;识别模块,用于识别所述读取模块所读取的配置量是否已更新;调节模块,用于当所述识别模块识别为已更新时,根据所述读取的配置量调节所述消息推送执行体的运行数量。实施本专利技术提供的调节消息推送执行体的运行数量的方法及系统可以基于服务端的负载信息对消息推送执行体的数量进行调节,从而实现根据下游服务端的实际处理能力动态调节消息推送执行体的数量,最大化利用机器资源以提高消息队列的推送性能。【附图说明】图1是根据本专利技术实施方式的一种调节消息推送执行体的运行数量的方法的流程图;图2是根据本专利技术实施方式的配置树的示意图;图3是根据本专利技术实施方式的一种调节消息推送执行体的运行数量的系统的结构示意图。【具体实施方式】为使本专利技术的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作详细描述。图1是根据本专利技术实施方式的一种调节消息推送执行体的运行数量的方法的流程图。参见图1,所述方法包括:SllO:读取消息推送执行体的基于服务端的负载信息的配置量;其中,所述消息推送执行体包括:消息推送进程以及消息推送线程;所述负载信息包括:所述服务端响应消息推送请求的超时率以及所述服务端处理消息推送请求的出错率;S120:识别所述读取的配置量是否已更新,若识别为已更新,则执行S130,若识别为未更新,则不进行处理;S130:根据所述读取的配置量调节所述消息推送执行体的运行数量。在本专利技术的实施方式中,所述方法还包括:根据所述服务端的所述负载信息更新所述配置量,具体地,可以通过以下方式实现:获取当前的所述超时率以及出错率;将所述获取的超时率以及出错率分别与超时率阈值以及出错率阈值进行比较;若所述获取的超时率小于或者等于所述超时率阈值并且所述获取的出错率小于或者等于所述出错率阈值,则将所述配置量增加预定增加量,然后经过第一预定时间后返回执行所述获取当前的所述超时率以及出错率的处理;若所述获取的超时率大于所述超时率阈值并且所述获取的出错率大于所述出错率阈值,则将所述配置量减少预定减少量,然后经过第二预定时间后返回执行所述获取当前的所述超时率以及出错率的处理。其中,在本专利技术的实施方式中,所述第二预定时间小于所述第一预定时间,例如,所述第一预定时间为10分钟,所述第二预定时间为I分钟,当然,本领域的技术人员可以根据实际需要对所述第一预定时间及所述第二预定时间进行其他合理设置。同时,所述预定增加量以及所述预定减少量可以相同也可以不同。以下结合具体例子,对本专利技术的实施方式进行说明。在消息队列中构建一棵配置树,如图2所示,所述配置树的叶子节点是用于订阅消息的下游api (接口 )本身的信息以及在各个时间段下游模块的负载信息(可以根据cpu (Central Processing Unit,中央处理器)、内存使用率和错误日志来记录),其中,下游模块指部署在web服务(服务端)中的向所述下游接口提供服务的代码模块,并且负载信息包括:响应消息推送请求的超时率以及处理消息推送请求的出错率。api信息节点的父节点是web服务信息节点,每个web服务信息节点下可以包括多个api信息节点,web服务信息节点的父节点是机器信息节点,每个机器信息节点下可以包括多个web服务信息节点,机器信息节点的父节点是机房信息节点,每个机房信息节点下可以包括多个机器信息节点。由于web服务节点,机器信息节点和机房信息节点很少变动,可以手动配置,并且可以先在api信息节点配置一个合理的消息推送进程或者线程的配置量,然后配置线程可以根据与所述api对应的服务端的所述负载信息动态地反馈调节所述配置量并定期更新所述负载信息,其中,调节配置量的执行过程具体包括:获取当前的超时率以及出错率;将获取的超时率以及出错率分别与超时率阈值以及出错率阈值进行比较;若获取的超时率小于或者等于所述超时率阈值并且所述获取的出错率小于或者等于所述出错率阈值,则将所述配置量增加预定增加量(例如1),并且经过第一等待时间(例如10分钟)后返回执行所述获取当前的超时率以及出错率的处理;若所述获取的超时率大于所述超时率阈值并且所述获取的出错率大于所述出错率阈值,则将配置量减少预定减少量(例如I),并且经过第二等待时间(例如I分钟)后返回执行所述获取当前的超时率以及出错率的处理,其中,预定增加量以及预定减少量也可以设置为不同。并发地,主线程定期读取所述配置树中消息推送进程或线程的配置量,并识别所述配置量是否已更新,若识别为已更新,则根据所述配置量调节所述消息推送进程或线程的运行数量以合理利用机器资源。主线程和配置线程相互独立地执行,为避免主线程不停地占用资源,在循环执行主线程的过程中,相邻两次执行之间间隔预定时间,例如I秒,当然本领域的技术人员可以根据实际需要将所述预定时间进行其它合理设置。图3是根据本专利技术实施方式的一种调节消息推送执行体的运行数量的系统的结构示意图,该系统100包括:读取模块110、识别模块120、以及调节模块130,其中,读取模块110,用于读取消息推送执行体的基于服务端的负载信息的配置量;其中,所述消息推送执行体包括:消息推送进程以及消息推送线程;所述负载信息包括:所述服务端响应消息当前第1页1 2 本文档来自技高网...

【技术保护点】
一种调节消息推送执行体的运行数量的方法,其特征在于,所述方法包括:读取消息推送执行体的基于服务端的负载信息的配置量;识别所述读取的配置量是否已更新;若识别为已更新,则根据所述读取的配置量调节所述消息推送执行体的运行数量。

【技术特征摘要】

【专利技术属性】
技术研发人员:周启崔燕张铮张振平张璐董长阳谭静常冰心苏俊杰侯晓冉翟庆羽
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京;11

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

1