CN104660718A - 一种消息推送方法、装置及推送服务器 - Google Patents
一种消息推送方法、装置及推送服务器 Download PDFInfo
- Publication number
- CN104660718A CN104660718A CN201510119041.7A CN201510119041A CN104660718A CN 104660718 A CN104660718 A CN 104660718A CN 201510119041 A CN201510119041 A CN 201510119041A CN 104660718 A CN104660718 A CN 104660718A
- Authority
- CN
- China
- Prior art keywords
- link
- packet
- time
- pushes
- push
- 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
Classifications
-
- 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
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种消息推送方法、装置及推送服务器,其中方法包括:在进行消息推送的过程中,确定推送服务器的第一链路在上一推送周期所对应的数据包推送数量及时间,所述第一链路为所述推送服务器的任一链路;根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量;控制所述第一链路在下一推送周期,推送与调整后的所述数据包数量对应的数据包。本发明达到了减少数据包丢包,降低推送延迟,提高推送质量的目的。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种消息推送方法、装置及推送服务器。
背景技术
消息推送是指消息通过推送服务器经网络送达用户设备的消息传递方式,包括用户消息的点对点推送(如一个用户设备通过推送服务器向另一用户设备推送消息等)、用户消息的群发推送(如一个用户设备通过推送服务器向多个用户设备推送消息等)、离线服务消息的群发推送等(推送服务器向多个用户设备推送AAP服务提供方设置的离线消息等,如AAP更新消息的推送等);消息推送过程中,消息主要以数据包的方式进行推送。
随着智能操作系统(如安卓、IOS等)的发展,通过第三方推送服务进行消息推送的方式越来越常见,例如,采用信鸽,QQ等第三方推送服务应用进行消息推送;在通过第三方推送服务进行消息推送时,第三方推送服务器可获取需要推送消息的用户设备或APP服务提供方推送的消息,再将该信息通过第三方推送服务器的数据链路,推送至安装有第三方推送服务应用的用户设备。
本发明的发明人研究发现,目前的消息推送方法主要为:在推送消息时,推送服务器以固定的推送速率进行数据包的推送,并尽量多的推送数据包;这种消息推送方法没有考虑推送服务器链路的当前质量,无论推送服务器的链路质量情况如何变化,均是尽量多的推送数据包,这将导致质量差的链路仍然要推送比较多的数据包的情况发生,带来数据包丢包严重、推送延迟较高,推送质量较差的问题。
发明内容
有鉴于此,本发明实施例提供一种消息推送方法、装置及推送服务器,以解决现有技术无论推送服务器的链路质量情况如何变化,均是尽量多的推送数据包的方式,所存在的数据包丢包严重、推送延迟较高,推送质量较差的问题。
为实现上述目的,本发明实施例提供如下技术方案:
一种消息推送方法,包括:
在进行消息推送的过程中,确定推送服务器的第一链路在上一推送周期所对应的数据包推送数量及时间,所述第一链路为所述推送服务器的任一链路;
根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量;
控制所述第一链路在下一推送周期,推送与调整后的所述数据包数量对应的数据包。
本发明实施例还提供一种消息推送装置,包括:
上一推送信息确定模块,用于在进行消息推送的过程中,确定推送服务器的第一链路在上一推送周期所对应的数据包推送数量及时间,所述第一链路为所述推送服务器的任一链路;
调整模块,用于根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量;
下一推送控制模块,用于控制所述第一链路在下一推送周期,推送与调整后的所述数据包数量对应的数据包。
本发明实施例还提供一种推送服务器,包括上述所述的消息推送装置。
基于上述技术方案,本发明实施例提供的消息推送方法中,通过反映链路的质量情况的上一推送周期所对应的数据包推送数量及时间,对推送服务器在下一推送周期所推送的数据包数量进行调整,可实现链路质量变差时,链路在下一推送周期所推送的数据包的数量减少,达到减少数据包丢包,降低推送延迟,提高推送质量的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的消息推送系统的结构框图;
图2为本发明实施例提供的消息推送方法的流程图;
图3为本发明实施例提供的消息推送方法的另一流程图;
图4为本发明实施例提供的消息推送方法的再一流程图;
图5为本发明实施例提供的消息推送方法的又一流程图;
图6为本发明实施例提供的消息推送装置的结构框图;
图7为本发明实施例提供的上一推送信息确定模块的结构框图;
图8为本发明实施例提供的调整模块的结构框图;
图9为本发明实施例提供的调整模块的另一结构框图;
图10为本发明实施例提供的调整模块的再一结构框图;
图11为本发明实施例提供的上一推送信息确定模块的另一结构框图;
图12为本发明实施例提供的调整模块的又一结构框图;
图13为本发明实施例提供的消息推送装置的另一结构框图;
图14为本发明实施例提供的推送服务器的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的消息推送系统的结构框图,参照图1,该消息推送系统可以包括:推送服务器10和目标设备20,目标设备20为推送消息的接收方;
在本发明实施例中,推送服务器10可以获取用户设备发送的推送消息,将该推送消息推送至目标设备20;推送服务器10还可获取AAP服务提供方设置的离线消息(该离线消息可由消息生成服务器生成后,由推送服务器10从消息生成服务器中分批次获取),将该离线消息推送至目标设备20;
值得注意的是,推送服务器10可通过推送网络将消息推送至目标设备20;推送网络主要根据目标设备20所支持的操作系统的不同而调整,如目标设备20支持安卓操作系统,则推送网络可以互联网,移动通信网络等;如目标设备20支持IOS操作系统,则推送网络可以为APNS(Apple Push NotificationService,苹果推送通知服务)等;
推送服务器10具有多条链路,该多条链路均可进行消息推送。
上述消息推送系统中,消息推送方法的实现方式可以如下:
推送服务器10可用于,在进行消息推送的过程中,确定推送服务器的第一链路在上一推送周期所对应的数据包推送数量及时间,所述第一链路为所述推送服务器的任一链路,根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量,控制所述第一链路在下一推送周期,推送与调整后的所述数据包数量对应的数据包;
目标设备20可用于,接收推送服务器10通过第一链路所推送的数据包。
可选的,推送服务器可以为第三方推送服务器,为第三方推送服务提供服务,如信鸽、QQ推送服务器等;目标设备20可以为装载有第三方推送服务的用户设备,如装载有信鸽、QQ等第三方推送服务的手机、平板电脑等。
本发明实施例中,推送服务器在下一推送周期所推送的数据包数量,是根据上一推送周期所对应的数据包推送数量及时间进行调整的,而上一推送周期所对应的数据包推送数量及时间反映了链路的质量情况,一般情况下,链路质量高时,通过所述数量及时间所计算的上一推送周期所对应的数据包推送速率也将处于较高状态,链路质量低时,上一推送周期所对应的数据包推送速率将处于较低状态;通过反映链路的质量情况的上一推送周期所对应的数据包推送数量及时间,对推送服务器在下一推送周期所推送的数据包数量进行调整,可实现链路质量变差时,链路在下一推送周期所推送的数据包的数量减少,达到减少数据包丢包,降低推送延迟,提高推送质量的目的。
图2为本发明实施例提供的消息推送方法的流程图,该方法可应用于推送服务器,参照图2,该方法可以包括:
步骤S100、在进行消息推送的过程中,确定推送服务器的第一链路在上一推送周期所对应的数据包推送数量及时间,所述第一链路为所述推送服务器的任一链路;
推送服务器推送消息的场景可以为推送服务器分批次获取消息的数据包,将数据包推送至目标设备;也可以是接收用户设备推送的消息的数据包后,将该数据包推送至目标设备;
可选的,一个推送周期可以为推送一次获取的数据包的任务时间(对应推送服务器分批次获取数据包的情况),若推送服务器分多次获取数据包,则对应有多个推送周期;一个推送周期也可以是一个设定的时间段,若推送服务器在持续、平滑(无瞬间推送访问过高的情况)的进行消息推送,则可以设定的时间段,将推送时间分为若干段设定的时间段,得到多个推送周期;
第一链路为图1所示推送服务器所具有的多条链路中的任一条链路,即对于推送服务器的各链路,均可通过图2所示方法实现消息推送。
步骤S110、根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量;
可选的,对于根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量的具体策略,本发明实施例可视推送服务器推送消息的场景情况进行划分,下文将作详细描述。
可选的,本发明实施例可根据所述上一推送周期所对应的数据包推送数量及时间,计算第一链路在上一推送周期内所对应的数据包推送速率;若上一推送周期所对应的数据包推送速率太低,如低于设定的推送下限速率,难以继续推送数据包,则本发明实施例可屏蔽第一链路,调整第一链路在下一推送周期所推送的数据包数量为零。推送速率的计算方式较为常见,主要根据推送周期的时间,和推送的数据包数量得出,本发明实施例不作详细描述。
值得注意的是,上一推送周期为已发生的推送时间区间,下一推送周期为将到来的推送时间区间。
步骤S120、控制所述第一链路在下一推送周期,推送与调整后的所述数据包数量对应的数据包。
本发明实施例提供的消息推送方法中,通过反映链路的质量情况的上一推送周期所对应的数据包推送数量及时间,对推送服务器在下一推送周期所推送的数据包数量进行调整,可实现链路质量变差时,链路在下一推送周期所推送的数据包的数量减少,达到减少数据包丢包,降低推送延迟的目的。
可选的,在进行消息推送的过程中,推送服务器可分批次获取所述消息的数据包,一次获取若干数量的数据包;如消息生成服务器生成消息后,推送服务器可分任务批次进行数据包的拉取,一次拉取若干数量的数据包进行推送;则一个所述推送周期为,所述第一链路推送所述推送服务器一次获取的数据包的时间。对应的,图3示出了本发明实施例提供的消息推送方法的另一流程图,参照图3,该方法可以包括:
步骤S200、在进行消息推送的过程中,推送服务器分批次获取所述消息的数据包,一次获取若干数量的数据包;
对应的,一个推送周期为,第一链路推送所述推送服务器一次获取的数据包的时间。
步骤S210、确定所述推送服务器上一次获取的数据包的数量,及第一链路推送所述数量的数据包的时间,所述第一链路为所述推送服务器的任一链路;
第一链路推送所述数量的数据包的时间即为上一推送周期的时间。
步骤S220、根据所述数量和时间,调整所述推送服务器下一次所获取的数据包的数量;
推送服务器下一次所获取的数据包的数量,即为第一链路下一次所需要推送的数据包数量;根据所述数量和时间,调整所述推送服务器下一次所获取的数据包的数量的策略如下:
策略一:可选的,本发明实施例可设第一链路上一次推送数据包的数量为M个(即推送服务器上一次获取的数据包的数量),耗时为B秒,下一次推送数据包的时间区间最大值为A秒(下一次推送数据包的计划时间);则下一次推送数据包的数量可以定义为T(推送服务器下一次获取的数据包的数量),且T=(1-B/Ai)*M,i=1-N的整数,i的取值具体可视实际应用情况而设定;
以i=2为例,则T=(1-B/A2)*M;若B较大,随着B的增加,则在推送速率保持不变的情况下,下一次推送数据包的数量降低;若B超出A太多,假设为B=A*A,则表示链路推送速率太慢,即上一次推送所述推送服务器所获取的数据包的速率低于推送下限速率,则第一链路将被屏蔽,第一链路下一次推送数据包的数量降为零;若B较小,随着B的减小,则在推送速率保持不变的情况下,下一次推送数据包的数量提高。
策略二:可选的,本发明实施例也可根据推送服务器上一次获取的数据包的数量,及所述第一链路推送所述数量的数据包的时间,计算所述第一链路上一次推送所述推送服务器所获取的数据包的速率;确定第一链路下一次推送所述推送服务器所获取的数据包的时间区间最大值;根据所述时间区间最大值及所述第一链路上一次推送所述推送服务器所获取的数据包的速率,确定所述第一链路在所述时间区间最大值内的可推送数据包数量,所述可推送数据包数量为第一链路下一次所推送的数据包数量;
显然,本发明实施例对于此种策略,可设置推送下限速率,若第一链路上一次推送所述推送服务器所获取的数据包的速率低于该推送下限速率,则本发明实施例可屏蔽第一链路。
步骤S230、控制所述第一链路在下一推送周期,推送与调整后的所述数据包数量对应的数据包。
无论是采用上述哪种策略,本发明实施例可以所确定的所述第一链路下一次所推送的数据包数量,获取对应数量的数据包,控制所述第一链路下一次推送对应数量的数据包。
可选的,本发明实施例还可根据用户反馈调整所述第一链路在下一推送周期所推送的数据包数量;图4示出了本发明实施例提供的消息推送方法的再一流程图,参照图4,该方法可以包括:
步骤S300、在进行消息推送的过程中,推送服务器分批次获取所述消息的数据包,一次获取若干数量的数据包;
步骤S310、确定所述推送服务器上一次获取的数据包的数量,及第一链路推送所述数量的数据包的时间;根据所述时间和所述数量,计算所述第一链路上一次推送所述推送服务器所获取的数据包的速率,所述第一链路为所述推送服务器的任一链路;
步骤S320、确定用户设备接收数据包的速率;
在本发明实施例中,推送服务器分任务批次拉取消息生成服务器生成的消息进行推送,在推送过程中,有可能出现数据包丢弃的情况(包括APNS丢弃和用户主动丢弃等),本发明实施例可通过检测众多用户设备单位时间所接收的数据包数量,确定推送过程中被丢弃的数据包;
步骤S330、若所述第一链路上一次推送所述推送服务器所获取的数据包的速率,大于用户设备接收数据包的速率,且差值符合预定条件,则降低第一链路在下一次所推送的数据包数量;
由于存在数据包丢弃,第一链路单位时间内推送的数据包数量,必然大于用户设备单位数据内接收的数据包数量;若两者的差值较大且符合预定条件,则可知数据包丢弃严重,第一链路推送再多的数据包也将大部分被丢弃,因此可降低第一链路在下一推送周期所推送的数据包数量,以提升数据包的有效推送;预定条件可视所支持的操作系统情况设定。
步骤S340、以所降低的所述第一链路在下一次所推送的数据包数量,获取对应数量的数据包,控制所述第一链路下一次推送对应数量的数据包。
可选的,在进行消息推送的过程中,推送服务器可将用户设备推送至推送服务器的消息,推送至目标设备;对应的,本发明实施例可设定时间段,一个所述推送周期即为一个设定的时间段,推送服务器在若干设定时间段组成的时间区间内,对用户设备推送至推送服务器的消息进行平滑推送。对应的,图5示出了本发明实施例提供的消息推送方法的又一流程图,参照图5,该方法可以包括:
步骤S400、在进行消息推送的过程中,确定上一设定的时间段内,第一链路推送的数据包的数量;
步骤S410、根据所述数量与所述设定的时间段,计算所述第一链路在上一设定的时间段内推送数据包的速率;
步骤S420、若所述第一链路在上一设定的时间段内推送数据包的速率,高于设定的正常数据包推送速率,则提高所述第一链路在下一设定的时间段内的数据包推送数量;
可选的,若第一链路在上一设定时间段内推送数据包的速率,高于设定的正常数据包推送速率,则说明当前的链路质量较好;由于推送服务器在推送用户设备推送的消息的情况下,一般推送访问表现的较为平滑,不会出现推送离线消息所出现的推送访问在瞬间爆发的情况,因此本发明实施例可在第一链路在上一设定时间段内推送数据包的速率,高于设定的正常数据包推送速率时,提升推送速率(即提高所述第一链路在下一设定时间段内的数据包推送数量);本发明实施例还可设置推送上限速率,所提升的推送速率不应大于推送上限速率;
显然,若在提高速率后,下一设定的时间段内实际的数据包推送速率反而减小,则本发明实施例还可再降低速率,通过如此反复操作,使得推送数据包的速率,在高于设定的正常数据包推送速率时,能够使得推送数据包的速率尽量的最大化优化;
可选的,若第一链路在上一设定时间段内推送数据包的速率,低于设定推送下限速率,则本发明实施例可对所述第一链路进行屏蔽;若第一链路在上一设定时间段内推送数据包的速率,介于推送下限速率与正常数据包推送速率之间,则本发明实施例可保持推送速率不变,或在下一设定的时间段降低推送速率,以减少丢包和延迟情况。
步骤S430、控制所述第一链路在下一设定的时间段内,推送与调整后的所述数据包数量对应的数据包。
可选的,对于要求推送速率的推送请求而言,若第一链路当前的推送速率不满足所要求的推送速率,则本发明实施例可将推送消息转发至其他的链路进行推送。进一步,本发明实施例在确定了上一推送周期所对应的数据包推送数量及时间后,可根据所述时间和所述数量,计算所述第一链路上一次推送所述推送服务器所获取的数据包的速率;并确定推送消息中携带的推送请求对应的请求速率范围,若所计算的数据包推送速率未处于所述请求速率范围内,则将推送消息转发至其他链路进行推送;
其他链路可以是其他的任一链路(若转发至的链路还不满足所要求的推送速率,则再转发给其他链路,直至推送消息转发至满足所要求的推送速率的链路);
可选的,本发明实施例还可设置速率监控服务器,对推送服务器的各条链路的速率进行监控,通过速率监控服务器作为推送消息的转发桥梁,可使得推送消息准确转发至推送速率满足所要求的推送速率的链路。
本发明实施例提供的消息推送方法中,通过反映链路的质量情况的上一推送周期所对应的数据包推送数量及时间,对推送服务器在下一推送周期所推送的数据包数量进行调整,可实现链路质量变差时,链路在下一推送周期所推送的数据包的数量减少,达到减少数据包丢包,降低推送延迟,提高推送质量的目的。
下面对本发明实施例提供的消息推送装置进行介绍,下文描述的消息推送装置可与上文描述的消息推送方法相互对应参照。
图6为本发明实施例提供的消息推送装置的结构框图,该装置可应用于推送服务器,参照图6,该装置可以包括:
上一推送信息确定模块100,用于在进行消息推送的过程中,确定推送服务器的第一链路在上一推送周期所对应的数据包推送数量及时间,所述第一链路为所述推送服务器的任一链路;
调整模块200,用于根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量;
下一推送控制模块300,用于控制所述第一链路在下一推送周期,推送与调整后的所述数据包数量对应的数据包。
可选的,在进行消息推送的过程中,所述推送服务器分批次获取所述消息的数据包,一次获取若干数量的数据包;一个所述推送周期为,所述第一链路推送所述推送服务器一次获取的数据包的时间;对应的,图7示出了上一推送信息确定模块100的一种可选结构,参照图7,上一推送信息确定模块100可以包括:
上一次推送信息确定单元110,用于确定所述推送服务器上一次获取的数据包的数量,及所述第一链路推送所述数量的数据包的时间。
可选的,图8示出了本发明实施例提供的调整模块200的一种可选结构,参照图8,调整模块200可以包括:
公式计算单元210,用于设所述推送服务器上一次获取的数据包的数量为M个,所述第一链路上一次推送所述M个数据包的时间为B秒,下一次推送数据包的时间区间最大值为A秒,所述第一链路下一次所推送的数据包数量为T;根据公式T=(1-B/Ai)*M确定所述第一链路下一次所推送的数据包数量,其中,i=1-N的整数。
可选的,图9示出了本发明实施例提供的调整模块200的另一种可选结构,参照图9,调整模块200可以包括:
第一速率计算单元220,用于根据所述时间和所述数量,计算所述第一链路上一次推送所述推送服务器所获取的数据包的速率;
下一时间确定单元221,用于确定所述第一链路下一次推送所述推送服务器所获取的数据包的时间区间最大值;
下一推送数量确定单元222,用于根据所述时间区间最大值及所述第一链路上一次推送所述推送服务器所获取的数据包的速率,确定所述第一链路在所述时间区间最大值内的可推送数据包数量,所述可推送数据包数量为第一链路下一次所推送的数据包数量。
可选的,图10示出了本发明实施例提供的调整模块200的再一种可选结构,参照图10,调整模块200可以包括:
第二速率计算单元230,用于根据所述时间和所述数量,计算所述第一链路上一次推送所述推送服务器所获取的数据包的速率;
用户接收速率确定单元231,用于确定用户设备接收数据包的速率;
数量降低单元232,用于若所述第一链路上一次推送所述推送服务器所获取的数据包的速率,大于用户设备接收数据包的速率,且差值符合预定条件,则降低第一链路下一次所推送的数据包数量。
可选的,推送服务器可将用户设备所推送的消息推送至目标设备;对应的,一个所述推送周期为一个设定的时间段;图11示出了上一推送信息确定模块100的另一种可选结构,参照图11,上一推送信息确定模块100可以包括:
上一推送数量确定单元120,用于确定上一设定的时间段内,所述第一链路推送的数据包的数量。
可选的,图12示出了本发明实施例提供的调整模块200的又一种可选结构,参照图12,调整模块200可以包括:
第三速率计算单元240,用于根据所述数量与所述设定的时间段,计算所述第一链路在上一设定的时间段内推送数据包的速率;
数量提高单元241,用于若所述第一链路在上一设定的时间段内推送数据包的速率,高于设定的正常数据包推送速率,则提高所述第一链路在下一设定的时间段内的数据包推送数量。
可选的,所提升的推送速率不应大于推送上限速率;若在提高速率后,下一设定的时间段内实际的数据包推送速率反而减小,则本发明实施例还可再降低速率,通过如此反复操作,使得推送数据包的速率,在高于设定的正常数据包推送速率时,能够使得推送数据包的速率尽量的最大化优化;若第一链路在上一设定时间段内推送数据包的速率,低于设定推送下限速率,则本发明实施例可对所述第一链路进行屏蔽;若第一链路在上一设定时间段内推送数据包的速率,介于推送下限速率与正常数据包推送速率之间,则本发明实施例可保持推送速率不变,或在下一设定的时间段降低推送速率,以减少丢包和延迟情况。
可选的,图13示出了本发明实施例提供的消息推送装置的另一结构框图,结合图6和图13所示,该装置还可以包括:
速率计算模块400,用于根据所述上一推送周期所对应的数据包推送数量及时间,计算所述第一链路上一次推送所述推送服务器所获取的数据包的速率;
屏蔽模块500,用于若所计算的数据包推送速率低于设定推送下限速率,则对所述第一链路进行屏蔽;
转发模块600,用于确定所述消息中携带的推送请求对应的请求速率范围,若所计算的数据包推送速率未处于所述请求速率范围,将所述消息转发至其他链路进行推送。
本发明实施例还提供一种推送服务器,包括上述所述的消息推送装置。
本发明实施例提供的推送服务器,通过反映链路的质量情况的上一推送周期所对应的数据包推送数量及时间,对下一推送周期所推送的数据包数量进行调整,可实现链路质量变差时,链路在下一推送周期所推送的数据包的数量减少,达到减少数据包丢包,降低推送延迟,提高推送质量的目的。
图14为本发明实施例提供的推送服务器的结构框图,参照图14,该推送服务器可以包括:处理器1,通信接口2,存储器3和通信总线4;
其中处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;
处理器1,用于执行程序;
存储器3,用于存放程序;
程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
其中,程序可具体用于:
在进行消息推送的过程中,确定推送服务器的第一链路在上一推送周期所对应的数据包推送数量及时间,所述第一链路为所述推送服务器的任一链路;
根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量;
控制所述第一链路在下一推送周期,推送与调整后的所述数据包数量对应的数据包。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (15)
1.一种消息推送方法,其特征在于,包括:
在进行消息推送的过程中,确定推送服务器的第一链路在上一推送周期所对应的数据包推送数量及时间,所述第一链路为所述推送服务器的任一链路;
根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量;
控制所述第一链路在下一推送周期,推送与调整后的所述数据包数量对应的数据包。
2.根据权利要求1所述的消息推送方法,其特征在于,所述方法还包括:
在进行消息推送的过程中,所述推送服务器分批次获取所述消息的数据包,一次获取若干数量的数据包;
一个所述推送周期为,所述第一链路推送所述推送服务器一次获取的数据包的时间;
所述确定推送服务器的第一链路在上一推送周期所对应的数据包推送数量及时间包括:
确定所述推送服务器上一次获取的数据包的数量,及所述第一链路推送所述数量的数据包的时间。
3.根据权利要求2所述的消息推送方法,其特征在于,所述根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量包括:
设所述推送服务器上一次获取的数据包的数量为M个,所述第一链路上一次推送所述M个数据包的时间为B秒,下一次推送数据包的时间区间最大值为A秒,所述第一链路下一次所推送的数据包数量为T;
根据公式T=(1-B/Ai)*M确定所述第一链路下一次所推送的数据包数量,其中,i=1-N的整数。
4.根据权利要求2所述的消息推送方法,其特征在于,所述根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量包括:
根据所述时间和所述数量,计算所述第一链路上一次推送所述推送服务器所获取的数据包的速率;
确定所述第一链路下一次推送所述推送服务器所获取的数据包的时间区间最大值;
根据所述时间区间最大值及所述第一链路上一次推送所述推送服务器所获取的数据包的速率,确定所述第一链路在所述时间区间最大值内的可推送数据包数量,所述可推送数据包数量为第一链路下一次所推送的数据包数量。
5.根据权利要求2所述的消息推送方法,其特征在于,所述根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量包括:
根据所述时间和所述数量,计算所述第一链路上一次推送所述推送服务器所获取的数据包的速率;
确定用户设备接收数据包的速率;
若所述第一链路上一次推送所述推送服务器所获取的数据包的速率,大于用户设备接收数据包的速率,且差值符合预定条件,则降低第一链路下一次所推送的数据包数量。
6.根据权利要求2-5任一项所述的消息推送方法,其特征在于,所述控制所述第一链路在下一推送周期,推送与调整后的所述数据包数量对应的数据包包括:
以所确定的所述第一链路下一次所推送的数据包数量,获取对应数量的数据包,控制所述第一链路下一次推送对应数量的数据包。
7.根据权利要求1所述的消息推送方法,其特征在于,所述消息为用户设备推送至推送服务器的消息;一个所述推送周期为一个设定的时间段;
所述确定推送服务器的第一链路在上一推送周期所对应的数据包推送数量及时间包括:
确定上一设定的时间段内,所述第一链路推送的数据包的数量;
所述根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量包括:
根据所述数量与所述设定的时间段,计算所述第一链路在上一设定的时间段内推送数据包的速率;
若所述第一链路在上一设定的时间段内推送数据包的速率,高于设定的正常数据包推送速率,则提高所述第一链路在下一设定的时间段内的数据包推送数量。
8.根据权利要求1或2或3或4或5或7所述的消息推送方法,其特征在于,还包括:
根据所述上一推送周期所对应的数据包推送数量及时间,计算所述第一链路上一次推送所述推送服务器所获取的数据包的速率;
若所计算的数据包推送速率低于设定推送下限速率,则对所述第一链路进行屏蔽;或,确定所述消息中携带的推送请求对应的请求速率范围,若所计算的数据包推送速率未处于所述请求速率范围,将所述消息转发至其他链路进行推送。
9.一种消息推送装置,其特征在于,包括:
上一推送信息确定模块,用于在进行消息推送的过程中,确定推送服务器的第一链路在上一推送周期所对应的数据包推送数量及时间,所述第一链路为所述推送服务器的任一链路;
调整模块,用于根据所述上一推送周期所对应的数据包推送数量及时间,调整所述第一链路在下一推送周期所推送的数据包数量;
下一推送控制模块,用于控制所述第一链路在下一推送周期,推送与调整后的所述数据包数量对应的数据包。
10.根据权利要求9所述的消息推送装置,其特征在于,在进行消息推送的过程中,所述推送服务器分批次获取所述消息的数据包,一次获取若干数量的数据包;一个所述推送周期为,所述第一链路推送所述推送服务器一次获取的数据包的时间;
所述上一推送信息确定模块包括:
上一次推送信息确定单元,用于确定所述推送服务器上一次获取的数据包的数量,及所述第一链路推送所述数量的数据包的时间。
11.根据权利要求10所述的消息推送装置,其特征在于,所述调整模块包括:
公式计算单元,用于设所述推送服务器上一次获取的数据包的数量为M个,所述第一链路上一次推送所述M个数据包的时间为B秒,下一次推送数据包的时间区间最大值为A秒,所述第一链路下一次所推送的数据包数量为T;根据公式T=(1-B/Ai)*M确定所述第一链路下一次所推送的数据包数量,其中,i=1-N的整数。
12.根据权利要求10所述的消息推送装置,其特征在于,所述调整模块包括:
第一速率计算单元,用于根据所述时间和所述数量,计算所述第一链路上一次推送所述推送服务器所获取的数据包的速率;
下一时间确定单元,用于确定所述第一链路下一次推送所述推送服务器所获取的数据包的时间区间最大值;
下一推送数量确定单元,用于根据所述时间区间最大值及所述第一链路上一次推送所述推送服务器所获取的数据包的速率,确定所述第一链路在所述时间区间最大值内的可推送数据包数量,所述可推送数据包数量为第一链路下一次所推送的数据包数量。
13.根据权利要求10所述的消息推送装置,其特征在于,所述调整模块包括:
第二速率计算单元,用于根据所述时间和所述数量,计算所述第一链路上一次推送所述推送服务器所获取的数据包的速率;
用户接收速率确定单元,用于确定用户设备接收数据包的速率;
数量降低单元,用于若所述第一链路上一次推送所述推送服务器所获取的数据包的速率,大于用户设备接收数据包的速率,且差值符合预定条件,则降低第一链路下一次所推送的数据包数量。
14.根据权利要求9所述的消息推送装置,其特征在于,所述消息为用户设备推送至推送服务器的消息;一个所述推送周期为一个设定的时间段;
所述调整模块包括:
第三速率计算单元,用于根据上一设定的时间段内,所述第一链路推送的数据包的数量,计算所述第一链路在上一设定的时间段内推送数据包的速率;
数量提高单元,用于若所述第一链路在上一设定的时间段内推送数据包的速率,高于设定的正常数据包推送速率,则提高所述第一链路在下一设定的时间段内的数据包推送数量。
15.一种推送服务器,其特征在于,包括权利要求9-14任一项所述的消息推送装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510119041.7A CN104660718B (zh) | 2015-03-18 | 2015-03-18 | 一种消息推送方法、装置及推送服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510119041.7A CN104660718B (zh) | 2015-03-18 | 2015-03-18 | 一种消息推送方法、装置及推送服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104660718A true CN104660718A (zh) | 2015-05-27 |
CN104660718B CN104660718B (zh) | 2018-07-06 |
Family
ID=53251405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510119041.7A Active CN104660718B (zh) | 2015-03-18 | 2015-03-18 | 一种消息推送方法、装置及推送服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104660718B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104935674A (zh) * | 2015-07-08 | 2015-09-23 | 成都梦工厂网络信息有限公司 | 云端推送系统 |
CN105141763A (zh) * | 2015-08-11 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种通过智能手机app进行消息群发的方法及系统 |
CN105472400A (zh) * | 2015-12-24 | 2016-04-06 | Tcl集团股份有限公司 | 一种消息推送方法及系统 |
CN106375389A (zh) * | 2016-08-26 | 2017-02-01 | 南京车易淘网络信息技术有限公司 | 一种基于第三方消息推送平台与业务集成的消息系统服务方法 |
CN106686024A (zh) * | 2015-11-05 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 获取离线消息的到达率的方法、装置及系统 |
CN108900289A (zh) * | 2018-06-21 | 2018-11-27 | 中国联合网络通信集团有限公司 | 一种数据传输方法、装置及服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6404777B1 (en) * | 1998-01-23 | 2002-06-11 | Matsushita Electric Industrial Co., Ltd. | Network system, band management apparatus, transmitting apparatus, network transmitting method, band management method, and transmitting method |
CN102098301A (zh) * | 2011-01-06 | 2011-06-15 | 复旦大学 | 多链路自适应的数据传输方法与系统 |
CN103188036A (zh) * | 2011-12-30 | 2013-07-03 | 中国移动通信集团江苏有限公司 | 调整传输控制协议数据传输的方法及通信装置 |
-
2015
- 2015-03-18 CN CN201510119041.7A patent/CN104660718B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6404777B1 (en) * | 1998-01-23 | 2002-06-11 | Matsushita Electric Industrial Co., Ltd. | Network system, band management apparatus, transmitting apparatus, network transmitting method, band management method, and transmitting method |
CN102098301A (zh) * | 2011-01-06 | 2011-06-15 | 复旦大学 | 多链路自适应的数据传输方法与系统 |
CN103188036A (zh) * | 2011-12-30 | 2013-07-03 | 中国移动通信集团江苏有限公司 | 调整传输控制协议数据传输的方法及通信装置 |
Non-Patent Citations (1)
Title |
---|
仲玮 等: "基于XMPP协议的校园实时消息推送系统的研究", 《武汉大学学报(理学版)》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104935674A (zh) * | 2015-07-08 | 2015-09-23 | 成都梦工厂网络信息有限公司 | 云端推送系统 |
CN105141763A (zh) * | 2015-08-11 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种通过智能手机app进行消息群发的方法及系统 |
CN106686024A (zh) * | 2015-11-05 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 获取离线消息的到达率的方法、装置及系统 |
CN106686024B (zh) * | 2015-11-05 | 2019-09-20 | 腾讯科技(深圳)有限公司 | 获取离线消息的到达率的方法、装置及系统 |
CN105472400A (zh) * | 2015-12-24 | 2016-04-06 | Tcl集团股份有限公司 | 一种消息推送方法及系统 |
CN106375389A (zh) * | 2016-08-26 | 2017-02-01 | 南京车易淘网络信息技术有限公司 | 一种基于第三方消息推送平台与业务集成的消息系统服务方法 |
CN108900289A (zh) * | 2018-06-21 | 2018-11-27 | 中国联合网络通信集团有限公司 | 一种数据传输方法、装置及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN104660718B (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104660718A (zh) | 一种消息推送方法、装置及推送服务器 | |
CN109714268B (zh) | 一种虚拟私有云的流量控制方法及相关装置 | |
CN106789718B (zh) | 数据传输的拥塞控制方法、设备、服务器及可编程设备 | |
CN104301248A (zh) | 报文限速方法和装置 | |
Wallace et al. | Concurrent multipath transfer using SCTP: Modelling and congestion window management | |
CN110138756A (zh) | 一种限流方法及系统 | |
CN102780621B (zh) | 一种上行数据包发送方法、装置及网络设备 | |
CN107404443A (zh) | 队列缓存资源控制方法及装置、服务器及存储介质 | |
CN108768781A (zh) | 避免死锁的无丢失流量控制方法及装置 | |
CN109525447B (zh) | 一种调整网络传输带宽的方法、装置及电子设备 | |
CN106789700B (zh) | 一种流量整形方法及网络设备 | |
CN105471757A (zh) | 一种tcp拥塞控制方法及装置 | |
US20130086144A1 (en) | Adaptive period network session reservation | |
CN106254265A (zh) | 处理报文的方法、装置和系统 | |
CN104378307A (zh) | 基于吞吐率和丢包控制cwnd的优化方法和系统 | |
CN108235382A (zh) | 一种传输速率调整的方法、节点设备以及服务器 | |
CN103188120B (zh) | 一种组播业务的丢包检测方法及装置 | |
CN105450441A (zh) | 一种基于tcp协议的弱网加速方法和装置 | |
CN105591960A (zh) | 调整隧道负载的方法和设备 | |
CN108023938B (zh) | 一种消息发送方法及服务器 | |
CN106789709B (zh) | 一种负载均衡的方法及装置 | |
CN102739531A (zh) | 流量整形方法和流量整形设备 | |
JP6757736B2 (ja) | パケット送信タイミングの動的調整方法 | |
CN104917852A (zh) | 一种针对IPv6地址的数据快速处理方法 | |
CN105376178B (zh) | 一种数据传输的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |