CN112398752A - 消息推送控制方法及其装置、设备、介质 - Google Patents
消息推送控制方法及其装置、设备、介质 Download PDFInfo
- Publication number
- CN112398752A CN112398752A CN202011275261.6A CN202011275261A CN112398752A CN 112398752 A CN112398752 A CN 112398752A CN 202011275261 A CN202011275261 A CN 202011275261A CN 112398752 A CN112398752 A CN 112398752A
- Authority
- CN
- China
- Prior art keywords
- server
- pushing
- push
- division
- speed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开一种消息推送控制方法及其装置、设备、介质,所述方法包括:接收一个或多个分工服务器上报的负载信息,所述多个分工服务器分别服务于同一互联网业务的不同业务环节;响应为所述分工服务器向该互联网业务的用户发送通知消息的推送服务器触发的速度查询请求,循环执行流量调控;执行流量调控过程中,依据所述负载信息统计出所有分工服务器的总负载率;当所述总负载率高于预设阈值时,控制该推送服务器暂停推送所述通知消息,否则根据预设的推送策略确定实时推送速度,将该实时推送速度推送给所述推送服务器。本申请可以根据分工服务器的总负载率动态控制推送服务器的推送速度,以便稳步控制推送服务器输出的流量。
Description
技术领域
本申请属于互联网技术领域,具体涉及一种消息推送控制方法,及其相应的装置、电子设备、非易失性存储介质。
背景技术
随着互联网的发展,互联网用户也不断增多,各大互联网公司开发了各种各样的应用程序为互联网用户提供了各种各样的服务。各大互联网公司为了使应用程序保持较高的用户活跃度及提升用户黏性,会向用户推送相应的优惠活动、节日活动或热点新闻等通知消息以刺激用户打开应用程序进行浏览。
虽然互联网公司的服务器可向大量的用户推送消息,刺激大量的用户打开应用程序,以保证应用程序的用户活跃度,但因现有的互联网技术发展有限,互联网公司因没有为同一互联网业务的服务器构建相应的策略,将会导致如下风险:
互联网公司为了刺激更多的用户访问互联网业务,以获取更多的用户浏览,会让为该互联网业务推送通知消息的推送服务器在短时间内广播通知消息至大量的用户端,以刺激大量用户访问该互联网业务。因分工服务器能承担的负载量有限,同一互联网业务的分工服务器可能并没有短时内处理大量用户的访问请求的能力,无法及时的反馈至用户,使用户等待反馈的时间过长,甚至可能因访问的数据量过大,导致该互联网业务的部分分工服务器超载,使部分分工服务器宕机,从而使该互联网业务将处于崩溃的状态,极大地影响了访问该互联网业务的用户体验,同时,因各个分工服务器处于同一服务器机群,当其中部分分工服务器宕机时,可能使与之关联的分工服务器也发生宕机,造成分工服务器机群出现雪崩的现象。
针对以上服务器推送消息所面临的问题,亟待提供一些有效的解决方案。
发明内容
鉴于现有技术所存在的不足,本申请的目的,旨在提供一种消息推送控制方法及其相应的容器分配装置、电子设备、非易失性存储介质。
为满足本申请的目的,本申请采用如下技术方案:
适应本申请的目的之一而提供的一种消息推送控制方法,其包括如下步骤:
接收一个或多个分工服务器上报的负载信息,所述多个分工服务器分别服务于同一互联网业务的不同业务环节;
响应为所述分工服务器向该互联网业务的用户发送通知消息的推送服务器触发的速度查询请求,循环执行流量调控;
执行流量调控过程中,依据所述负载信息统计出所有分工服务器的总负载率;
执行流量调控过程中,当所述总负载率高于预设阈值时,控制该推送服务器暂停推送所述通知消息,否则根据预设的推送策略确定实时推送速度,将该实时推送速度推送给所述推送服务器,以控制其以该实时推送速度向该互联网业务的用户推送所述的通知消息。
进一步的实施例中,依据所述负载信息统计出所有分工服务器的总负载率的步骤,包括如下具体步骤:
从所述负载信息中获取单位统计时间内各个分工服务器的负载量及其CPU 数量;
计算出各个分工服务器的单元负载率,所述单元负载率为每台分工服务器的所述负载量与其CPU数量之间的比值;
计算出所有分工服务器的总负载率,所述总负载率由各个分工服务器的单元负载率根据其相应的预设权重加权汇总而得。
较佳的实施例中,根据预设的推送策略确定实时推送速度的步骤中,根据所述推送策略的作用,比较所述通知消息在上一循环与更早的前一循环中的发送总量,若后者大于前者,则增大所述的实时推送速度,否则减小所述的实时推送速度。
较佳的实施例中,增大所述的实时推送速度时,将原实时推送速度乘以不小于2的倍数;减小所述的实时推送速度时,将原实时推送速度乘以不大于80%的倍数。
进一步的实施例中,本方法其包括如下步骤:
响应于配置信息修改请求,提取该修改请求中包含的配置信息,从所述配置信息中提取出所述的预设阈值、预设权重以及所述推送策略予以存储以供本方法调用。
进一步的实施例中,所述分工服务器包括服务于同一互联网业务的如下任意一种或任意多种:应用层服务器、业务逻辑服务器、缓存服务器、数据库服务器、多媒体服务器。
进一步的实施例中,循环执行流量调控时,按照预设定时或所述速度查询事件的定时触发而循环执行。
适应于本申请的目的之一而提供的一种消息推送控制装置,其包括:
信息采集模块,用于接收一个或多个分工服务器上报的负载信息,所述多个分工服务器分别服务于同一互联网业务的不同业务环节;
执行响应模块,用于响应为所述分工服务器向该互联网业务的用户发送通知消息的推送服务器触发的速度查询请求,循环执行流量调控;
负载统计模块,用于执行流量调控过程中,依据所述负载信息统计出所有分工服务器的总负载率;
推送执行模块,用于执行流量调控过程中,当所述总负载率高于预设阈值时,控制该推送服务器暂停推送所述通知消息,否则根据预设的推送策略确定实时推送速度,将该实时推送速度推送给所述推送服务器,以控制其以该实时推送速度向该互联网业务的用户推送所述的通知消息。
适应于本申请的目的之一而提供的一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行所述的消息推送控制方法。
适应于本申请的目的之一而提供一种非易失性存储介质,其以计算机可读指令的形式存储用依据所述的消息推送控制方法所述实现的计算机程序,该计算机程序被计算机调用时,执行该方法所包括的步骤。
相对于现有技术,本申请具有如下优势:
首先,本申请实现了统计服务于同一互联网业务的分工服务器的总负载的功能:通过接收其中一个或多个分工服务器的负载信息,并依据所述负载信息,统计出同一互联网业务的所有分工服务器的总负载率,以便开发人员可根据统计所得的总负载率,制定相应的策略,进而控制推送服务器分阶段有节奏地推送通知消息,也即控制通知消息的发送流量,防止当接收到该通知消息的大量用户响应该通知消息而访问分工服务器时,分工服务器需要同时处理过量的用户请求、无法快速反馈给用户,由此防止出现可能造成相关的互联网业务发生崩溃的情况,避免影响用户体验。
其次,本申请实现了控制推送服务器消息推送通知消息的实时推送速度的功能:通过将同一互联网业务的分工服务器的总负载率与预设阈值进行比较,若总负载大于预设阈值,将停止推送服务器的推送,若总负载小于预设阈值,便可根据预设的推送策略确定推送服务器的推送速度,通过实施这一手段,允许运维人员通过自定义各种不同的推送策略来细化控制推送服务器推送通知消息至相关互联网业务的用户的推送速度的控制逻辑,具有技术调整方面的弹性,能够更好及更精细化地控制通知消息的推送。
另外,本申请通过循环执行流量调控的相关步骤,一边动态地实时统计同一互联网业务的所有分工服务器构成的总负载,一边动态控制推送服务器的推送速度,由此而保持分工服务器与推送服务器的工作状态达到平衡,实现在优先保障分工服务器稳健运行的前提下,尽可能及时地将消息推送至更多的用户,确保用户接收互联网业务的通知消息。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为实施本申请的技术方案相关的一种典型的网络部署架构示意图;
图2为本申请的消息推送控制方法的典型实施例的流程示意图;
图3为本申请的消息推送控制方法的另一个实施例的流程示意图;
图4为本申请的消息推送控制装置的典型实施例的原理框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS (Global PositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
请参阅图1,本申请相关技术方案实施时所需的硬件基础可按图中所示的架构进行部署。本申请所称的流控服务器(01)负责根据同一互联网业务的分工服务器(03、04、05、06、07)上报的各个分工服务器的负载信息,统计出该互联网业务的所有分工服务器的总负载率,以便控制为该互联网业务推送通知消息至用户端(08)的推送服务器(02)的推送速度,以此构成逻辑上相关联的总服务机群,需要注意的是,所述用户端(08)不单指一个用户端,可理解为多个用户端所组成的用户端群。
请参阅图1,关于所述同一互联网业务的分工服务器机群所需的具体分工服务器,视具体的互联网业务所需而定,例如,图1是按照网络直播业务示例给出的架构,适应网络直播业务所需,由应用层服务器(03)、业务逻辑服务器(04)、缓存服务器(05)、数据库服务器(06)、多媒体服务器(07)构成,以便为用户端(08)提供相应的服务。其他互联网业务中,可能增加或者减少某种类型的分工服务器,由本领域技术人员按需确定即可。
请参阅图1,推送服务器(02)接收到同一互联网业务的某一分工服务器 (03、04、05、06、07)的推送指令后,将向流控服务器(01)发送速度查询请求,以便从流控服务器(01)中获取实时推送速度,根据该实时推送速度决定广播推送流量,将该推送指令所包含的通知消息推送给相应数量规模的用户端(08)。
需要注意的是,图1仅为示例本申请实施时所需的基础硬件架构,本申请实施的技术方案同样可适用于更复杂的硬件架构,只要业务逻辑上符合本申请即可,本领域技术人员应当理解。
本申请的应用程序的表现形式多种多样,其本质上是用于实现各种计算机功能,因此,其功能既可以是通过调用第三方浏览器访问网页,执行网页中植入的程序模块来表现,也可以是开发成适于在终端设备中安装的各种APP,在 APP中内嵌浏览器的相关功能逻辑,通过这些APP运行时调用远程网页、执行各种代码来表现。因此,某种意义上,浏览器与应用程序并不是截然区别的概念,对于基于网页开发的在线服务而言,应用程序可能内建了浏览器用于访问网页,而通过独立的浏览器来访问网页则也可实现应用程序的同等功能。在基于页面技术开发终端应用的技术浪潮面前,本领域技术人员对此应当理解。
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
在理解上述所揭示的与本申请技术方案相关的相关应用环境和开发环境的基础上,请参阅如下说明继续了解本申请的多种实施方式:
请参阅图2,本申请的一种消息推送控制方法,由服务器中的应用程序负责执行体现,在其典型实施例中,其包括如下步骤:
步骤S11,接收一个或多个分工服务器上报的负载信息,所述多个分工服务器分别服务于同一互联网业务的不同业务环节:
当某个互联网业务开启后,为该互联网业务服务的不同业务环节对应的各个分工服务器上报自身的负载信息至流控服务器中,以便流控服务器根据所述负载信息,统计出所有分工服务器的总负载。
所述的分工服务器,是指服务于同一互联网业务某一业务环节的服务器。互联网业务的不同业务环节由不同的分工服务器进行服务,即根据互联网业务的业务需求,其可包含的分工服务器包括如下任意一种或任意多种:应用层服务器、业务逻辑服务器、缓存服务器、数据库服务器、多媒体服务器等。例如,该互联网业务为直播业务,其至少包含的分工服务器为:应用层服务器、业务逻辑服务器与多媒体服务器,以便为该直播业务提供相应的直播服务。
所述的负载信息,用于表示分工服务器的负载情况,一般包含分工服务器的CPU数量及负载量,以便流控服务器通过某一分工服务器负载信息中的CPU 数量与负载量的比值,计算出该分工服务器的单元负载率。当然所述负载信息也可包含分工服务器的内存、网络流量等信息,以便实施流量调控中其他方案。
一种实施中,可为分工服务器构建一种定时上报负载信息的机制。当互联网业务开启后,为该互联网业务服务的分工服务器将定时向流控服务器上报其自身的负载信息,以便流控服务器定时且不间断地计算出该互联网业务各个分工服务器的单元负载率,即统计所有分工服务器的总负载率,例如,当所述定时为5分钟,所述分工服务器将5分钟上报一次自身的负载信息,以便流控服务器计算出5分钟时段内该分工服务器的单元负载率。所述定时,可预先进行设置,本领域技术人员可根据实际应用场景进行设置,只要可触发分工服务器定时将自身的负载信息上报至流控服务器即可。
步骤S12,响应为所述分工服务器向该互联网业务的用户发送通知消息的推送服务器触发的速度查询请求,循环执行流量调控:
当某一互联网业务需要通知用户时,其可控制推送服务器向该互联网业务的目标用户推送通知消息,刺激目标用户访问该互联网业务。
为了控制推送服务器在短时间内推送通知消息的用户数量,防止因推送服务器超量地推送通知消息,刺激访问业务的目标用户过多,导致分工服务器在有限的负载的情况下无法处理大量用户的请求,进而造成反馈时间过长或分工服务器宕机等情况出现,推送服务器在推送通知消息之前,将向流控服务器发送速度查询请求,以便流控服务器响应该速度查询请求,循环执行流量调控,控制该推送服务器的实时推送速度,控制推送服务器推送通知消息的用户数量。
所述的通知消息,一般是指某一互联网业务的用于推广或通知的消息、例如广告消息、系统升级消息、安全提示消息等。一般情况下,当用户接收到由推送服务器发送的所述通知消息时,该通知消息可以弹窗的形式显示在该用户的用户图形界面中,本领域技术人员可灵活设计通知消息在用户的用户图形界面中的可视化显示,恕不赘述。
所述通知消息可由推送服务器根据相应互联网业务的相应环节的分工服务器发送的信息自动生成,或者由分工服务器根据互联网业务相应的信息自动生成并发送至推送服务器中,当然也可以是预先编写的信息,本技术领域人员可根据实际应用环境灵活设计如何生成所述通知消息,只要其可由推送服务器进行推送,并可显示在用户的图形用户界面中即可。
所述的流量调控,是指流控服务器为某一互联网业务负责推送通知消息的推送服务器调控实时推送速度的过程。流控服务器根据同一互联网业务的所有分工服务器的负载信息,统计该互联网业务所有分工服务器的总负载率,以便对为该互联网业务推送通知消息的推送服务器的推送速度进行调控。且流控服务器将循环执行所述流量调控,持续地将执行流量调控所确定的推送速度发送至该推送服务器中,动态调控推送服务器推送通知消息的推送速度。
一种实施例中,关于流控服务器循环执行流量调控的触发机制,可按照预先设置的预设定时触发,例如当预设定时为5分钟时,流控服务器响应于推送服务器的速度查询请求后,将每5分钟执行一次所述流量调控,控制该推送服务器的推送速度;推送服务器也可定时地向流控服务器发送所述速度查询请求,以定时触发流控服务器执行所述流量调控,构建一种由推送服务器定时决定的流控服务器循环执行流量调控机制。
步骤S13,执行流量调控过程中,依据所述负载信息统计出所有分工服务器的总负载率:
响应负责为某一互联网业务推送通知消息的推送服务器发送的速度查询请求,根据该互联网业务所包含的一个或多个分工服务器的负载信息,统计出该互联网业务的所有分工服务器的总负载率。
一种实施例中,请参考图3,关于流控服务器依据同一互联网业务的所有分工服务器的负载信息,统计出该互联网业务的所有分工服务器的总负载率的具体实施步骤如下:
步骤S131,从所述负载信息中获取单位统计时间内各个分工服务器的负载量及其CPU数量:
响应于为某一互联网业务推送通知消息的推送服务器发送的速度查询请求,解析该互联网业务中所有的分工服务器的负载信息,获取该互联网业务中所有分工服务器负载信息中的负载量及CPU数量。
所述的负载量,一般是指load average,即一段时间内的平均负载(load),在所述流量调控的计算公式中计算符号为LA。
所述的CPU数量,一般是指分工服务器的总CPU数量,在所述流量调控的计算公式中计算符号为C。
步骤S132,计算出各个分工服务器的单元负载率,所述单元负载率为每台分工服务器的所述负载量与其CPU数量之间的比值:
通过解析同一互联网业务的各个分工服务器的负载信息,获取其负载量(LA) 及CPU数量(C),并通过计算每个分工服务器的负载量(LA)与CPU数量(C)之间的比值,确定每个服务器的单元负载率(R)。
分工服务器的单元负载率的计算公式可表示为:R=LA/C,其中R指代单元负载率,LA指代负载量,C指代为CPU数量。
步骤S133,计算出所有分工服务器的总负载率,所述总负载率由各个分工服务器的单元负载率根据其相应的预设权重加权汇总而得:
同一互联网业务中不同的分工服务器各司其职,不同分工服务器在其该互联网业务中重要性也不尽相同,因此流控服务器在计算某一互联网业务中所有分工服务器的总负载率时,将结合各个分工服务器在该互联网业务中的预设权重(W)进行计算。
计算同一互联网业务的所有分工服务器的总负载率的计算公式为: Rt=R1*W1/Wt+R2*W2/Wt+…+Rn*Wn/Wt,其中Rt指代总负载率,R1、R2…Rn分别指代各个分工服务器的单元负载率,W1、W2…Wn分别指代各个分工服务器的预设权重,Wt指代总权重,由所有分工服务器的权重值相加而得。
通过统计该互联网业务的所有分工服务器的总负载率,以便后续流量调控中,确定为该互联网业务的推送通知消息的推送服务器的实时推送速度。
可以理解,统计同一互联网业务的所有分工服务器的总负载率也可根据所述分工服务器的负载信息中的其他信息进行统计,例如,负载信息中的内存、网络流量等信息进行统计,也可以根据互联网业务的构成,将上述分工服务器的权重去除,只考虑分工服务器的单元负载率进行统计。相关的其他统计方式,可由本领域技术人员在本申请揭示的原理的基础上,根据分工服务器的负载信息及相关数据信息进行统计而构成本申请灵活实施的各种实施例,此处恕不赘述。
步骤S14,执行流量调控过程中,当所述总负载率高于预设阈值时,控制该推送服务器暂停推送所述通知消息,否则根据预设的推送策略确定实时推送速度,将该实时推送速度推送给所述推送服务器,以控制其以该实时推送速度向该互联网业务的用户推送所述的通知消息:
流控服务器通过将同一互联网业务的所有分工服务器的总负载率与预设阈值进行比较,当该总负载率高于所述预设阈值时,将向速度查询请求的推送服务器发送相应的指令,控制该推送服务器停止推送该互联网业务的通知消息,防止该互联网业务的分工服务器在总负载率不足的情况下,处理接收到该通知消息的用户的反馈请求,使得分工服务器超载,导致分工服务器出现宕机的现象。
所述的预设阈值,一般是根据互联网业务的所有分工服务器所能承受的负责范围进行设置,用于与该互联网业务的总负载率进行比较,判断推送服务器是否进行推送及确定推送服务器的实时推送速度。
当该互联网业务的所有分工服务器的总负载率低于所述预设阈值时,流控服务器将根据预设的推送策略确定实时推送速度,并将该实时推送速度推送给所述速度查询请求所属的推送服务器,以便控制该推送服务器以该实时推送速度向该互联网业务的用户推送所述的通知消息。
流控服务器根据所述推送策略,先将预设的原实时推送速度发送至所述推送服务器,以便推送服务器依据原实时推送速度开始为其所负责的互联网业务推送通知消息至用户中。
所述的原实时推送速度,流控服务器可根据互联网业务的分工服务器的总负载率自动生成,也由开发人员预先进行设置,本技术领域人员可灵活设计,恕不赘述。
一种实施例中,根据所述推送策略,计算当前所述互联网业务的所有分工服务器的总负载率,即初始总负载率Rta,并将Rta与预设阈值进行比较。
当Rta大于等于预设阈值时,将向速度查询请求的推送服务器发送相应的指令,控制该推送服务器停止推送该互联网业务的通知消息。
当Rta小于预设阈值时,在完成第一次循环后,计算在推送服务器推送通知消息的第一次循环中该互联网业务的所有分工服务器的总负载率Rtb,并将 Rtb与预设阈值进行比较。
当Rtb大于等于预设阈值时,将向速度查询请求的推送服务器发送相应的指令,控制该推送服务器停止推送该互联网业务的通知消息。
当Rtb小于预设阈值时,将向推送服务器发送原推实时送速度,并执行第二次循环。在完成第二次循环后,计算在推送服务器推送通知消息在第二次循环中该互联网业务的所有分工服务器的总负载率Rtc,并将Rtc与预设阈值进行比较。
当Rtc大于等于预设阈值时,将向速度查询请求的推送服务器发送相应的指令,控制该推送服务器停止推送该互联网业务的通知消息。
当Rtc小于预设阈值时,根据初始总负载率Rta、第一次循环总负载率Rtb,第二次循环总负载率Rtc,计算第一次循环推送服务器的推送总量,具体计算方式为:(Rtb-Rta)/(Rtc-Rta),且同时计算出第二次循环推送服务器的推送总量,具体计算方式为:(Rtc-Rtb)/(Rtc-Rta),之后将第一次循环推送服务器的推送总量与第二次循环推送服务器的推送总量进行比较。
当第一次循环推送服务器的推送总量大于第二次循环推送服务器时,表示该互联网业务的所有分工服务器有空闲的计算资源进行处理,此时,流控服务器将所述实时推送速度增大,并发送至推送服务器中,以控制该推送服务器推送通知消息的用户数加大。
当第一次循环推送服务器的推送总量小于第二次循环推送服务器时,表示该互联网业务的所有分工服务器的负载压力增加,此时,流控服务器将所述实时推送速度减少,并发送至推送服务器中,以控制该推送服务器推送通知消息的用户数减少。
推送服务器执行所述推送策略的过程中,也可只考虑当前互联网业务的所有分工服务器的总负载率与预设阈值的比值,而不考虑前后循环之间的推送总量的比较,当总负载率大于预设阈值时,停止推送服务器推送通知消息,当总负载率小于预设阈值时,开发推送服务器推送通知消息,即所述实时推送速度只要于触发推送服务器是否执行推送,推送服务器推送的用户数量可预先进行设置。
以上的典型实施例及其变化实施例充分揭示了本申请的消息推送控制方法的实施方案,但是,仍可通过对一些技术手段的变换和扩增而演绎出该方法的多种变化实施例,如下概要说明其他实施例:
一种实施例中,当满足增大所述的实时推送速度的条件时,流控服务器将原实时推送速度乘以不小于2的倍数以生成新的实时推送速度,并将其发送至推送服务器中,以控制该推送服务器以新的实时推送速度进行推送通知消息。
另一种实施例中,当满足减小所述的实时推送速度的条件时,流控服务器将原实时推送速度乘以不大于80%的倍数以生成新的实时推送速度,并将其发送至推送服务器中,以控制该推送服务器以新的实时推送速度进行推送通知消息。
再一种实施例中,将上述两个实施例进行结合,限定实施推送速度的调控范围,在科学合理地范围内调控推送服务器的实施推送速度,控制推送服务器推送通知消息的用户数量。
又一种实施例中,构建一种自定义推送策略的功能。通过向流控服务器发送配置信息,以便流控服务器响应于配置信息修改请求,提取该修改请求中包含的配置信息,从所述配置信息中提取出所述的预设阈值、预设权重以及所述推送策略予以存储以供本方法调用。
进一步的,可以通过将上述的消息推送控制方法中的各个实施例进行功能化,构造出本申请的一种容器分配装置,按照这一思路,请参阅图4,其典型实施例中,该装置包括:
信息采集模块11,用于接收一个或多个分工服务器上报的负载信息,所述多个分工服务器分别服务于同一互联网业务的不同业务环节;
执行响应模块12,用于响应为所述分工服务器向该互联网业务的用户发送通知消息的推送服务器触发的速度查询请求,循环执行流量调控;
负载统计模块13,用于执行流量调控过程中,依据所述负载信息统计出所有分工服务器的总负载率;
推送执行模块14,用于执行流量调控过程中,当所述总负载率高于预设阈值时,控制该推送服务器暂停推送所述通知消息,否则根据预设的推送策略确定实时推送速度,将该实时推送速度推送给所述推送服务器,以控制其以该实时推送速度向该互联网业务的用户推送所述的通知消息。
为了便于本申请的执行,提供一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中计算机程序以执行如前述的一种消息推送控制方法的步骤。
可以看出,存储器适宜采用非易失性存储介质,通过将前述的方法实现为计算机程序,安装到手机之类电子设备中,相关程序代码和数据便被存储到电子设备的非易失性存储介质中,进一步通过电子设备的中央处理器运行该程序,将其从非易性存储介质中调入内存中运行,便可实现本申请所期望的目的。因此,可以理解,本申请的一个实施例中,还可提供一种非易失性存储介质,其以计算机可读指令的形式存储有依据所述的消息推送控制方法的各个实施例所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
综上所述,本申请可以根据分工服务器的总负载率动态控制推送服务器推送通知消息的推送速度,科学合理地协调同一互联网业务的相关分工服务器的通知消息推送节奏,通过控制通知消息推送节奏使这些分工服务器以适度的载荷处理用户请求,防止分工服务器因处理超量的用户请求,而出现负载超载的情况出现,甚至出现分工服务器宕机的现象,导致互联网业务发生崩溃。
本技术领域技术人员可以理解,本申请包涉及用于执行本申请中所述操作、方法中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其存储器之内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(ErasableProgrammable Read-Only Memory,可擦写可编程只读存储器)、EEPROM (ElectricallyErasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本申请公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种消息推送控制方法,其特征在于,包括如下步骤:
接收一个或多个分工服务器上报的负载信息,所述多个分工服务器分别服务于同一互联网业务的不同业务环节;
响应为所述分工服务器向该互联网业务的用户发送通知消息的推送服务器触发的速度查询请求,循环执行流量调控;
执行流量调控过程中,依据所述负载信息统计出所有分工服务器的总负载率;
执行流量调控过程中,当所述总负载率高于预设阈值时,控制该推送服务器暂停推送所述通知消息,否则根据预设的推送策略确定实时推送速度,将该实时推送速度推送给所述推送服务器,以控制其以该实时推送速度向该互联网业务的用户推送所述的通知消息。
2.根据权利要求1所述的方法,其特征在于,依据所述负载信息统计出所有分工服务器的总负载率的步骤,包括如下具体步骤:
从所述负载信息中获取单位统计时间内各个分工服务器的负载量及其CPU数量;
计算出各个分工服务器的单元负载率,所述单元负载率为每台分工服务器的所述负载量与其CPU数量之间的比值;
计算出所有分工服务器的总负载率,所述总负载率由各个分工服务器的单元负载率根据其相应的预设权重加权汇总而得。
3.根据权利要求1或2所述的方法,其特征在于,根据预设的推送策略确定实时推送速度的步骤中,根据所述推送策略的作用,比较所述通知消息在上一循环与更早的前一循环中的发送总量,若后者大于前者,则增大所述的实时推送速度,否则减小所述的实时推送速度。
4.根据权利要求3所述的方法,其特征在于,增大所述的实时推送速度时,将原实时推送速度乘以不小于2的倍数;减小所述的实时推送速度时,将原实时推送速度乘以不大于80%的倍数。
5.根据权利要求2所述的方法,其特征在于,其包括如下步骤:
响应于配置信息修改请求,提取该修改请求中包含的配置信息,从所述配置信息中提取出所述的预设阈值、预设权重以及所述推送策略予以存储以供本方法调用。
6.根据权利要求1所述的方法,其特征在于,所述分工服务器包括服务于同一互联网业务的如下任意一种或任意多种:应用层服务器、业务逻辑服务器、缓存服务器、数据库服务器、多媒体服务器。
7.根据权利要求1所述的方法,其特征在于,循环执行流量调控时,按照预设定时或所述速度查询事件的定时触发而循环执行。
8.一种消息推送控制装置,其特征在于,其包括:
信息采集模块,用于接收一个或多个分工服务器上报的负载信息,所述多个分工服务器分别服务于同一互联网业务的不同业务环节;
执行响应模块,用于响应为所述分工服务器向该互联网业务的用户发送通知消息的推送服务器触发的速度查询请求,循环执行流量调控;
负载统计模块,用于执行流量调控过程中,依据所述负载信息统计出所有分工服务器的总负载率;
推送执行模块,用于执行流量调控过程中,当所述总负载率高于预设阈值时,控制该推送服务器暂停推送所述通知消息,否则根据预设的推送策略确定实时推送速度,将该实时推送速度推送给所述推送服务器,以控制其以该实时推送速度向该互联网业务的用户推送所述的通知消息。
9.一种电子设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至7中任一项所述的方法的步骤。
10.一种非易失性存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至7中任意一项所述的方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011275261.6A CN112398752B (zh) | 2020-11-16 | 2020-11-16 | 消息推送控制方法及其装置、设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011275261.6A CN112398752B (zh) | 2020-11-16 | 2020-11-16 | 消息推送控制方法及其装置、设备、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112398752A true CN112398752A (zh) | 2021-02-23 |
CN112398752B CN112398752B (zh) | 2022-04-26 |
Family
ID=74600866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011275261.6A Active CN112398752B (zh) | 2020-11-16 | 2020-11-16 | 消息推送控制方法及其装置、设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112398752B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113395671A (zh) * | 2021-06-22 | 2021-09-14 | 中国农业银行股份有限公司 | 消息推送速率的调节方法、装置和服务器 |
CN113687928A (zh) * | 2021-08-03 | 2021-11-23 | 广州华多网络科技有限公司 | 消息调度控制方法及其相应的装置、设备、介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7957691B1 (en) * | 2007-11-26 | 2011-06-07 | Sprint Communications Company L.P. | Distributing content to mobile devices |
CN103563305A (zh) * | 2011-05-16 | 2014-02-05 | Sk电信有限公司 | 提供推送服务以减小网络负载的系统和方法 |
CN103580988A (zh) * | 2012-07-31 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 消息接收、推送、传输的方法、装置、服务器组及系统 |
CN103685141A (zh) * | 2012-08-31 | 2014-03-26 | 中国移动通信集团公司 | 一种推送业务的实现方法和设备 |
CN106488263A (zh) * | 2016-10-24 | 2017-03-08 | 北京小米移动软件有限公司 | 推送直播流媒体数据的方法及装置 |
CN110300050A (zh) * | 2019-05-23 | 2019-10-01 | 中国平安人寿保险股份有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
-
2020
- 2020-11-16 CN CN202011275261.6A patent/CN112398752B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7957691B1 (en) * | 2007-11-26 | 2011-06-07 | Sprint Communications Company L.P. | Distributing content to mobile devices |
CN103563305A (zh) * | 2011-05-16 | 2014-02-05 | Sk电信有限公司 | 提供推送服务以减小网络负载的系统和方法 |
CN103580988A (zh) * | 2012-07-31 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 消息接收、推送、传输的方法、装置、服务器组及系统 |
CN103685141A (zh) * | 2012-08-31 | 2014-03-26 | 中国移动通信集团公司 | 一种推送业务的实现方法和设备 |
CN106488263A (zh) * | 2016-10-24 | 2017-03-08 | 北京小米移动软件有限公司 | 推送直播流媒体数据的方法及装置 |
CN110300050A (zh) * | 2019-05-23 | 2019-10-01 | 中国平安人寿保险股份有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113395671A (zh) * | 2021-06-22 | 2021-09-14 | 中国农业银行股份有限公司 | 消息推送速率的调节方法、装置和服务器 |
CN113395671B (zh) * | 2021-06-22 | 2022-04-26 | 中国农业银行股份有限公司 | 消息推送速率的调节方法、装置和服务器 |
CN113687928A (zh) * | 2021-08-03 | 2021-11-23 | 广州华多网络科技有限公司 | 消息调度控制方法及其相应的装置、设备、介质 |
CN113687928B (zh) * | 2021-08-03 | 2024-03-22 | 广州华多网络科技有限公司 | 消息调度控制方法及其相应的装置、设备、介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112398752B (zh) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107018175B (zh) | 移动云计算平台的调度方法和装置 | |
CN112398752B (zh) | 消息推送控制方法及其装置、设备、介质 | |
CN110247856B (zh) | 服务器资源释放方法和装置 | |
CN110489447B (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN110308985B (zh) | 云专属服务器资源管理方法、装置、设备及存储介质 | |
CN109144700B (zh) | 超时时长的确定方法、装置、服务器和数据处理方法 | |
CN108540568B (zh) | 计算能力共享方法及智能设备 | |
CN109547282B (zh) | 过载保护方法、装置、计算机可读存储介质及服务器 | |
CN105656810B (zh) | 一种更新应用程序的方法及装置 | |
CN111131841A (zh) | 直播间接入方法、装置、电子设备及存储介质 | |
CN113014608B (zh) | 一种流量分发控制方法、装置、电子设备及存储介质 | |
CN111538572A (zh) | 任务处理方法、装置、调度服务器及介质 | |
CN112260962B (zh) | 一种带宽控制方法及装置 | |
CN109800085B (zh) | 资源配置的检测方法、装置、存储介质和电子设备 | |
CN106790341B (zh) | 移动Web服务应用的自适应部署方法 | |
CN112286930A (zh) | redis业务方资源共享的方法、装置、存储介质及电子设备 | |
CN115118785B (zh) | 服务器资源保护方法、装置、设备、介质和程序产品 | |
CN111475315A (zh) | 服务器及订阅通知推送控制、执行方法 | |
CN109101340B (zh) | 弹幕消息的动态分发方法、装置、设备和存储介质 | |
CN111427674A (zh) | 一种微服务管理方法、装置及系统 | |
CN113687928A (zh) | 消息调度控制方法及其相应的装置、设备、介质 | |
CN109361953B (zh) | 弹幕消息的动态分发方法、装置、设备和存储介质 | |
CN109062705B (zh) | 进程间通信的监控方法、电子装置以及可读存储介质 | |
CN117062196A (zh) | 一种支持功耗自适应的通信方法、装置、及电子设备 | |
CN116841723A (zh) | 内存的管理方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |