MQ
MQ全称为Message Queue(消息队列),是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信,队列的使用除去了接收和发送应用程序同时执行的要求。
解决问题:
解决了应用程序直接的耦合性问题,应用程序之间通过消息通信,接收者挂掉不会影响发送者。
主流MQ
目前市面上成熟主流的MQ有Kafka、RocketMQ、RabbitMQ。
Kafka
Apache下的一个子项目,使用scala实现的一个高性能分布式Publish/Subscribe消息队列系统。
RocketMQ
RocketMQ是一款分布式、队列模型的消息中间件。
安装
注意对操作系统有要求:
- 64位操作系统
- JDK1.8及以上
- 内存4GB以上
下载安装包,然后上传到服务器,并进行解压。
yum install unzip
unzip xxx
RocketMQ支持集群模式,可在conf配置
2m-2s-async:2主2从异步
2m-2s-sync:2主2从同步
2m-noslave:2主没有从