1.什么是MQ
- 消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。
- 其主要用途:不同进程Process/线程Thread之间通信。
1.1为什么会产生消息队列?有几个原因:
- 不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程,为了隔离这两个进程,在两进程间抽离出一层(一个模块),所有两进程之间传递的消息,都必须通过消息队列来传递,单独修改某一个进程,不会影响另一个;
- 不同进程(process)之间传递消息时,为了实现标准化,将消息的格式规范化了,并且,某一个进程接受的消息太多,一下子无法处理完,并且也有先后顺序,必须对收到的消息进行排队,因此诞生了事实上的消息队列;
- 关于消息队列的详细介绍请参阅:
- 《Java帝国之消息队列》
- 《一个故事告诉你什么是消息队列》
- 《到底什么时候该使用MQ》
- MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka,以及阿里开源的RocketMQ。本文主要介绍RabbitMq。
- 本教程pdf及代码下载地址:
2.RabbitMQ简介
2.1.RabbitMQ的简介
开发语言:Erlang – 面向并发的编程语言。
2.1.1AMQP
AMQP是消息队列的一个协议。
2.2.官网
2.3.MQ的其他产品
2.4.学习5种队列
2.5.安装文档
具体可参考文档:https://www.rabbitmq.com/documentation.html