微信开发RabbitMQ介绍
白羽 2019-07-11 来源 :网络 阅读 3111 评论 0

摘要:本文将带你了解微信开发RabbitMQ介绍,希望本文对大家学微信有所帮助。

    本文将带你了解微信开发RabbitMQ介绍,希望本文对大家学微信有所帮助。

微信开发RabbitMQ介绍

"
    什么是MQ?由来?RabbitMQ由来?AMQP是什么?
    RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP   的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP   等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的   6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。
    应用场景。对于一个大型的软件系统来说,它会有很多的组件或者说模块或者说子系统或者(subsystem or Component or   submodule)。那么这些模块的如何通信?这和传统的IPC有很大的区别。传统的IPC很多都是在单一系统上的,模块耦合性很大,不适合扩展(Scalability);如果使用socket那么不同的模块的确可以部署到不同的机器上,但是还是有很多问题需要解决。比如:
     1)信息的发送者和接收者如何维持这个连接,如果一方的连接中断,这期间的数据如何方式丢失?
   
     2)如何降低发送者和接收者的耦合度?
   
     3)如何让Priority高的接收者先接到数据?
   
     4)如何做到load balance?有效均衡接收者的负载?
   
     5)如何有效的将数据发送到相关的接收者?也就是说将接收者subscribe   不同的数据,如何做有效的filter。
   
     6)如何做到可扩展,甚至将这个通信模块发到cluster上?
   
     7)如何保证接收者接收到了完整,正确的数据?
   
        AMDQ协议解决了以上的问题,而RabbitMQ实现了AMQP。
   
    消息队列的由来和发展过程。1983年,有个印度人Vivek Ranadive突发奇想,觉得软件系统中也应该有类似硬件总线的东西,其它的应用可以接到软件总线上,方便地实现应用间消息通信的工作。为此他创建了Teknekron公司,但直到1985年,他才终于找到了第一个客户高盛,以及软件总线天生用来解决的问题:金融交易。
      当时的交易员的小隔间内挤满了用来完成交易的各种终端,每台终端显示不同类型的信息。如果用软件总线来处理各种不同类型的信息,那么交易员只需要一个终端来接入软件总线,订阅他想要的消息。于是发布订阅模式诞生了,同时诞生了第一个消息队列软件TIB(The   Information Bus)。很快,这种数据传输模式便得到更广泛的应用,并进入了电信、新闻行业。1994年,路透社收购了Teknekron。
   
    这个迅猛发展的软件很快得到了IBM的关注,因此在80年代后期,IBM开始研究自己的消息队列软件,1993年IBM   MQ产品系列面世,之后的17年,MQ系列进化成了WebSphere   MQ并统治着商业消息队列市场。那段时间,TIB也一直活在,后来更名为Rendezvous。1997年,Teknekron以TIBCO的形式作为一家独立公司再度出现。同年,微软也开发了自己的消息通信软件MSMQ。
   
    JMS(jave message   service)的诞生。MQ软件几个供应商之间的壁垒森严,各个产品的通信协议、接口都不相同,如果你选择了一个产品,想要换另一个产品,显然需要修改接入应用。供应商的壁垒维持着足够高的价格和利润率,只有大型组织机构才能用的起MQ。为了打破壁垒,使得同一个应用可以消费不同的MQ产品,2001年,JMS诞生了。JMS提供公共的API接口,隐藏各个MQ产品的实际接口,这样应用程序只需要针对JMS   API编程,选择合适的MQ驱动即可,JMS会打理好其它的部分。
   
    AMQP(advanced message queuing   protocol)的诞生。JMS虽然很好地胶合了各个MQ的接口,但是各个MQ的协议还是不一致,而且也不是开放的。显然有人并不满足以此。2004年,JPMorgan   Chase和iMatix合作开发了AMQP,这是一个开放标准,任何人都可以执行这一标准,针对这一标准编码的任何人都可以和任意AMQP供应商提供的MQ交互。
   
    RabbitMQ的由来。2004年,伦敦金融部门的企业家Alexis想要开一家公司去解决分布式环境下的通信问题,他认识到消息通信才是分布式计算的解决方案。这段时间AMQP正开始开发,他的金融背景使他认识了AMQP的主要负责人John   O'Hara,于是准备基于AMQP来创建MQ服务。他找到Matthias探讨AMQP,Matthias对Erlang比较有研究,觉得Erlang很适合用来处理分布式消息通信,经过一番验证,2006年,他们成立了Rabbit   Technologies公司来开发RabbitMQ。大家都觉得Rabbit这个名字不错,毕竟rabbit行动非常迅速,而且繁殖起来也很疯狂。刚好这时候AMQP草案也公开了,由于采用Erlang语言,让他们能快速开发并跟上AMQP标准前进的节奏。目前RabbitMQ得到了广泛的应用,从初创的小公司,到商业巨头。rabbitMQ开源。
    "    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 1
看完这篇文章有何感觉?已经有2人表态,50%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程