「这是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战」
在MQ中现在最常用的MQ分为三种:RabbitMQ,RocketMQ,Kafka,这这篇中主要介绍下RocketMQ单机版本的安装,帮助小白快速入门,能够快速的初始RocketMQ。 为了快速的入门学习RocketMQ,可以在虚拟机上面安装一个单机版的RocketMQ用于学习及入门使用,在接下来的步骤记录下我自己安装的操作,方便以后自己查看。单机版MQ在生产环境是禁止使用,RocketMQ支持集群安装,线上都采用集群安装模式。 在安装之前先对MQ的几个组件简单的描述:
- NameServer:类似ZK,提供注册服务中心,为Broker提供轻量级的路由注册服务
- Broker: 核心组件,实际负责消息的处理,存储,转发等服务
- Produer:业务系统维护,负责MQ消息的发送(生产者)
- Consumer:业务系统维护,负责MQ消息的消费(消费者)
在安装的时候,只需要安装NameServer及Broker,先启动NameServer后启动Broker。
环境准备
- Centos 7 虚拟机一台
- JDK 1.8 环境安装
- RocketMQ安装包release包
- RocketMQ界面控制台
由于官方未提供控制台,开源社区有一套控制台界面 gitcode.net/mirrors/apa…
RocketMQ安装
- 将rocketmq-all-4.9.2-bin-release.zip解压并移动到:/usr/local/rocketmq 目录下,然后进入/usr/local/rocketmq 目录中启动
启动NameServer
启动NameServer比较简单,直接启动ROCKETMQ_HOME/bin/runserver.sh 文件中JAVA_OPT参数
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
启动命令:
cd /usr/local/rocketmq
nohup bin/mqnamesrv &
启动日志会打印到当前文件夹下的nohup.out 中
启动Broker
Broker的启动步骤跟NameServer一样,需要启动ROCKETMQ_HOME/bin/runbroker.sh 文件中JAVA_OPT参数
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmx512m -Xmn256m"
启动命令:
在启动的时候,需要指定启动配置文件,不然配置的参数不生效:broker.conf
cd /usr/local/rocketmq
nohup bin/mqbroker -c conf/broker.conf &
- 安装控制台
由于控制台下载的是源码,则需要采用maven 命令打包成jar
mvn clean package -Dmaven.test.skip=true
将打包好的rocketmq-console-ng-1.0.0.jar上传到服务器,/usr/local/rocketmq下,然后启动:
cd /usr/local/rocketmq
nohup java -jar rocketmq-console-ng-1.0.1.jar &
启动成功后,访问虚拟机的IP:8080 就可访问
如果下载的源码,没有在配置文件中(rocketmq.config.namesrvAddr)指定NameServer的地址,则需要在虚拟机的环境中配置NameServer的地址
#if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876 rocketmq.config.namesrvAddr=
在这里,就在虚拟机的环境中配置NAMESRV_ADDR 地址,在/etc/profile文件后面追加下面的参数,然后使配置文件生效
#rocketmq
export NAMESRV_ADDR=localhost:9876
source /etc/profile
重启rocketmq-console-ng 即可
服务验证
查看端口使用启动
netstat -ntlp |grep java
可以看到启动了一堆端口
- 9876:NameServer启动的端口,用于注册地址
- 8080:控制台启动端口,用于界面访问
- 10909/10911/10912:Broker内部通信端口
使用生产者工具发送消息
由于RocketMQ的配置不允许使用的时候创建Topic,则需要在$ROCKETMQ_HOME/conf/broker.conf 尾部增加配置,允许自动创建Topic
autoCreateTopicEnable=true
使用bin/tools.sh 发送消息,默认发送1000条消息
cd /usr/local/rocketmq/
bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
使用消费者工具接收消息
使用bin/tools.sh 接收消息
cd /usr/local/rocketmq/
bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
到这里单机版的RocketMQ安装完成
关闭RocketMQ服务
关闭NameServer
cd /usr/local/rocketmq/
sh bin/mqshutdown namesrv
关闭Broker
cd /usr/local/rocketmq/
sh bin/mqshutdown broker
关闭控制台
找到8080端口的pid,使用kill -9 杀死
netstat -ntlp |grep 8080
kill -9 1836