RabbitMQ(一)——简介

简介

  RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端。支持主流的操作系统,多种开发语言支持。

什么是MQ

  消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。
其主要用途:不同进程Process/线程Thread之间通信。

术语

通道(Channel):一个管道连接,是tcp连接内的连接(broker),使用现有的TCP连接进行数据传输;

交换器(Exchange):消息路由,生产者发送的消息并不是直接发送到队列中而是先到指定的路由中,然后由路由根据路由key绑定的队列发送到指定队列中;

绑定(Binding):建立路由和队列容器的绑定关系;

消息(Message):生产者和消费者需要的消息数据;

连接(Connection):一个tcp连接;

生产(Producing):发送消息的程序就是生产者(Producer),用P表示

队列(Queue):消息在RabbitMQ和应用程序之间传递,但他们也能被存在队列中。队列没有大小限制,你可以存储任意多的消息进队列到无限缓存中,可以多个生产者发送消息到同一队列,也可以多个消费者从一个队列接收消息。

消费(Consuming):等待接收消息的程序。

特点

  • 开源、性能优秀,稳定性保障

  • 提供可靠性消息投递模式、返回模式

  • 与Spring AMQP完美整合,API丰富

  • 集群模式丰富,表达式配置,HA模式,镜像队列模型

  • 保证数据不丢失的前提做到高可靠性、可用性

RabbitMQ(一)——简介