消息队列(Message Queue, MQ),顾名思义,就是存放消息的队列,MQ遵循先入先出原则( First Input First Output, FIFO)。且是一种跨进程的通信机制,主要用于上下游传递消息,MQ是一种常见的上下游“逻辑解耦+物理解耦”的消息通信服务。引入MQ之后,系统和系统间只需要依赖于MQ,而无需进行直接依赖。
实现:消息队列常常保存在链表结构中。拥有权限的进程可以向消息队列中写入或读取消息。[1]
目前,有很多消息队列有很多开源的实现,包括JBoss Messaging、JORAM、Apache ActiveMQ、Sun Open Message Queue、RabbitMQ、IBM MQ、Apache Qpid、Apache RocketMQ和HTTPSQS。