RabbitMQ入门介绍
2017-08-28 12:12 钰火 阅读(292) 评论(0) 编辑 收藏 举报1.关于AMQP协议
AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。关于AMQP协议的历史,阅读文末。
2.AMQP模型
Publisher(生产者)
Customer(消费者)
Broker(服务器,接收和分发消息)
Exchange(交换器)
Queue(队列,用于暂时存放数据)
Channel(消息通道,Channel作为轻量级的Connection极大减少了操作系统建立TCP connection的开销)
Binding(exchange和queue之间的虚拟连接,binding中可以包含routing key。Binding信息被保存到exchange中的查询表中,用于message的分发依据)
Virtual Host(虚拟分组,当多个不同的用户使用同一个RabbitMQ server提供的服务时,可以划分出多个vhost,每个用户在自己的vhost创建exchange/queue等)
3.关于RabbitMQ
RabbitMQ是用Erlang实现的,设计结构图如下:
相关概念已在第二点AMQP模型中阐述,接下去就要开始实战进行操作了。
消息队列的历史
Message Queue的需求由来已久,80年代最早在金融交易中,高盛等公司采用Teknekron公司的产品,当时的Message queuing软件叫做:the information bus(TIB)。 TIB被电信和通讯公司采用,路透社收购了Teknekron公司。之后,IBM开发了MQSeries,微软开发了Microsoft Message Queue(MSMQ)。这些商业MQ供应商的问题是厂商锁定,价格高昂。2001年,Java Message queuing试图解决锁定和交互性的问题,但对应用来说反而更加麻烦了。
于是2004年,摩根大通和iMatrix开始着手Advanced Message Queuing Protocol (AMQP)开放标准的开发。2006年,AMQP规范发布。2007年,Rabbit技术公司基于AMQP标准开发的RabbitMQ 1.0 发布