消息推送的方法、装置及系统的制作方法

文档序号:9791777阅读:974来源:国知局
消息推送的方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及互联网技术领域,尤其涉及一种消息推送的方法、装置及系统。
【背景技术】
[0002]在现有网络中,推送平台会通过服务器向终端主动推送通知消息。当需要推送通知消息时,推送平台会将通知消息发送给服务器,服务器与终端之间建立并保持传输控制协议(Transmiss1n ControI ProtocoI,简称TCP)连接,服务器通过TCP连接将接收到的通知消息发送给终端。日常生活中,手机里的热点新闻推送、好友圈消息更新提示以及应用版本更新提示等功能即是通过消息推送机制实现的。
[0003]通常公网中的终端数量十分庞大,通过单台服务器向所有终端推送通知消息并不现实。因此,现有技术中出现了分布式服务器集群的网络架构,即使用多台服务器负责消息推送。终端可以选择与任意一台服务器建立TCP连接,每台服务器负责向自身连接的终端推送通知消息。
[0004]在上述通过分布式服务器集群推送消息的过程中,推送平台需要向每一台服务器分别推送通知消息,并且还需要对服务器进行管理,例如保证服务器接收通知消息的同步性、发现并处理宕机服务器等。由此可见,当采用分布式服务器集群的网络架构时,推送平台侧的负荷压力较大。

【发明内容】

[0005]本发明提供了一种消息推送的方法、装置及系统,能够解决分布式服务器集群环境中推送平台负荷压力较大的问题。
[0006]为解决上述问题,第一方面,本发明提供了一种消息推送的方法,该方法应用于主服务器侧,该方法包括:
[0007]主服务器接收推送平台发送的通知消息,主服务器为分布式服务器集群中通过投票选举出的服务器;
[0008]将通知消息写入到log日志中;
[0009]将log日志分发给集群中的从服务器,以使得从服务器更新自身的log日志并将通知消息下发给建立有连接关系的终端,从服务器为集群中除主服务器之外的其他服务器。
[0010]第二方面,本发明还提供了一种消息推送的方法,该方法应用于从服务器侧,该方法包括:
[0011 ]从服务器接收主服务器分发的log日志,主服务器为分布式服务器集群中通过投票选举出的服务器,从服务器为集群中除主服务器之外的其他服务器,log日志中记录有推送平台向主服务器发送的通知消息;
[00?2]根据log日志更新自身的log日志;
[0013]将IOg日志中的通知消息下发给建立有连接关系的终端。
[0014]第三方面,本发明还提供了一种消息推送的装置,该装置位于主服务器侧,该装置包括:
[0015]接收单元,用于接收推送平台发送的通知消息,主服务器为分布式服务器集群中通过投票选举出的服务器;
[0016]写入单元,用于将通知消息写入到log日志中;
[0017]发送单元,用于将log日志分发给集群中的从服务器,以使得从服务器更新自身的log日志并将通知消息下发给建立有连接关系的终端,从服务器为集群中除主服务器之外的其他服务器。
[0018]第四方面,本发明还提供了一种消息推送的装置,该装置位于从服务器侧,该装置包括:
[0019]接收单元,用于接收主服务器分发的log日志,主服务器为分布式服务器集群中通过投票选举出的服务器,从服务器为集群中除主服务器之外的其他服务器,1g日志中记录有推送平台向主服务器发送的通知消息;
[0020]更新单元,用于根据log日志更新自身的log日志;
[0021]发送单元,用于将log日志中的通知消息下发给建立有连接关系的终端。
[0022]第五方面,本发明还提供了一种消息推送的系统,该系统包括:推送平台、主服务器、从服务器以及终端;其中,主服务器为分布式服务器集群中通过投票选举出的服务器,从服务器为集群中除主服务器之外的其他服务器;
[0023]推送平台,用于向主服务器发送通知消息;
[0024]主服务器,用于接收推送平台发送的通知消息,将通知消息写入到log日志中,并将log日志分发给从服务器;
[0025]从服务器,用于接收主服务器分发的log日志,根据log日志更新自身的log日志,并将log日志中的通知消息下发给建立有连接关系的终端;
[0026]终端,用于接收建立有连接关系的从服务器下发的通知消息。
[0027]本发明提供的消息推送的方法、装置及系统,能够在分布式服务器集群中选举出主服务器,推送平台将通知消息下发给主服务器,由主服务器通过log日志的形式分发给各个从服务器,并使从服务器将接收的通知消息发送给建立有连接关系的终端。与现有技术相比,本发明中,推送平台仅将通知消息发送给主服务器即可,无需与其他服务器进行通信,因此可以大大减轻推送平台的负荷压力。
[0028]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0029]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0030]图1示出了本发明实施例提供的第一种消息推送的方法流程图;
[0031 ]图2示出了本发明实施例提供的第二种消息推送的方法流程图;
[0032]图3示出了本发明实施例提供的第三种消息推送的方法流程图;
[0033]图4示出了本发明实施例提供的第一种消息推送的装置的组成框图;
[0034]图5示出了本发明实施例提供的第二种消息推送的装置的组成框图;
[0035]图6示出了本发明实施例提供的第三种消息推送的装置的组成框图;
[0036]图7示出了本发明实施例提供的第四种消息推送的装置的组成框图;
[0037]图8示出了本发明实施例提供的一种消息推送的系统框图。
【具体实施方式】
[0038]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0039]本发明实施例提供了一种消息推送的方法,该方法应用于主服务器侧。如图1所示,该方法包括:
[0040]101、主服务器接收推送平台发送的通知消息。
[0041]本实施例中,推送平台通过分布式服务器集群向终端下发通知消息。该分布式服务器集群由多个服务器组成,各个服务器之间同质,每台服务器接入多个终端,终端可以更改接入的服务器。
[0042]在分布式服务器集群中,通过投票选举出一个主服务器,剩余服务器则为从服务器。主服务器用于与推送平台进行对接,接收推送平台发送的通知消息,并将通知消息分发给各个从服务器,使得从服务器将该通知消息分发给自身接入的终端。本实施例中的投票主体为集群中的服务器,每台服务器均需要向包括自身在内的服务器投出至少一票,例如仅向自身投票,或者向自身投一票并且向某个其他服务器头一票。服务器可以依据预先配置的投票策略对其他服务器进行投票。例如对通信速度最快的服务器投票,或者对终端负载量最少的服务器投票,或者对处理资源最空闲的服务器投票等,本实施例对此不作限制。
[0043]本实施例中,任意时刻上分布式服务器集群可以仅有一个主服务器,也可以同时存在多个主服务器。对于后者情况,每一个主服务器负责一部分从服务器的消息分发。各个主服务器负责分发的从服务器没有重复。从服务器可以根据自身配置的接入规则,选择或更改连接的主服务器。所述规则包括但不限于是:选择通信速度最快的主服务器、选择距离最近的主服务器等,本实施例对此不作限制。需要说明的是,为保证切实减轻推送平台的负荷压力,实际应用中主服务器的数量最好不要超过服务器总量的三分之一。为便于说明和理解,本实施例后续将以集群中仅存在一个主服务器的情况为例进行说明。
[0044]进一步的,本实施例中的投票行为可以是一次性的,例如在网络初始化时进行投票,确定出主服务器。或者投票行为也可以是动态的,例如按照预设的时间段周期性投票选择主服务器。此外,当主服务器宕机时,应当重新进行投票,选举出新的可用主服务器。
[0045]在确定主服务器后,该主服务器向推送平台发送更新消息,向推送平台通知自身的主服务器地位。推送平台接收到该通知后,与该服务器建立连接,以便后续下发通知消息。对于从服务器而言,主服务器向集群中的其他服务器广播自身的主服务器地位。在接收到该通知后,从服务器与该主服务器建立通信连接。对于存在多个主服务器的情况,主服务器仅向其负责的服务器单播或组播该通知消息,对于负责服务器的确定,每个服务器中可以预先配置一个IP地址段或者服务器标识列表,其中记录有该服务器(如果当选为主服务器)负责的服务器的IP地址或标识。实际应用中,负责服务器的确定通常可以依据服务器就近原则确定,即主服务器负责距离较近的从服务器,该距离主要是指物理距离。
[0046]102、主服务器将通知消息写入到log日志中。
[0047]本实施例中,主服务器通过log日志的形式向从服务器发送通知消息。主服务器将推送平台发送的通知消息写入到log日志中,然后执行步骤103,向从服务器发送log日志。
[0048]103、主服务器将log日志分发给集群中的从服务器。
[0049]本实施例中,主服务器通过广播的方式将写有通知消息的log日志分发给从服务器,以使得从服务器更新自身的log日志并将通知消息下发给建立有连接关系的终端,即使从服务器将通知消息发送给自身接入的终端。对于多个主服务器的情况,主服务器可以以单播或组播的方式定向地向自身负责的从服务器发送log日志。
[0050]在本实施例的一种实现方式中,主服务器可以周期性的向从服务器发送log日志。如果推送平台推送了新的通知消息,则主服务器将该通知消息写入到下一个即将发送的log日志中进行分发。如果没有接收到推送平台的通知消息,则当到达推送周期时,主服务器向从服务器下发空的log日
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1