前言
消息队列是在工作中作为服务解耦和消息推送等各种场景的应用中使用的组件,常用的队列组件有
- ActiveMQ
- RabbitMQ
- RocketMQ
- Kafka
消息队列主要有2种模式,点对点模式
跟发布/订阅模式
点对点模式
点对点模式
就是在消息队列离的消息只能让一个消费者消费,也就是消息只会被消费一次
,多个生产者可以往同一个消息队列发送消息,消费者消费的时候会将消费的消息锁住或移除来让其他消费者无法消费,如果消息被消费者处理失败后会重放到队列中等待重新消费。
发布/订阅模式
发布/订阅模式
中单个消息可以被多个订阅者进行处理,订阅也分临时订阅
跟持久订阅
临时订阅
:在临时订阅中消费者启动后才会订阅处理,如果消费者下线那么订阅的消息也会丢失
持久订阅
:持久订阅哪怕在消费者退出后也会维护订阅的消息,后续也可以重新处理
选型
如果在大数据领域大概率是选择Kafka
,在数据的吞吐量上远超其他,而ActiveMq
由Apache
推出,但是后续的维护越来越少,所以如果在非大数据领域上常用的现在推荐使用RabbitMQ
和RocketMQ
,具体的选型看各自选择,本文以RocketMQ
来进行安装测试。
安装
操作系统:Centos 7.6
所需依赖:JDK1.8
RocketMQ官网:RocketMQ
RocketMQ
需要依赖环境Java
,所以需要安装JAVA
环境,如果需要安装JDK1.8
可以看这篇文章:安装JDK1.8
下载RocketMQ安装包:
代码语言:javascript复制wget https://archive.apache.org/dist/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip
解压安装包
代码语言:javascript复制unzip rocketmq-all-4.7.1-bin-release.zip
挪移目录:
代码语言:javascript复制 mv rocketmq-all-4.7.1-bin-release /usr/local/rocketmq-4.7.1
修改配置文件:
代码语言:javascript复制vim /usr/local/rocketmq-4.7.1/conf/broker.conf
在配置的最下面增加以下几行配置
brokerIP1写成自己的公网地址
代码语言:javascript复制enablePropertyFilter=true
namesrvAddr=127.0.0.1:9876
brokerIP1=xxx.xxx.xxx.xxx
启动
启动命令:
代码语言:javascript复制nohup /usr/local/rocketmq-4.7.1/bin/mqnamesrv & nohup /usr/local/rocketmq-4.7.1/bin/mqbroker -c /usr/local/rocketmq-4.7.1/conf/broker.conf &
启动成功后检查mq的进程
代码语言:javascript复制ps -ef|grep rocketmq
如下图启动成功