- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
龙源期刊网
基于AMQP的即时通讯系统的实现
作者:张乐
来源:《电子技术与软件工程》2017年第05期
摘要针对现在移动互联网复杂、信号不稳定的网络特点,设计了一套以RabbitMQ消息
中间件的即时通讯系统,在确保服务质量的情况下,减少了消息的冗余,减少了应用间的耦合
关系。使移动设备更加省电省流量,适用于当今移动互联网。
【关键词】AMQPRabbitMQ即时通讯
引言1
近几年来,移动互联网凭借其携带方便、接入迅速、业务内容丰富等特点,取得了前所未
有的高速发展。目前,移动应用服务呈现多样化,但是移动终端最基本的功能是满足用户的沟
通需求,因此即时通讯类应用以其随时随地沟通的特点,满足了用户的需求。
目前常用于即时通讯的两大协议是XMPP协议和SIMPLE协议。XMPP和SIMPLE都是
根据消息体里的消息头寻址的,在消息体里面含有消息的发送者、接收者、消息路由用的会话
标示信息等众多头域,使得消息体的体积变大,带宽利用率较低。XMPP和SIMPLE协议都是
基于字符文本的通信协议,其优点是可读性强,便于抓包分析,但字符文本协议通信效率较
低,并且,为了保证通信安全,采用TLS等加密传输计算量也较大,耗能较高。
移动互联网相对传统互联网最显著的特点就是其移动性,这种移动性随之带来的是诸多不
稳定、不可靠和随意性,使得移动互联网上的应用与应用服务器之间建立的网络连接可靠性较
差,很难保持长时间的连接状态,因此传统的通信模型,比如SIMPLE和XMPP中采用的消
息传递,不适合应用于移动互联网,移动互联网应用与应用服务器之间可以通过松散耦合的关
系来改善移动性带来的问题。
2AMQP及RabbitMQ
2.1AMQP
AMQP(AdvancedMessageQueuingProtocol),即高级消息队列是一个基于消息异步处理
的应用层高级消息队列协议,是消息中间件的开发标准。它的主要特征是面向消息、队列、路
由,且安全、可靠。AMQP是基于客户端/代理模式,为客户端应用与消息中间件之间提供异
步、安全、高效的交互。基于此协议的客户端与消息中间件可传递消息,并不受客户端和中间
件不同产品、不同开发语言等条件的限制。
2.2RabbitMQ
龙源期刊网
RabbitMQ是流行的开源消息队列系统,由以高性能、健壮以及可伸缩性出名的erlang语
言开发,是AMQP的标准实现。它可以支持各种消息交换的体系结构:
(1)存储转发(多个消息发送者,单个消息接收者);
(2)分布式事务(多个消息发送者,多个消息接收者);
(3)发布订阅(多个消息发送者,多个消息接收者);
(4)基于内容的路由(多个消息发送者,多个消息接收者);
(5)文件传输队列(多个消息发送者,多个消息接收者);
(6)点对点连接(单个消息发送者,单个消息接收者)。
RabbitMQ的主要特性包括如下方面:
(1)定义、队列、通道等概念,使对消息投递的控制更加精准灵活;
(2)支持高可用,以及消息和队列的持久化;
(3)支持集群,允许节点动态变化和节点故障;
(4)支持众多语言的客户端,包括Java、C/C++、php、.Netpython等;
(5)高性能、消息吞吐量大。
生产者发送消息到RabbitMQ服务器,在服务器内部,用户创建交换机和队列,通过绑定
规则将两者联系在一起。交换机负责分发消息,根据类型绑定的不同分发策略有区别。消息最
后来到队列中,等待消费者取走。
即时3通讯系统的设计
本文提出一种以RabbitMQ为消息中间件,采用发布/订阅模型作为消息传输机制,以
protobuf作为数据传输格式。采用C/S体系结构,将消息存储与转发,确保消息不重不漏,充
分的适应移动互联网的一套即时通讯的方案。
本文的消息系统可以看做是一个发布/订阅系统,有消息生产者publishe
文档评论(0)