1.下载
官网下载:下载链接
根据需要下载自己需要的版本、本文使用下载的是:4.7.0版本
2.安装
创建目录,使用ftp工具上传下载的包到上面创建的目录下。
cd /usr/local
mkdir rocketmq-all-4.7.0
注意:rocketmq 需要 Linux 上安装JDK,版本 1.8 以上,如果你 Linux 上已经配置了 Java 环境可跳过,未安装请自行安装。
上传之后进行解压:
unzip rocketmq-all-4.7.0-bin-release.zip
解压后目录结构
benchmark:这里面就是一些可以直接运行,进行测试的 sh 文件
bean:该目录是比较常用的,里面是一些可执行文件
conf:这里面就是一些配置文件
lib:就是 mq 所依赖的第三方 jar 包
3.启动
3.1 启动:NameServer
进入 bin 目录 cd bin/
nohup ./mqnamesrv &
或者
nohup sh bin/mqnamesrv &
查看日志
tail -f ~/logs/rocketmqlogs/namesrv.log
#出现下面信息成功
The Name Server boot success...
3.2 启动:Broker
在启动之前先修改两个配置:
cd bin
vim runserver.sh
mq 默认需要的内存是比较大的,根据自己 Linux 的内存大小去设置,我这里就改成 256 256 128 了
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
cd bin
vim runserver.sh
调整小点
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
启动Broker
nohup ./mqbroker -n localhost:9876 &
查看日志
tail -f ~/logs/rocketmqlogs/broker.log
看到下面信息代表成功
The broker[%s, 172.30.30.233:10911] boot success...
注意:不要把打印日志的这个窗口关闭、窗口关闭进程结束了
4.测试
新开开了两个窗口,都在 mq 的 bin 目录下,一个用于发送消息,一个用于接收消息。
前面开的窗口不要关闭、不要关闭。
发送消息:
# 声明一个 namesrv 的地址
export NAMESRV_ADDR=localhost:9876
# 发送消息
./tools.sh org.apache.rocketmq.example.quickstart.Producer
# 出现下面信息成功发送
SendResult [sendStatus=SEND_OK, msgId= ...
接收消息:
# 声明一个 namesrv 的地址
export NAMESRV_ADDR=localhost:9876
# 发送消息
./tools.sh org.apache.rocketmq.example.quickstart.Consumer
# 出现下面信息成功消费
ConsumeMessageThread_%d Receive New Messages: [MessageExt...
5.安装控制台
下载源码:链接
修改配置信息:进入到解压的文件夹下修改 application.yml 文件,根据情况修改,注意端口冲突问题。
编译源代码、输入cmd进入到目录下(maven已经按照配置完成)
mvn clean package -Dmaven.test.skip=true
打包成功之后会生成target目录
如果打包中报错:
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.11.3:install-node-and-yarn (install node and yarn) on project rocketmq-dashboard: Could not download Yarn: Could not download https://github.com/yarnpkg/yarn/releases/download/v1.22.10/yarn-v1.22.10.tar.gz: Connect to github.com:443 [github.com/20.205.243.166] failed: Connection timed out: connect -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
访问
https://github.com/yarnpkg/yarn/releases/download/v1.22.10/yarn-v1.22.10.tar.gz
手动下载、下载完成后找到maven配置的仓库地址下面的\com\github\eirslett\yarn\1.22.10、手动放进去。如果目录不存在手动创建。
cd /usr/local/rocketmq-all-4.7.0
#创建目录存放编译好的控制台jar包
mkdir rocketmq-console
使用ftp工具上传编译后的jar包到创建的目录下:
cd /usr/local/rocketmq-all-4.7.0/rocketmq-console
#启动jar包
java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar
浏览器访问:注意打包编译源码之前配置文件自己修改的是什么这里端口就是什么。
这里没有设置账号密码、可以直接访问。
5.控制台开启密码登录功能
修改下载的源码的配置文件
打开密码配置文件
默认users.properties配置如下,需要修改用户名和密码
# Define Admin
admin=admin,1
# Define Users
user1=user1
user2=user2
配置用户名和密码
# Define Admin
admin=新密码,1
# Define Users
用户名=新密码
修改配置之后、需要重新编译打包、在上传到服务器对应目录下。
账号admin密码123456
6.启停脚本
启动脚本:NameServer、Broker、console全部启动
vim startMq.sh
#!/bin/bash
rocketmq_path="/usr/local/rocketmq-all-4.7.0/rocketmq-all-4.7.0-bin-release"
dashboard_path="/usr/local/rocketmq-all-4.7.0/rocketmq-console/rocketmq-dashboard-1.0.1-SNAPSHOT.jar"
function log_info() {
echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] $@"
}
function log_error() {
echo "$(date '+%Y-%m-%d %H:%M:%S') [ERROR] $@" >&2
}
# 启动 mqnamesrv
nohup sh "$rocketmq_path/bin/mqnamesrv" > /dev/null 2>&1 &
log_info "Starting mqnamesrv..."
# 等待 mqnamesrv 启动完成
sleep 5
# 检查 mqnamesrv 是否成功启动
if ! pgrep -f "$rocketmq_path/bin/mqnamesrv" >/dev/null; then
log_error "Failed to start mqnamesrv."
exit 1
fi
log_info "mqnamesrv started successfully."
# 启动 mqbroker
nohup sh "$rocketmq_path/bin/mqbroker" -n localhost:9876 > /dev/null 2>&1 &
log_info "Starting mqbroker..."
# 等待 mqbroker 启动完成
sleep 5
# 检查 mqbroker 是否成功启动
if ! pgrep -f "$rocketmq_path/bin/mqbroker" >/dev/null; then
log_error "Failed to start mqbroker."
exit 1
fi
log_info "mqbroker started successfully."
# 启动 RocketMQ Dashboard
nohup java -jar "$dashboard_path" > /dev/null 2>&1 &
log_info "mqconsole started successfully..."
# 如果需要,在此处添加其他逻辑和命令
exit 0
停止脚本:NameServer、Broker、console全部停止
vim stopMq.sh
#!/bin/bash
sh /usr/local/rocketmq-all-4.7.0/rocketmq-all-4.7.0-bin-release/bin/mqshutdown broker
sh /usr/local/rocketmq-all-4.7.0/rocketmq-all-4.7.0-bin-release/bin/mqshutdown namesrv
# 指定进程名称
process_name="java -jar /usr/local/rocketmq-all-4.7.0/rocketmq-console/rocketmq-dashboard-1.0.1-SNAPSHOT.jar"
# 查询进程是否存在
pid=$(pgrep -f "$process_name")
if [ -n "$pid" ]; then
echo "Process is running with PID: $pid"
echo "Attempting to stop the process..."
# 关闭进程
kill "$pid"
sleep 5 # 等待一段时间以确保进程已经停止
# 再次查询进程是否存在
pid=$(pgrep -f "$process_name")
if [ -n "$pid" ]; then
echo "Failed to stop the process."
else
echo "Process stopped successfully."
fi
else
echo "No console running."
fi