RabbitMQ消息队列
一 . MQ简介
在计算机科学中,消息队列(英语:Message queue)是一种进程间通信或同一进程的 不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。 消息队列提 供了异步的通信协议,每一个贮列中的纪录包含详细说明的数据,包含发生的时间,输入设 备的种类,以及特定的输入参数,也就是说:消息的发送者和接收者不需要同时与消息队列 互交。消息会保存在队列中,直到接收者取回它。
-
实现
消息队列常常保存在链表结构中。拥有权限的进程可以向消息队列中写入或读取消息。当前使用较多的消息队列有 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMq 等,而部分数据库如 Redis、Mysql 以及 phxsql 也可实现消息队列的功能。
(kafka大数据中的消息队列,在处理日志方面是很出色的)
-
特点
MQ 是消费者-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一 端则可以读取或者订阅队列中的消息。
MQ 和 JMS 类似,但不同的是 JMS 是 SUN JAVA 消息中间件服务的一个标准和 API 定义 (jms要求生产者和消费者必须是java语言开发的才行), 而 MQ 则是遵循了 AMQP 协议的具体实现和产品。
注意 :
- AMQP,即 Advanced Message Queuing Protocol, 是一个提供统消息服务的应用层标准高级消息队列协议 .是应用层协议的一个开放标准,为面向消息的中间件设计。基于 此协议的客户端与消息中间件可