什么是消息队列?
消息队列(Message Queue)是开发中常见的中间件,是信息传输中保存信息的容器。是生产者、消费者模型。生产者向消息队列发送消息,消费者在消息队列中取消息消费。实现了解耦,不存在业务逻辑的侵入。它相当于是一个中介,主要进行信息的交换
业务场景
- es检索数据中消息修改的同步。
- 短信、邮件的发送。
AMQP和JMS
MQ是消息通信的模型,现在实现MQ的方式主要两种:AMQP、JMS。
两者间的区别和联系:
- JMS是定义了统一的接口,来对消息操作进行统一;AMQP是通过规定协议来统一数据交互的格式
- JMS限定了必须使用Java语言;AMQP只是协议,不规定实现方式,因此是跨语言的。
- JMS规定了两种消息模型;而AMQP的消息模型更加丰富
常见的MQ产品
-
ActiveMQ:基于JMS
-
RabbitMQ:基于AMQP协议,erlang语言开发,稳定性好
-
RocketMQ:基于JMS,阿里巴巴产品,目前交由Apache基金会
-
Kafka:分布式消息系统,高吞吐量
下载安装
因为RabbitMQ下载依托Erlang环境,所以需要安装对应版本的Erlang。
RabbitMQ下载地址:http://www.rabbitmq.com/download.html