RocketMQ运行版本下载地址: Rocketmq-all-4.7.1-bin-release.zip
RocketMQ源码版本下载地址: https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.7.1/r ocketmq-all-4.7.1-source-release.zip
这两个版本我们都下载下来。
1、创建用户及目录,创建一个操作用户用来运行自己的程序,与root用户区分开。
- #设置用户密码
- [root@worker1 ~]# useradd app
- [root@worker1 ~]# passwd app
- #创建目录,并更改用户及用户组
- [root@worker1 ~]# mkdir /home/app
- [root@worker1 ~]# chown oper:oper /home/app
2、解压文件,进入到rocketmq目录,没有的话创建一下。
- su app #切换用户
- cd /home/app #切换目录
- mkdir rocketmq #创建目录
- tar -zxvf rocketmq-all-4.7.1-bin-release.zip #解压文件
3、配制环境变量,完成安装
- 1、把rocketmq的bin目录也配置到环境变量当中
- 执行命令:vi ~/.bash_profile
- export JAVA_HOME=/app/jdk1.8/
- export ROCKETMQ_HOME=/home/app/rocketmq/rocketmq-all-4.7.1-bin-release
- PATH=$ROCKETMQ_HOME/bin:$JAVA_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
- export PATH
- 处理添加ROCKETMQ_HOME 并修改 PATH
- 2、退出编辑,并执行source ~/.bash_profile让环境变量生效
RocketMQ由以下这几个组件组成,所以我们要启动RocketMQ服务,需要先启动NameServer。
1、修改NameServer服务的启动内存,再启动
- RocketMQ默认预设的JVM内存是4G,这是RocketMQ给我们的最佳配置,修改的方式是直接修改
- bin/runserver.sh。 用vi runserver.sh编辑这个脚本
-
- 修改为如下:
- JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m
- XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
-
- 然后我们用静默启动的方式启动NameServer服务
- nohup bin/mqnamesrv &

2、启动broker,Broker的默认预设内存是8G,也需要调整再启动(先确认namesrv启动完,再执行)
- bin目录下 vi runbroker.sh,找到这一行,内存调整如下:
- JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"
-
- 找到conf/broker.conf, vi指令进行编辑,在最下面加入一个配置
- autoCreateTopicEnable=true
-
- 然后也以静默启动的方式启动runbroker.sh
- nohup ./mqbroker &
-
- ## 这个方式启动,可以在mq的管理console界面上看到集群信息
- nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true &

3、校验broker是否连上namesrv
执行命令:sh mqadmin clusterList -n localhost:9876 如果看到下图所示,则代表连接成功

mq的管理console界面上看到集群信息

在RocketMQ的安装包中,提供了一个tools.sh工具可以用来在命令行快速验证RocketMQ服务。
首先需要配置一个环境变量NAMESRV_ADDR指向我们启动的NameServer服务。
启动消息生产者发送消息:默认会发1000条消息
启动消息消费者接收消息
注意:如果在发送消息时报如下错
org.apache.rocketmq.acl.common.AclException: [10015:signature-failed] unable to calculate a request signature. error=[10015:signature-failed] unable to calculate a request signature. error=Algorithm HmacSHA1 not available
可以尝试通过这些操作试一下
修改tools.sh的内存
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx256m -Xmn64m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"
配置tools.sh的"Djava.ext.dirs",添加jvm的ext绝对路径,在最后加上
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib:${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext:/usr/lib/jvm/java-1.8.0-openjdk/jre/lib/ext"
要关闭RocketMQ服务可以通过mqshutdown脚本直接关闭
- # 1.关闭NameServer
- sh bin/mqshutdown namesrv
- # 2.关闭Broker
- sh bin/mqshutdown broker