可靠消息系统移动网络论文(共3166字).docVIP

可靠消息系统移动网络论文(共3166字).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
可靠消息系统移动网络论文(共3166字)

可靠消息系统移动网络论文(共3166字) 1消息系统设计 1.1系统基础架构 基于不可靠移动网络的消息系统,是目前移动互联网及时通讯研究的热点,无论是消息推送,还是IM等及时通讯应用都涉及这个方面的问题,如何保证消息及时有效地送到用户是研究的关键。从技术上,消息的送达主要有2类技术,一类是客户端轮询,即客户端不断地发送请求获取新内容;另一类是推送,即服务端在有消息内容时将消息推送到客户端。轮询实现比较简单,即客户端在一定的时间间隔内向服务端请求,获取新的数据,目前这种方式在当前互联网上的消息应用中较为普遍。但这种方式在移动网络下存在较多问题,如果设置时间间隔太长,会造成消息的及时性不够,如果设置太短,会造成较大的数据流量,移动网络目前的流量成本还比较高,另外对移动设备的电量消耗较大。而推送方式采用长连接的方式,有效地避免了上述问题,但是,由于移动网络的不稳定性,在长连接情况下没有传统网络稳定,客户端时有掉线。因此笔者在参考推送模式和XMPP(ExtensibleMessagingandPresenceProtocol,可扩展消息与出席协议)的基础上,借用轮询请求的方式,实现消息的有效回执,同时采用重试链接的方式回避长连接的不稳定,在传统的推送基础上加了重发机制。该消息系统在架构上由客户端、服务端和数据层构成,各层由不同子功能模块组成。客户端主要为用户提供交互操作的界面,包含消息回执、消息显示等模块,其核心是客户端收到消息后,根据消息体的相关属性决定消息是否需要回执,采用何种模板进行消息体的展示。服务端由多台基于Openfire的IM服务器集群、Zookeeper集群以及消息待发队列和重发队列组成,用于处理、转发及重发客户端消息、接收客户端消息回执、监听客户端状态等。此外,还包含统一的数据访问接口,用于访问缓存数据库。数据层用于存储来自应用系统的相关数据和用户状态,其中缓存数据库主要存储用户信息及离线消息等,Zookeeper集群主要存储IM服务器集群的共享数据。 1.2各模块功能 1)客户端消息回执模块用于构造并发送客户端消息回执。当客户端成功接收在线消息或离线消息时,立刻向服务端发送“成功接收在线消息”或“成功接收离线消息”的回执,告知服务器客户端已成功接收到消息,不用重复向其发送此消息,服务端的业务层根据回执的情况对消息进行相应的业务处理。 2)客户端消息显示模块根据消息类型对消息予以不同的显示。消息主要分为普通消息、多媒体消息、联动消息3类,客户端消息显示模块根据上述的类型,从消息弹出方式、消息字体颜色、消息的联动等方面进行不同的处理。比如消息是否需要弹出、客户端收到消息的声音模式以及该消息内容是否进行下一步联动操作。 3)服务端消息处理模块主要负责接收客户端的消息回执,当该模块接收到客户端的消息回执时,表示客户端已经收到该消息,后续对该消息进行完整的事务处理,把该消息从待发队列移除,同时置该消息状态位为已发送。 4)服务端消息处理推送模块主要根据消息接收者的状态实行不同的消息发送策略,同时根据消息的内容和形式组成不同的消息体,便于客户端进行消息的显示,同时提供其他应用服务器能够通过IM服务器向客户端推送消息接口。 5)服务端消息重发模块用于重新发送未成功送达客户端的消息。服务器端维护一个重发队列保存其发送过的消息,当收到回执时则从队列删除相应消息,若未收到回执,则在计时器周期遍历重发队列时重发此消息,以此来提高服务器端向客户端发送消息的可靠性。服务器端根据消息的重要程度采用不同级别的重发策略,越重要的消息重发的频率和次数越高,多级别的重发策略便于定制,更为灵活。 6)服务端状态管理模块主要是维护客户端的长连接状态,如客户端上线、离线、暂时不接受某类消息等,该模块对消息推送策略的制定至关重要。 7)数据层的数据存储模块主要是对消息内容的保存和用户连接状态的存储,由于消息的量比较大,文件大小较小,采用缓存机制可以有效降低磁盘IO吞吐消耗,缓存机制的读取和存储速度较快,有效地提升系统的响应速度。 1.3重发策略分析 保障客户端的消息接收是本文的关键,难点在重发策略。消息重发策略包括服务端消息重发策略及客户端消息回执策略。为支持服务端消息重发功能,IM服务器需要维护一个消息重发队列,当IM服务器推送完成一条消息后,将该消息从待发队列中移到重发队列,IM服务器检测客户端的在线状态,如果在线,则立即发送,同时待成功收到客户端的回执时从重发队列删除相应的消息,如果不在线,则将消息存为离线消息,标识消息的发送时间和已发送次数。IM服务器采用集群方式,各个IM服务器需要共享同一个消息重发队列,本文借助Zookeeper实现消息队列的共享

文档评论(0)

zsmfjy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档