CN108400927B - 一种针对高并发消息的消息推送方法及装置 - Google Patents
一种针对高并发消息的消息推送方法及装置 Download PDFInfo
- Publication number
- CN108400927B CN108400927B CN201810057366.0A CN201810057366A CN108400927B CN 108400927 B CN108400927 B CN 108400927B CN 201810057366 A CN201810057366 A CN 201810057366A CN 108400927 B CN108400927 B CN 108400927B
- Authority
- CN
- China
- Prior art keywords
- message
- pusher
- pushed
- messages
- priority
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- 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
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/56—Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种针对高并发消息的消息推送方法及装置,所述方法包括获取推送者发出的推送请求;实时检测单位时间内获取到的推送请求数量,同时判断是否执行过载保护步骤;根据来源渠道,使用对应的渠道接收器接收待推送消息,并将待推送消息依序放入对应的消息队列;将消息队列中的各多个待推送消息发送到对应的目标渠道等步骤。所述装置包括存储器和处理器。本发明在面临高并发消息导致的过载时,可以有区别地向不同的消息推送请求分配系统资源,使得执行本发明的系统不会因为过载而崩溃,既能满足具有迫切推送需求的推送者,又能保护系统运营者的利益。本发明应用于互联网技术领域。
Description
技术领域
本发明涉及互联网技术领域,尤其是一种针对高并发消息的消息推送方法及装置。
背景技术
在互联网和通信领域,需要频繁地传递大量消息。手机短消息、电邮等传统通信方式,以及微信、微博和钉钉等社交APP都可以方便地发送和接收消息。每个人的使用习惯不同,其所用的通信软件也不相同,例如在流行社交APP的今天,仍有很多人习惯使用手机收发短消息。因此,不可避免地存在大量来自不同来源渠道的消息,这些消息需要被发送到不同的目标渠道。
为了实现跨渠道的消息推送,需要开发不同的接口。例如为了将微信发出的消息推送到电邮,需要通过一接口与微信对接,接收微信发出的消息,通过另一接口与电邮对接,将消息发送到电邮。但由于消息渠道很多,其两两组合的数量也极大,为了实现消息的自由传递,需要各自开发接口,工作量极其庞大,造成软件开发效率以及消息传递效率低下。
针对上述问题,市面上出现了一些消息推送平台,其预先开发与企业微信、企业钉钉、短信网关、电邮和第三方IM等主流应用程序对接的接口,然后将这些接口封装为一个统一的消息推送API,为第三方提供全终端消息通道服务,实现应用接入可配置。随着消息推送需求越来越大,来源渠道和目标渠道越来越多,消息推送平台将面临高并发消息的推送请求,也就是在同一时间内接收到大量的消息推送请求,甚至超过了消息推送平台本身的接受能力和处理能力。传统消息推送平台应对高并发消息的方法是一刀切,要么不顾自身负荷能力的限制而接受全部消息推送请求,导致系统崩溃,要么为了保证系统的安全,拒绝全部消息推送请求。传统的消息推送方法,既影响了用户体验,也不利于消息推送平台的发展。
发明内容
为了解决上述技术问题,本发明的第一目的在于提供一种针对高并发消息的消息推送方法,第二目的在于提供一种针对高并发消息的消息推送装置。
本发明所采取的第一技术方案是:
一种针对高并发消息的消息推送方法,包括:
获取推送者发出的推送请求;所述推送请求包括待推送消息、推送者身份信息、来源渠道和目标渠道;
实时检测单位时间内获取到的推送请求数量,同时判断该推送请求数量是否超过预定的第一阈值,若是,则执行过载保护步骤,然后执行下一步骤,反之,则直接执行下一步骤;
根据来源渠道,使用对应的渠道接收器接收待推送消息,并将待推送消息依序放入对应的消息队列;
将所述消息队列中存放的各多个待推送消息根据消息队列的存放顺序发送到对应的目标渠道;
其中,所述消息队列中有序地存放本次及先前放入的多个待推送消息。
进一步地,还包括将已发送的待推送消息对应的推送请求存入历史记录这一步骤。
进一步地,所述过载保护步骤,具体包括:
根据消息队列和历史记录,获取各推送者在特定时间段内所发出推送请求的总次数,从而得到各推送者的请求频率;
将请求频率超过预定的第二阈值的推送者和对应的请求频率列入临时黑名单;
拒绝被列入临时黑名单的推送者发出的推送请求。
进一步地,所述过载保护步骤,还包括:
检测消息队列中所有待推送消息对应的推送者,然后将被列入临时黑名单的推送者对应的待推送消息从消息队列中删除。
进一步地,所述临时黑名单还保存有临时黑名单中各推送者分别对应的保持时间,所述保持时间为对应的推送者从被列入临时黑名单之时起到被从临时黑名单中自动删除所经过的时间,所述保持时间根据对应的推送者的请求频率计算得到。
进一步地,所述过载保护步骤,具体包括:
从消息队列中的各待推送消息中提取与紧急程度有关的关键词,进而获得关键词所对应的消息优先级,从而得到对应推送者发出的优先级请求;
判断对应的各推送者是否具备对应消息优先级的使用额度,若是,则接受推送者的优先级请求,在对应的待推送消息标记相应的消息优先级,然后扣减推送者相应的消息优先级使用额度,反之,则拒绝推送者的优先级请求;
根据消息队列中各待推送消息的消息优先级,对消息队列进行重新排序。
进一步地,所述过载保护步骤,还包括:
在判断推送者不具备对应消息优先级的使用额度后,向该推送者发送通知消息;
获取该推送者的充值请求,然后根据充值请求,增加该推送者相应的消息优先级使用额度;
接受推送者的优先级请求,在对应的待推送消息标记相应的消息优先级,然后扣减推送者相应的消息优先级使用额度。
进一步地,所述方法在计算机系统执行,所述第一阈值根据计算机系统的性能确定。
进一步地,所述第一阈值的计算公式为:
式中,v为第一阈值,s为每条待推送消息的平均字节数,a为由计算机系统性能决定的加速系数,d为由计算机系统性能决定的衰减系数。
本发明所采取的第二技术方案是:
一种针对高并发消息的消息推送装置,包括:
存储器,用于存储至少一个程序;
处理器,用于加载所述至少一个程序以执行所述一种针对高并发消息的消息推送方法。
本发明的有益效果是:本发明在面临高并发消息导致的过载时,通过过载保护步骤,可以根据各推送者的需求以及身份,适当地拒绝部分消息推送请求而接受其他消息推送请求,或者有区别地向不同的消息推送请求分配系统资源,使得执行本发明的系统不会因为过载而崩溃,既能满足具有迫切推送需求的推送者,又能保护系统运营者的利益。本发明使用消息队列来缓冲待推送消息,可以增强系统的鲁棒性,方便对待推送消息做进一步处理以应对高并发问题。
附图说明
图1为本发明一种针对高并发消息的消息推送方法的流程图;
图2为本发明一种针对高并发消息的消息推送装置的结构框图。
具体实施方式
实施例1
本发明提供了一种针对高并发消息的消息推送方法,如图1所示,包括:
获取推送者发出的推送请求;所述推送请求包括待推送消息、推送者身份信息、来源渠道和目标渠道;
实时检测单位时间内获取到的推送请求数量,同时判断该推送请求数量是否超过预定的第一阈值,若是,则执行过载保护步骤,然后执行下一步骤,反之,则直接执行下一步骤;
根据来源渠道,使用对应的渠道接收器接收待推送消息,并将待推送消息依序放入对应的消息队列;
将所述消息队列中存放的各多个待推送消息根据消息队列的存放顺序发送到对应的目标渠道;
其中,所述消息队列中有序地存放本次及先前放入的多个待推送消息。
所述推送者可以是手机短消息、电邮以及微信、微博和钉钉等通信软件的使用者。为了实现跨渠道的消息推送,所获取到的推送者发出的推送请求,除了包括待推送消息之外,至少还包括对应的推送者身份信息、来源渠道和目标渠道,还可以包括推送请求接收时间、消息推送时间等信息。来源渠道标记待推送消息来自的渠道,例如微信或者电邮。目标渠道标记待推送消息将要发送到的渠道,以使得使用本发明消息推送方法的系统能够调用相应的接口将待推送消息发送到对应的渠道。
使用本发明消息推送方法,通过集成的消息接口和统一的消息集中处理,仅需要调用消息接口,就可以及时地完成消息的推送,减去了应用系统开发消息推送模块的工作量,避免重复开发不同渠道之间对接的接口,解决了消息发送混乱的问题。
推送者身份信息表示推送者的真实身份,对推送者身份信息的审查是检查推送者本身是否符合接入条件,可以通过登记认证机制来实现,也就是只对经过事先登记认证的推送者发出的推送请求进行响应,拒绝响应未经认证的推送者发出的推送请求。
消息队列是一种中间件,其作为一种容器可以一定的顺序存储待推送消息,既可以产生缓冲的效果,也方便对待推送消息做进一步处理。可以只设一个总的消息队列,也可以分别针对不同来源渠道或者针对不同目标渠道设置多个分消息队列,每个消息队列只存放一种具有相同来源渠道或目标渠道的待推送消息。渠道接收器可以包括用来对待推送消息进行识别和分类的程序。渠道接收器接收到的待推送消息,按照时间顺序或者设定的顺序存放到总的消息队列或者多个分消息队列中。消息队列中存放的待推送消息,可以按照先进先出、先进后出或者设定的顺序推送到目标渠道。
本发明方法在检测到系统在单位时间内获取到超过预定阈值数量的推送请求,也就是出现高并发消息后,并不是一刀切地全盘接受或者全盘拒绝所有推送请求。本发明方法首先通过过载保护步骤,根据各推送者的需求以及身份,适当地拒绝部分消息推送请求而接受其他消息推送请求,或者有区别地向不同的消息推送请求分配系统资源。在实践中,高并发消息出现时,往往不是所有的消息推送者都有推送消息的迫切需求,如果消息推送平台对所有的推送者都一视同仁地处理,那么,没有迫切需求的推送者也没有获得额外利益,但是有迫切需求的推送者,容易因为消息推送平台的处理能力不足导致消息未被及时推送,从而受到利益损失。甚至还存在恶意推送者,故意高密度地发出推送请求,占用系统资源。通过过载保护步骤,可以及时对不同的推送者作出区分。消息推送平台还可以通过过载保护步骤,有条件地为愿意支付相应对价的推送者提供优先推送处理,这样既有利于有迫切需求的推送者,又有利于消息推送平台本身。
在接受消息推送请求后,还使用消息队列作为缓冲机制,使得单位时间内推送的消息的流量可以始终保持在合适的范围。
进一步作为优选的实施方式,还包括将已发送的待推送消息对应的推送请求存入历史记录这一步骤。
使用本发明方法的系统的管理者,可以根据历史记录,对已推送的消息进行统计分析。例如可以通过报表或者统计图的形式,输出各不同时间段内消息推送的总数量以及其变化趋势,或者输出各不同时间段内来自不同来源渠道、推送到不同目标渠道的消息总数量,或者进一步地输出来自不同来源渠道的消息数量占比等信息。管理者可以根据这些统计信息,了解到消息推送的历史情况,从而对接口等参数作出调整。
进一步作为优选的实施方式,所述过载保护步骤可以使用多种方法来实现,其中包括第一种方法,包括以下步骤:
根据消息队列和历史记录,获取各推送者在特定时间段内所发出推送请求的总次数,从而得到各推送者的请求频率;
将请求频率超过预定的第二阈值的推送者和对应的请求频率列入临时黑名单;
拒绝被列入临时黑名单的推送者发出的推送请求。
第一阈值根据系统的可承受负荷而设定,在用计算机系统执行本发明方法时,第一阈值的具体数值与计算机的性能有关。实时检测单位时间内获取到的推送请求数量,也就是检测推送请求的密度,如果推送请求的密度超过了系统的可承受范围,那么就可以有针对性地拒绝某些推送者的推送请求。对消息队列和历史记录进行统计,便可以得到各推送者正在推送和已推送的消息记录,得到各推送者的请求频率。由于系统过载,系统资源紧缺,可以拒绝请求频率过高的推送者发出的新的推送请求。可以参考推送者的重要程度,针对不同的推送者分别设定不同的第二阈值,请求频率超过预定的第二阈值的推送者被列入临时黑名单,如未缴费推送者的第二阈值较低,缴费推送者的第二阈值较高。当推送者发出新的推送请求时,如果该推送者被列入了临时黑名单,那么其推送请求将被拒绝。临时黑名单中还存储有对应的请求频率,以便调取统计。
进一步作为优选的实施方式,所述过载保护步骤的第一种方法还包括:
检测消息队列中所有待推送消息对应的推送者,然后将被列入临时黑名单的推送者对应的待推送消息从消息队列中删除。
被列入临时黑名单的推送者,除了其后面发出的新的推送请求将被拒绝后,还要从消息队列中删除其待推送消息,以腾出空间来存放其他待推送消息。
进一步作为优选的实施方式,所述临时黑名单还保存有临时黑名单中各推送者分别对应的保持时间,所述保持时间为对应的推送者从被列入临时黑名单之时起到被从临时黑名单中自动删除所经过的时间,所述保持时间根据对应的推送者的请求频率计算得到。
系统过载消除后便应停止以请求频率过高为由拒绝推送者的推送请求,而临时黑名单是针对系统过载问题而设置的,因此其具有临时性。临时黑名单还保存有临时黑名单中各推送者分别对应的保持时间,从推送者从被列入临时黑名单之时起,经过对应的保持时间后,推送者便从临时黑名单中自动删除,其发出的新的推送请求将不被阻止。保持时间可以根据对应的推送者的请求频率和推送者的重要程度计算得到,计算规则可以自行设定,例如设定请求频率越高、越不重要的推送者,其保持时间越长。
进一步作为优选的实施方式,所述过载保护步骤还包括第二种方法,包括以下步骤:
实时检测单位时间内获取到的推送请求数量,并在判断该推送请求数量超过了预定的第一阈值后,继续执行下一步骤;
从消息队列中的各待推送消息提取与紧急程度有关的关键词,进而获得关键词所对应的消息优先级,从而得到对应推送者发出的优先级请求;
判断对应的各推送者是否具备对应消息优先级的使用额度,若是,则接受推送者的优先级请求,在对应的待推送消息标记相应的消息优先级,然后扣减推送者相应的消息优先级使用额度,反之,则拒绝推送者的优先级请求;
根据消息队列中各待推送消息的消息优先级,对消息队列进行重新排序。
与实现过载保护步骤的第一种方法相似,第二种方法也是判断推送请求的密度超过了系统的可承受范围后,有针对性地拒绝某些推送者的推送请求。为了区分在同一时间点上拒绝的对象和接受的对象,需要检测推送者发出的优先级请求。为了提高易用性,允许推送者在其待推送消息中加入与紧急程度有关的关键词,这些关键词可以是事先约定的、与预存关键词数据库完全对应的关键词,如“非常紧急”、“紧急”、“特急”等,从待推送消息提取到这些关键词并且在关键词数据库中找到完全对应的关键词,进而获得关键词所对应的消息优先级。也可以允许推送者以“这个非常紧急”、“请马上处理”等句式自由表达,然后通过现有的算法,将这些不统一的句式转换成对应的“非常紧急”等确定的关键词,进而获得这些句式所对应的消息优先级。可以规定“特急”的消息优先级为最高,“非常紧急”次之,“紧急”为最低。如果待推送消息中不存在这些特定的关键词或者具有紧急程度含义的句式,那么就认为对应的推送者没有发出优先级请求,将不具备消息优先级,其优先程度将低于任何具有消息优先级的待推送消息。消息优先级相同的待推送消息,可以根据时间关系进一步确定其优先程度。
为了避免推送者滥用优先级请求功能,可以根据推送者的重要程度,为不同的推送者分别设置不同的各消息优先级使用额度,如可以为推送者甲设置“特急”、“非常紧急”和“紧急”三个消息优先级的使用额度分别为每月5次、10次和20次。在检测到推送者的优先级请求后,只有在推送者具备对应消息优先级的使用额度的情况下才接受此优先级请求,否则拒绝此次优先级请求,可以视为未提出任何优先级请求,或者依级别往下安排其他优先级请求。
在过载时段,消息队列中所有的消息都因优先级请求而具备相应的消息优先级,或者因未提出优先级请求而不具备相应的消息优先级。根据消息队列中各待推送消息的消息优先级,对消息队列进行重新排序,消息优先级越高,则推送次序越靠前,消息优先级相同的可以根据推送请求接受时间来确定。
进一步作为优选的实施方式,所述过载保护步骤的第二种方法还包括:
在判断推送者不具备对应消息优先级的使用额度后,向该推送者发送通知消息;
获取该推送者的充值请求,然后根据充值请求,增加该推送者相应的消息优先级使用额度;
接受推送者的优先级请求,在对应的待推送消息标记相应的消息优先级,然后扣减推送者相应的消息优先级使用额度。
部分推送者具有优先推送消息的迫切请求,但其消息优先级使用额度用尽,如果直接拒绝其优先级请求,将使推送者的利益受损。可以在拒绝其优先级请求后及时告知,通知消息中可以包括提醒其付费充值以恢复消息优先级使用额度的内容。如果推送者愿意充值,那么根据其充值请求中所付的费用以及需要恢复的使用额度的具体数值,增加该推送者相应的消息优先级使用额度。在推送者的消息优先级使用额度可用后,接受推送者之前提出的优先级请求,按照相应的处理步骤,在对应的待推送消息标记相应的消息优先级,然后扣减推送者相应的消息优先级使用额度,并根据消息队列中各待推送消息的消息优先级,对消息队列进行重新排序。通过上述处理方式,既有利于推送者,又有利于消息推送平台的自身发展。
进一步作为优选的实施方式,所述方法在计算机系统执行,所述第一阈值根据计算机系统的性能确定。
进一步作为优选的实施方式,所述第一阈值的计算公式为:
式中,v为第一阈值,s为每条待推送消息的平均字节数,a为由计算机系统性能决定的加速系数,d为由计算机系统性能决定的衰减系数。
本发明方法在计算机系统执行时,用处理器完成对推送请求的处理,用存储器开辟的存储空间来存储消息队列,而处理器单位时间内能够处理的推送请求是有限的,存储器用于存储消息队列的空间也是有限的,这些因素影响了计算机系统单位时间内能够处理的推送请求数量,也就是限制了第一阈值的最大值。
推送请求的主体部分是待推送消息,因此对推送请求的处理实际上是对待推送消息的处理。每条待推送消息的字节数都不相同,但是大量待推送消息的平均字节数在一个稳定的范围内,可以用常数s表示。第一阈值的最大值用v表示,其表示处理器单位时间内能够获取并处理的待推送消息的条数。
在完全不考虑存储器等其他硬件的性能限制,只考虑处理器本身的性能的情况下,处理器在达到其极限处理能力时,单位时间内能够处理的待推送消息的条数为v0,但是,在实际应用中,处理器并不是一开始便能达到这个极限处理能力,一般需要经过时间t0后才能达到,这相当于处理器从处理能力为0加速到处理能力为v0,v0越大、t0越小则处理器性能越佳,处理器的性能可用加速系数表示,对于同一型号的处理器,加速系数a为常数。
由于本发明方法使用消息队列作为缓冲,用于存储消息队列的存储器存在性能限制。随着存储器中存储的待推送消息越来越多,消息队列越来越长,处理器对存储器的寻址和读写将越来越慢,这将阻碍处理器处理能力的加速,也就是阻碍加速系数a发挥作用。处理器对待推送消息处理速度越快,加速系数a所受阻碍越大,这一阻碍效果可用衰减系数d表示,衰减系数d与推送消息处理速度v的乘积dv为处理器因此损失的单位时间内可处理字节数。
由上式可知,即使存在存储器的性能限制,处理器单位时间内能够处理的待发送消息条数仍然是随时间增加的,且经过足够长时间后便稳定在所求得的v是在计算机系统性能限制下第一阈值能够取得的最大值,第一阈值取此值时可以达到最优效果。
实施例2
本发明一种针对高并发消息的消息推送装置,如图2所示,包括:
存储器,用于存储至少一个程序;
处理器,用于加载所述至少一个程序以执行实施例1所述一种针对高并发消息的消息推送方法。
本发明装置可执行本发明实施例1所提供的一种针对高并发消息的消息推送方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。
以上是对本发明的较佳实施进行了具体说明,但对本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (7)
1.一种针对高并发消息的消息推送方法,其特征在于,包括:
获取推送者发出的推送请求;所述推送请求包括待推送消息、推送者身份信息、来源渠道和目标渠道;
实时检测单位时间内获取到的推送请求数量,同时判断该推送请求数量是否超过预定的第一阈值,若是,则执行过载保护步骤,然后执行下一步骤,反之,则直接执行下一步骤;
根据来源渠道,使用对应的渠道接收器接收待推送消息,并将待推送消息依序放入对应的消息队列;
将所述消息队列中存放的各多个待推送消息根据消息队列的存放顺序发送到对应的目标渠道;
其中,所述消息队列中有序地存放本次及先前放入的多个待推送消息;
将已发送的待推送消息对应的推送请求存入历史记录;
所述过载保护步骤,包括:
根据消息队列和历史记录,获取各推送者在特定时间段内所发出推送请求的总次数,从而得到各推送者的请求频率;
将请求频率超过预定的第二阈值的推送者和对应的请求频率列入临时黑名单;
拒绝被列入临时黑名单的推送者发出的推送请求;
或者,所述过载保护步骤,包括:
从消息队列中的各待推送消息中提取与紧急程度有关的关键词,进而获得关键词所对应的消息优先级,从而得到对应推送者发出的优先级请求;
判断对应的各推送者是否具备对应消息优先级的使用额度,若是,则接受推送者的优先级请求,在对应的待推送消息标记相应的消息优先级,然后扣减推送者相应的消息优先级使用额度,反之,则拒绝推送者的优先级请求;
根据消息队列中各待推送消息的消息优先级,对消息队列进行重新排序。
2.根据权利要求1所述的一种针对高并发消息的消息推送方法,其特征在于,所述过载保护步骤,还包括:
检测消息队列中所有待推送消息对应的推送者,然后将被列入临时黑名单的推送者对应的待推送消息从消息队列中删除。
3.根据权利要求1或2所述的一种针对高并发消息的消息推送方法,其特征在于,所述临时黑名单还保存有临时黑名单中各推送者分别对应的保持时间,所述保持时间为对应的推送者从被列入临时黑名单之时起到被从临时黑名单中自动删除所经过的时间,所述保持时间根据对应的推送者的请求频率计算得到。
4.根据权利要求1所述的一种针对高并发消息的消息推送方法,其特征在于,所述过载保护步骤,还包括:
在判断推送者不具备对应消息优先级的使用额度后,向该推送者发送通知消息;
获取该推送者的充值请求,然后根据充值请求,增加该推送者相应的消息优先级使用额度;
接受推送者的优先级请求,在对应的待推送消息标记相应的消息优先级,然后扣减推送者相应的消息优先级使用额度。
5.根据权利要求1或2所述的一种针对高并发消息的消息推送方法,其特征在于,所述方法在计算机系统执行,所述第一阈值根据计算机系统的性能确定。
7.一种针对高并发消息的消息推送装置,其特征在于,包括:
存储器,用于存储至少一个程序;
处理器,用于加载所述至少一个程序以执行权利要求1-6任一项所述一种针对高并发消息的消息推送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810057366.0A CN108400927B (zh) | 2018-01-22 | 2018-01-22 | 一种针对高并发消息的消息推送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810057366.0A CN108400927B (zh) | 2018-01-22 | 2018-01-22 | 一种针对高并发消息的消息推送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108400927A CN108400927A (zh) | 2018-08-14 |
CN108400927B true CN108400927B (zh) | 2021-01-26 |
Family
ID=63094054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810057366.0A Active CN108400927B (zh) | 2018-01-22 | 2018-01-22 | 一种针对高并发消息的消息推送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108400927B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108900642A (zh) * | 2018-08-16 | 2018-11-27 | 安徽云才信息技术有限公司 | 一种完全由服务端控制的消息推送方法 |
CN109474542B (zh) * | 2018-10-24 | 2022-05-13 | 平安科技(深圳)有限公司 | 基于业务规则的消息推送请求流量控制方法、装置及介质 |
CN109450805A (zh) * | 2018-10-31 | 2019-03-08 | 百度在线网络技术(北京)有限公司 | 消息推送方法、装置以及系统 |
CN111131368A (zh) * | 2018-11-01 | 2020-05-08 | 中国移动通信集团浙江有限公司 | 消息推送方法和装置 |
CN110365772A (zh) * | 2019-07-16 | 2019-10-22 | 中国农业银行股份有限公司 | 消息推送方法及装置 |
CN111083037B (zh) * | 2019-10-22 | 2022-02-01 | 贝壳技术有限公司 | 用于实现即时通讯的方法、装置、介质以及电子设备 |
CN111245900B (zh) * | 2019-12-31 | 2021-09-14 | 北京健康之家科技有限公司 | 一种分布式消息发送的处理系统及其处理方法 |
WO2021162686A1 (en) | 2020-02-12 | 2021-08-19 | Google Llc | Notification throttling |
CN112559154B (zh) * | 2020-12-23 | 2024-05-24 | 平安银行股份有限公司 | 消息发送量增长的优化方法、系统、设备及可读存储介质 |
CN114003327A (zh) * | 2021-10-29 | 2022-02-01 | 北京达佳互联信息技术有限公司 | 一种消息推送方法、装置、终端及存储介质 |
CN114697281B (zh) * | 2022-02-28 | 2024-03-22 | 青岛海尔科技有限公司 | 文本消息的处理方法及装置、存储介质、电子装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1867106A (zh) * | 2006-06-12 | 2006-11-22 | 北京立通无限科技有限公司 | 一种可定制邮件推送系统及方法 |
CN101510220A (zh) * | 2009-03-27 | 2009-08-19 | 阿里巴巴集团控股有限公司 | 一种向用户端推送浮出页面的方法、装置及系统 |
CN103856392A (zh) * | 2013-06-26 | 2014-06-11 | 携程计算机技术(上海)有限公司 | 消息推送方法及其外发服务器和外发服务器系统 |
CN104104591A (zh) * | 2014-08-06 | 2014-10-15 | 携程计算机技术(上海)有限公司 | 消息推送方法及系统 |
CN105282227A (zh) * | 2015-09-06 | 2016-01-27 | 浪潮软件股份有限公司 | 一种高效率、高稳定性的页面实时数据刷新方法 |
CN105511876A (zh) * | 2015-12-04 | 2016-04-20 | 广东欧珀移动通信有限公司 | 一种推送信息的处理方法及装置 |
CN105610856A (zh) * | 2016-01-26 | 2016-05-25 | 深圳一卡易网络科技有限公司 | 一种基于多重特征识别的应用层DDoS攻击防御系统 |
CN105657069A (zh) * | 2016-03-29 | 2016-06-08 | 腾讯科技(深圳)有限公司 | 一种消息推送方法和装置 |
CN106453593A (zh) * | 2016-10-26 | 2017-02-22 | 腾讯科技(深圳)有限公司 | 一种消息推送方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130067013A1 (en) * | 2010-05-25 | 2013-03-14 | Emoze Ltd | Message synchronization |
-
2018
- 2018-01-22 CN CN201810057366.0A patent/CN108400927B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1867106A (zh) * | 2006-06-12 | 2006-11-22 | 北京立通无限科技有限公司 | 一种可定制邮件推送系统及方法 |
CN101510220A (zh) * | 2009-03-27 | 2009-08-19 | 阿里巴巴集团控股有限公司 | 一种向用户端推送浮出页面的方法、装置及系统 |
CN103856392A (zh) * | 2013-06-26 | 2014-06-11 | 携程计算机技术(上海)有限公司 | 消息推送方法及其外发服务器和外发服务器系统 |
CN104104591A (zh) * | 2014-08-06 | 2014-10-15 | 携程计算机技术(上海)有限公司 | 消息推送方法及系统 |
CN105282227A (zh) * | 2015-09-06 | 2016-01-27 | 浪潮软件股份有限公司 | 一种高效率、高稳定性的页面实时数据刷新方法 |
CN105511876A (zh) * | 2015-12-04 | 2016-04-20 | 广东欧珀移动通信有限公司 | 一种推送信息的处理方法及装置 |
CN105610856A (zh) * | 2016-01-26 | 2016-05-25 | 深圳一卡易网络科技有限公司 | 一种基于多重特征识别的应用层DDoS攻击防御系统 |
CN105657069A (zh) * | 2016-03-29 | 2016-06-08 | 腾讯科技(深圳)有限公司 | 一种消息推送方法和装置 |
CN106453593A (zh) * | 2016-10-26 | 2017-02-22 | 腾讯科技(深圳)有限公司 | 一种消息推送方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108400927A (zh) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108400927B (zh) | 一种针对高并发消息的消息推送方法及装置 | |
US10541957B2 (en) | Using e-mail message characteristics for prioritization | |
WO2019128535A1 (zh) | 消息管理方法、设备及存储介质 | |
CN108347374B (zh) | 一种阻止非法消息的消息推送方法及装置 | |
US9141447B2 (en) | Conditional deferred queuing | |
US20120278513A1 (en) | Priority scheduling for multi-channel context aware communication technology | |
US9853927B2 (en) | Enforcing resource quota in mail transfer agent within multi-tenant environment | |
CN111221638B (zh) | 并发任务的调度处理方法、装置、设备和介质 | |
CN111488135A (zh) | 高并发系统的限流方法、装置、存储介质及设备 | |
WO2019157779A1 (zh) | 一种来电处理方法、电子装置及计算机可读存储介质 | |
CN111526081B (zh) | 邮件转发方法、装置、设备及存储介质 | |
CN111988478A (zh) | 一种呼入管理方法、装置、服务器及存储介质 | |
JP4138518B2 (ja) | メール管理方法、プログラム及び装置 | |
CN108830724B (zh) | 一种资源数据包处理方法及终端设备 | |
CN114443246B (zh) | 智能调度方法、装置、设备及计算机可读存储介质 | |
CN113961334B (zh) | 一种任务处理方法、装置、设备及存储介质 | |
CN116226178A (zh) | 一种数据查询方法、装置、存储介质及电子装置 | |
CN112181672B (zh) | 区块链数据的处理方法、区块链系统及计算机存储介质 | |
CN113368494A (zh) | 云设备分配方法、装置、电子设备及存储介质 | |
US20140025730A1 (en) | Managing concurrent conversations over a communications link between a client computer and a server computer | |
CN108966160B (zh) | 一种短信处理方法、装置及计算机可读存储介质 | |
CN109660452B (zh) | 一种垃圾邮件源检测方法及装置 | |
JP5482583B2 (ja) | メールサーバ装置及び電子メール処理方法 | |
CN112330240B (zh) | 快递柜管理方法、装置、设备及计算机可读存储介质 | |
CN110647757A (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 |