分布式推送服务器系统及应用该系统的数据推送方法.pdf

上传人:000****221 文档编号:1686935 上传时间:2018-07-04 格式:PDF 页数:10 大小:668.70KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510293385.X

申请日:

2015.06.01

公开号:

CN104852991A

公开日:

2015.08.19

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H04L 29/08申请日:20150601|||公开

IPC分类号:

H04L29/08

主分类号:

H04L29/08

申请人:

上海雷腾软件股份有限公司

发明人:

刘涛; 张磊

地址:

201203上海市浦东新区张江高科技园区达尔文路88号2幢603室

优先权:

专利代理机构:

上海百一领御专利代理事务所(普通合伙)31243

代理人:

马育麟

PDF下载: PDF下载
内容摘要

本发明涉及网络服务器架构技术领域,公开了一种分布式推送服务器系统,包括多个数据服务器、一个中间服务器、推送服务器和终端,所述多个数据服务器分别与所述中间服务器和推送服务器联接,所述终端与所述中间服务器和推送服务器通讯联接,所述中间服务器包括选举模块,所述终端向所述中间服务器发送连接请求,所述中间服务器通过所述选举模块从所述多个数据服务器中选出负载最小的服务器作为目标服务器,并将所述目标服务器信息发送至终端,所述终端连接至所述目标服务器,所述推送服务器将目标服务器的数据对所述终端进行实时推送。本发明通过中间服务器减少其它服务器的承载量,为客户端提供更快响应速度的可行性。

权利要求书

权利要求书1.  一种分布式推送服务器系统,其特征在于:包括多个数据服务器、一个中间服务器、推送服务器和终端,所述多个数据服务器分别与所述中间服务器和推送服务器联接,所述终端与所述中间服务器和推送服务器通讯联接,所述中间服务器包括选举模块,所述终端向所述中间服务器发送连接请求,所述中间服务器通过所述选举模块从所述多个数据服务器中选出负载最小的服务器作为目标服务器,并将所述目标服务器信息发送至终端,所述终端连接至所述目标服务器,所述推送服务器将目标服务器的数据对所述终端进行实时推送。2.  根据权利要求1所述的分布式推送服务器系统,其特征在于:所述中间服务器还包括列表更新模块,所述中间服务器通过所述选举模块定时得到目标服务器,所述列表更新模块对所述中间服务器的列表中的目标服务器进行更新,所述中间服务器得到所述终端的连接请求后,直接从所述列表中得到目标服务器信息。3.  根据权利要求1所述的分布式推送服务器系统,其特征在于:所述终端包括信息处理模块,所述信息处理模块将所述终端发送至所述目标服务器的信息进行简化,所述简化过程包括去除通信信息中的注释代码。4.  根据权利要求1至3中任一项所述的分布式推送服务器系统,其特征在于:所述推送服务器启动时将可用的数据服务器列表在所述中间服务器中注册。5.  根据权利要求1至3中任一项所述的分布式推送服务器系统,其特征在于:所述终端接收到所述推送服务器推送的信息后,所述终端给所述推送服务器发送回执,所述推送服务器使所述目标服务器与所述终端解除信息发送连接关系。6.  一种应用如权利要求5所述的分布式推送服务器系统的数据推送方法,其特征在于:包括如下步骤:(1)所述终端向中间服务器发送连接请求;(2)所述中间服务器通过所述选举模块选出所述目标服务器;(3)所述中间服务器将目标服务器信息发送至终端;(4)所述终端连接与所述目标服务器建立连接;(5)所述目标服务器的目标数据由所述推送服务器发送至所述终端。7.  根据权利要求6所述的数据推送方法,其特征在于:所述列表更新模块对所述中间服务器的列表中的目标服务器进行更新,所述中间服务器得到所述终端的连接请求后,直接从所述列表中得到目标服务器信息。8.  根据权利要求6所述的数据推送方法,其特征在于:所述第(1)步,中,所述终端通过所述信息处理模块,将发送至所述目标服务器的信息进行简化。9.  根据权利要求6至8中任一项所述的数据推送方法,其特征在于:所述推送服务器启动时将可用的数据服务器列表在所述中间服务器中注册。10.  根据权利要求6至8中任一项所述的数据推送方法,其特征在于:所述第(5)步后包括如下步骤:所述终端接收到所述推送服务器推送的信息后,所述终端给所述推送服务器发送回执,所述推送服务器使所述目标服务器与所述终端解除信息发送连接关系。

说明书

说明书分布式推送服务器系统及应用该系统的数据推送方法
技术领域
本发明涉及网络服务器架构技术领域,尤其涉及一种分布式推送服务器系统及应用该系统的数据推送方法。
背景技术
随着移动互联网的发展,我们已经见过一些令人惊叹不己的微信、滴滴打车、大黄峰等优秀应用软件,它们的应用首先是需要信息的高实时性,更高的准确和到达率,再者是服务器系统需要承载更大的并发量,具有更好的伸缩性以及可靠性,才能保证整体服务的信息安全、连续、可共享、易整合和高可用。它们的这些应用都采应了push技术。push技术本身存在非常广泛的应用需求,特别适用于聊天、租车、天气预报、股票软件等移动互联网应用。
现有push框架不够成熟,实现原理各自不同,没有统一的实现标准,使的开发的应用程序很难得到移植。现有的解决方法有两种:一种是采用openfire开源组件,一种是基于http长轮询实现。
openfire采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议,使用它可以轻易的构建高效率的即时通信服务器.但缺点也显而易见:openfire单机承载量有限,xmpp协议数据负载太重,不能提供二进制数据支持。
http长轮询实现方式的原理是客户端不断的向服务器发送请求以获取最新的数据信息,http长轮询实现方式对于服务端和客户端实现相对简单,编写比较容易,所以开发人员维护成本相对比较低,适用于小型应用。
http长轮询的工作流程如下:
1、轮询的建立:客户端发起http请求建立连接,此时由于服务器还未做出应答,所以HTTP也一直处于连接状态中。
2、数据的推送:在客户端循环过程中,服务器程序对客户端关注的数据变动进行监控,如发现更新,将该信息输出给浏览器,随即断开连接,完成应答过程,实现“服务器推”。
3.轮询的终止:轮询可能在以下2种情况时终止
3.1.有新数据推送
当循环过程中服务器向客户端推送信息后,应该主动结束程序运行从而让连接断开,这样客户端才能及时收到数据。
3.2网络故障或异常
由于网络故障等因素造成的请求超时或出错也可能导致轮询的意外中断,此时客户端将收到错误信息或断开信息。
4.轮询的重建:当客户端收到断开指令或错误信息,应马上重新发起请求,开始一个新的轮询周期。
但是,http长轮询存在以下缺点问题
1、由于http协议是无状态协议,每次会话都要携带用户信息,导致用户信息反复携带到服务器,浪费宽带。
2、请求中有大半是无用,因为服务器和客户端的消息并不是每个时刻都有,客户端反复进行与服务器连接建立与断开,增加服务器负载和浪费服务器资源。
3、消息到达不够及时,因为客户端每次接收一次消息都要断开连接,导致客户端消息较多时,不能通过一个连接连续接收消息,导致消息延时。
发明内容
本发明的目的是为了解决上述问题,提供一种分布式推送服务器系统及应用该系统的数据推送方法,实现服务器承载力的提升和数据传送的效率提高。
本发明采取的技术方案是:
一种分布式推送服务器系统,其特征是,包括多个数据服务器、一个中间服务器、推送服务器和终端,所述多个数据服务器分别与所述中间服务器和推送服务器联接,所述终端与所述中间服务器和推送服务器通讯联接,所述中间服务器包括选举模块,所述终端向所述中间服务器发送连接请求,所述中间服务器通过所述选举模块从所述多个数据服务器中选出负载最小的服务器作为目标服务器,并将所述目标服务器信息发送至终端,所述终端连接至所述目标服务器,所述推送服务器将目标服务器的数据对所述终端进行实时推送。
进一步,所述中间服务器还包括列表更新模块,所述中间服务器通过所述选举模块定时得到目标服务器,所述列表更新模块对所述中间服务器的列表中的目标服务器进行更新,所述中间服务器得到所述终端的连接请求后,直接从所述列表中得到目标服务器信息。
进一步,所述终端包括信息处理模块,所述信息处理模块将所述终端发送至所述目标服务器的信息进行简化,所述简化过程包括去除通信信息中的注释代码。
进一步,所述推送服务器启动时将可用的数据服务器列表在所述中间服务器中注册。
进一步,所述终端接收到所述推送服务器推送的信息后,所述终端给所述推送服务器发送回执,所述推送服务器使所述目标服务器与所述终端解除信息发送连接关系。
一种应用上述的分布式推送服务器系统的数据推送方法,其特征是,包括如下步骤:
(1)所述终端向中间服务器发送连接请求;
(2)所述中间服务器通过所述选举模块选出所述目标服务器;
(3)所述中间服务器将目标服务器信息发送至终端;
(4)所述终端连接与所述目标服务器建立连接;
(5)所述目标服务器的目标数据由所述推送服务器发送至所述终端。
进一步,所述列表更新模块对所述中间服务器的列表中的目标服务器进行更新,所述中间服务器得到所述终端的连接请求后,直接从所述列表中得到目标服务器信息。
进一步,所述第(1)步,中,所述终端通过所述信息处理模块,将发送至所述目标服务器的信息进行简化。
进一步,所述推送服务器启动时将可用的数据服务器列表在所述中间服务器中注册。
进一步,所述第(5)步后包括如下步骤:所述终端接收到所述推送服务器推送的信息后,所述终端给所述推送服务器发送回执,所述推送服务器使所述目标服务器与所述终端解除信息发送连接关系。
本发明的有益效果是:
(1)解决了单机承载量有限的问题。通过客户端和服务端交互的方式,可以让服务端通过从n台服务器中选择一台比较负载较小的服务器用于客户端对端的连接,通过这种方式实现服务器集群,从而可以达到承载更多的客户端连接请求。
(2)解决了数据传输载体较大问题,openfire采用xmpp协议为数据载体,导致发送的每一个包都会有很多与传输消息不相关的其它描述,往往描述本身的大小都是传输消息的几倍大,导致数据冗余较大。本发明可减少客户端流量和数据传输较大。
(3)解决了消息到达率不高的问题,消息传输不可必免的消息丢失,导致客户端无法接收到消息,通过消息id回执和消息多次发送来保证消息的到达率为100%,保证了客户端接收到消息的完整性和消息的不丢失。
附图说明
附图1是本发明的服务器系统结构示意图;
附图2是中间服务器列表更新结构示意图;
附图3是消息发送策略示意图;
附图4是消息发送的简化示意图。
具体实施方式
下面结合附图对本发明分布式推送服务器系统及应用该系统的数据推送方法的具体实施方式作详细说明。
分布式推送服务器系统利用合理高效的逻辑分层方式和数据流调用方式通过整体分层架构设计和面向对象的数据流调用组合策略实现。将客户端与服务端的连接建立来达到可以合理分配客户端到不同服务器,达到服务器的资源合理利用,减少服务器之间的信息交换。
参见附图1,分布式推送服务器系统包括多个数据服务器1、一个中间服务器3、推送服务器2和终端4,多个数据服务器1包括Key-Value数据库服务器,企业消息系统服务器和应用程序协调服务器等,多个数据服务器分别与中间服务器3和推送服务器2联接,终端4与中间服务器3和推送服务器4通讯联接,中间服务器3包括选举模块,终端向中间服务器发送连接请求, 中间服务器通过选举模块从多个数据服务器中选出负载最小的服务器作为目标服务器,并将目标服务器信息发送至终端,终端连接至目标服务器,推送服务器将目标服务器的数据对终端进行实时推送。
让中间服务器通过从n台数据服务器中选择一台比较负载较小的服务器用于客户端对端的连接,当一台数据服务器脱机之后,就会将向客户端提供的服务器列表中删除,当客户端与服务端申请建立连接时,只会从目标服务器列表中选择一台负载较小的服务器向客户端回传数据。目标服务器的选择是通过中间服务器的选举模块完成的,选举模块连接数据服务器后,对其连接客户端数量进行分板后,选中负载较小的一台作为目标服务器。随着时间的推移,客户端数量越来越多,当现有服务器的承载量己经无法承载客户端时,此时只需要横向扩展,动态向可用服务器列表当中添加服务器列表,则可以减少其它服务器的承载量,来达到共同为客户端提供服务的可行性。
参见附图2,中间服务器3还包括列表更新模块,中间服务器通过选举模块定时得到目标服务器,列表更新模块对中间服务器的列表中的目标服务器进行更新,中间服务器得到终端的连接请求后,直接从列表中得到目标服务器信息。推送服务器在启动时会将本身可以提供服务的信息向可用服务器列表中注册信息。
终端的类型包括手机、车载系统、mp3、智能电器等,其内部包括信息处理模块,信息处理模块将终端发送至目标服务器的信息进行简化,简化过程包括去除通信信息中的注释代码。信息为了便于维护的扩展,一般会附带有相当多的注释描述类内容,往往这些内容比实际真正传输的信息数量还要大,而这些内容的重复传送,导致服务器带宽的浪费。信息处理模块在信息发送之前,将注释描述进行精简,减少服务器负载。
在服务器向客户端发送通信时由于网络问题,往往导致信息丢失。这是因为服务器向客户端发送了一条信息,但此时可能由于客户端已经处理无网络状态,不能再接收到信息,但服务端认为已经发送的消息就代表客户端已经收到,从而导致消息的丢失。
终端接收到推送服务器推送的信息后,终端给推送服务器发送回执,推送服务器使目标服务器与终端解除信息发送连接关系。通过这种方式,可能 确认信息是否送终端设备。
参见附图3、4,消息回执和消息重新发送策略的实现原理如下:客户端与中间服务器连接后,中间服务器将客户端的状态发送至推送服务器,推送服务器将数据服务器中存储的用户的关系查出用户的离线消息,通过应用程序队列信息发送给用户所对应的目标服务器上,目标服务器通过中间服务将信息发送至用户终端,终端收到信息后,将信息回执发送到推送服务器,推送服务器将回执发送到目标服务器,告知客户端已经收到消息,将用户已经收到的消息关系进行解除。如果目标服务器没有接收到回执,则不进行用户和消息的关系解除,等待用户下次建立连接时再将消息通过重新发送的方式发送给客户端,直接客户端接收到消息并且回执消息时,推送服务器才不进行消息的重新发送,直至消息发送到客户端,保证了每个消息的送达。
分布式推送服务器系统的数据推送方法包括如下步骤:
(1)终端向中间服务器发送连接请求;
(2)中间服务器通过选举模块选出目标服务器;
(3)中间服务器将目标服务器信息发送至终端;
(4)终端连接与目标服务器建立连接;
(5)目标服务器的目标数据由推送服务器发送至终端。
上述方法中,应用到数据服务器系统的相关内容,在服务器系统的介绍中已经说明,这里不再阐述。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

分布式推送服务器系统及应用该系统的数据推送方法.pdf_第1页
第1页 / 共10页
分布式推送服务器系统及应用该系统的数据推送方法.pdf_第2页
第2页 / 共10页
分布式推送服务器系统及应用该系统的数据推送方法.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《分布式推送服务器系统及应用该系统的数据推送方法.pdf》由会员分享,可在线阅读,更多相关《分布式推送服务器系统及应用该系统的数据推送方法.pdf(10页珍藏版)》请在专利查询网上搜索。

本发明涉及网络服务器架构技术领域,公开了一种分布式推送服务器系统,包括多个数据服务器、一个中间服务器、推送服务器和终端,所述多个数据服务器分别与所述中间服务器和推送服务器联接,所述终端与所述中间服务器和推送服务器通讯联接,所述中间服务器包括选举模块,所述终端向所述中间服务器发送连接请求,所述中间服务器通过所述选举模块从所述多个数据服务器中选出负载最小的服务器作为目标服务器,并将所述目标服务器信息发。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1