RabbitMQ学习之:(三)AMQP和RabbitMQ介绍
准备开始 高级消息队列协议(AMQP 1 )是一个异步消息传递所使用的应用层协议规范。作为线路层协议,而不是API(例如JMS 2 ),AMQP客户端能够无视消息的来源任意发送和接受信息。现在,已经有相当一部分不同平台的服务器 3 和客户端可以投入使用 4 。 AMQP的原始用途只是为金融界提供一个可以彼此协作的消息协议,而现在的目标则是为通用消息队列架构提供通用构建工具。因此,面向消息的中间件(MOM)系统,例如发布/订阅队列,没有作为基本元素实现。反而通过发送简化的AMQ实体,用户被赋予了构建例如这些实体的能力。这些实体也是规范的一部分,形成了在线路层协议顶端的一个层级:AMQP模型。这个模型统一了消息模式,诸如之前提到的发布/订阅,队列,事务以及流数据,并且添加了额外的特性,例如更易于扩展,基于内容的路由。 本文中区别发布/订阅是为了将生产者和消费者拆分开来: 生产者无需知道消费者按照什么标准接受消息 。队列是一个先入先出的数据结构。路由封装了消息队列中的消息的相关信息,这些信息决定了消息在异步消息系统中的最终展现形式。 在这里,我尝试解释一下这个模型的一些概念,Aman Gupta使用Ruby 5 实现了AMQP模型 6 。它使用的是一种事件驱动架构(基于EventMachine 7 ),在阅读和使用的时候都会让人觉得有些不太熟悉