「这是我参与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比较简单,直接启动ROCKETMQHOME/bin目录下的mqnamesrv,就可以启动NameServer服务,但是我们是在虚拟机上面启动,RocketMQ启动NameServer的时候配置文件默认内存时4G,就需要将JVM的内存调小,不然无法启动。修改ROCKETMQ_HOME/bin目录下的mqnamesrv,就可以启动NameServer服务,但是我们是在虚拟机上面启动,RocketMQ启动NameServer的时候配置文件默认内存时4G,就需要将JVM的内存调小,不然无法启动。
修改 ROCKETMQHOME/bin目录下的mqnamesrv,就可以启动NameServer服务,但是我们是在虚拟机上面启动,RocketMQ启动NameServer的时候配置文件默认内存时4G,就需要将JVM的内存调小,不然无法启动。修改ROCKETMQ_HOME/bin/runserver.sh 文件中JAVA_OPT参数
JAVA_OPT=”${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m”
启动命令:
1 | sql复制代码cd /usr/local/rocketmq |
启动日志会打印到当前文件夹下的nohup.out 中
启动Broker
Broker的启动步骤跟NameServer一样,需要启动ROCKETMQHOME/bin目录下的mqbroker,在虚拟机安装的时候,也需要将Jvm的内存改小,Broker默认的内存大小是8G。修改ROCKETMQ_HOME/bin目录下的mqbroker,在虚拟机安装的时候,也需要将Jvm的内存改小,Broker默认的内存大小是8G。
修改 ROCKETMQHOME/bin目录下的mqbroker,在虚拟机安装的时候,也需要将Jvm的内存改小,Broker默认的内存大小是8G。修改ROCKETMQ_HOME/bin/runbroker.sh 文件中JAVA_OPT参数
JAVA_OPT=”${JAVA_OPT} -server -Xms512m -Xmx512m -Xmx512m -Xmn256m”
启动命令:
在启动的时候,需要指定启动配置文件,不然配置的参数不生效:broker.conf
1 | sql复制代码cd /usr/local/rocketmq |
- 安装控制台
由于控制台下载的是源码,则需要采用maven 命令打包成jar
mvn clean package -Dmaven.test.skip=true
将打包好的rocketmq-console-ng-1.0.0.jar上传到服务器,/usr/local/rocketmq下,然后启动:
1 | sql复制代码cd /usr/local/rocketmq |
启动成功后,访问虚拟机的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文件后面追加下面的参数,然后使配置文件生效
1 | sql复制代码#rocketmq |
source /etc/profile
重启rocketmq-console-ng 即可
服务验证
查看端口使用启动
1 | sql复制代码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条消息
1 | sql复制代码cd /usr/local/rocketmq/ |
使用消费者工具接收消息
使用bin/tools.sh 接收消息
1 | sql复制代码cd /usr/local/rocketmq/ |
到这里单机版的RocketMQ安装完成
关闭RocketMQ服务
关闭NameServer
1 | sql复制代码cd /usr/local/rocketmq/ |
关闭Broker
1 | sql复制代码cd /usr/local/rocketmq/ |
关闭控制台
找到8080端口的pid,使用kill -9 杀死
1 | sql复制代码 netstat -ntlp |grep 8080 |
本文转载自: 掘金