欢迎来到天天文库
浏览记录
ID:42033641
大小:1.41 MB
页数:8页
时间:2019-09-05
《基于RabbitMQ的异步全双工消息总线的实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、2016年软件2016,Vol.37,No.02第37卷第02期COMPUTERENGINEERING&SOFTWARE国际IT传媒品牌基于RabbitMQ的异步全双工消息总线的实现鱼朝伟,詹舒波(北京邮电大学网络技术研究院,北京,100876)摘要:消息总线是一种通信工具,可以在机器之间互相传输消息、文件等。消息总线扮演着一种消息路由的角色,拥有一套完备的路由机制来决定消息传输方向。发送端只需要向消息总线发出消息而不用管消息被如何转发。RabbitMQ是一个开源跨平台跨语言的AMQP实现。首先介绍了RabbitMQ的特点,并对其相关对象和消息传递机制做了阐述。然后
2、,在其基础之上增加了消息总线控制功能,构建了一个通用的异步全双工消息总线,展示了部分实现细节,并验证了其性能,提出了相关改进意见,还探讨了在多线程并发环境下的线程安全问题。经过实践证明,该消息总线功能稳定,可以提高电信增值业务的开发效率和呼叫中心业务的处理性能。关键词:RabbitMQ;消息总线;线程安全;生产者-消费者模型中图分类号:TP311文献标识码:ADOI:10.3969/j.issn.1003-6970.2016.02.032本文著录格式:鱼朝伟,詹舒波.基于RabbitMQ的异步全双工消息总线的实现[J].软件,2016,37(02):139-146R
3、ealizationonAsynchronousFull-deplexMessageBusBasedonRabbitMQYUChao-wei,ZHANShu-bo(InstituteofNetworkTechnology,BeijingUniversityofPosts&Telecommunications,Beijing100876,China)【Abstract】:Messagebusisacommunicationtool,whichcantransfermessagesandfilesbetweenmachinesandsoon.Themessagebusa
4、ctsasaroleofmessagerouting,andhasacompleteroutingmechanismtodeterminethedirectionofmessagetransmission.Thesenderonlyneedstosendamessagetothemessagebusinsteadofthemessagebeingtransmitted.RabbitMQisanopensourcecrossplatformcrosslanguageAMQPimplementation.ThecharacteristicsofRabbitMQarein
5、troduced,andtherelatedobjectsandmessagetransfermechanismaredescribed.Then,onthebasisoftheabove,themessagebuscontrolfunctionisadded,andauniversalasynchronousfullduplexmessagebusiscon-structed.Anditsperformanceisverified,andtherelevantimprovementsuggestionsareputforward.Afterpractice,the
6、functionofthemessagebusisstable,anditcanimprovethedevelopmentefficiencyofthetelecomvalue-addedserviceandtheprocessingperformanceofthecallcenterbusiness.【Keywords】:RabbitMQ;Messagebus;Threadsafety;Producer-consumermodel0引言现。它能够异步传递消息,将彼此独立的计算机连接起来组成松耦合的系统,并且可以有效地屏蔽异构细当前各种应用大量使用异步消息模型,并随
7、之产节对外提供统一服务。生众多消息中间件(MOM)产品及协议,标准的不一对于企业内的系统交互,我们希望它尽可能保证致使应用与中间件之间的耦合限制产品的选择,并增数据的安全性。而数据通常都暂存在队列中,因此保加维护成本。AMQP是一个提供统一消息服务的应用证数据的安全性就顺其自然得转变成保证消息队列层标准协议,基于此协议的客户端与消息中间件可传访问的安全性:总是不应该让没有经过授权的客户端递消息,并不受客户端/中间件不同产品,不同开发去访问本不应该访问到的队列。可惜的是RabbitMQ语言等条件的限制。RabbitMQ是一个AMQP的实官方的客户端达不到这种要求,
此文档下载收益归作者所有