安装Rocket MQ
下载地址:下载 | RocketMQ
我下载的是:5.1.4
解压
unzip rocketmq-all-5.1.4-source-release.zip
编译
mvn -Prelease-all -DskipTests clean install -U
可能存在的问题
Failed to execute goal com.github.spotbugs:spotbugs-maven-plugin:4.2.2:spotbugs (spotbugs) on project rocketmq-common: Execution spotbugs of goal com.github.spotbugs:spotbugs-maven-plugin:4.2.2:spotbugs failed: java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release -> [Help 1]
原因
这个问题是由于 SpotBugs Maven 插件与 JDK 17 或更高版本的兼容性问题。JDK 17 开始,安全管理器(Security Manager)已被弃用,并计划在未来版本中移除。这导致某些工具(如 SpotBugs)在使用过程中出现兼容性问题。
我本机上装了一个17的JDK,然后mac 默认使用的是最高版本的JDK,从而导致编译失败。
Mac上操作JDK,可以看这篇文章:MAC上操作JDK-CSDN博客
启动
编译完后,会在当前目录下生成一个"/distribution"目录
然后我们进入到这里:/distribution/target/rocketmq-5.1.4/rocketmq-5.1.4/bin
#启动namesrv
nohup sh ./mqnamesrv &
#启动broker
nohup sh bin/mqbroker -n localhost:9876 &
查看启动日志
#查看namesrv的日志
tail -f ~/logs/rocketmqlogs/namesrv.log
#查看broker的日志
tail -f ~/logs/rocketmqlogs/broker.log
查看启动端口
#查看namesrv的端口
lsof -i:9876
#查看broker的端口
lsof -i:10911
操作消息
发送消息
#发送消息
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
消费消息
#消费消息
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
停止服务
#停止namesrv
sh bin/mqshutdown namesrv
#停止broker
sh bin/mqshutdown broker
安装Console
解压
unzip rocketmq-console-1.0.0
配置
解压后,会生成目录:/rocketmq-externals-rocketmq-console-1.0.0
进入:/rocketmq-externals-rocketmq-console-1.0.0/rocketmq-console/src/main/resources
vim application.properties
#这里设置namesrv的地址
rocketmq.config.namesrvAddr=127.0.0.1:9876
#我这里还修改了服务的端口(默认是8080,我还有其他服务也启动了,端口也是8080)
server.port=8085
我这里改成了本机(127.0.0.1)的了,端口就是刚才启动的namesrv的端口(9876)
打包
回到:/rocketmq-externals-rocketmq-console-1.0.0/rocketmq-console
mvn clean package -Dmaven.test.skip=true
启动
打包后,在/rocketmq-externals-rocketmq-console-1.0.0/rocketmq-console 目录下会创建一个“target”目录
进入:/rocketmq-externals-rocketmq-console-1.0.0/rocketmq-console/src/main/resources/target执行
nohup java -jar rocketmq-console-ng-1.0.0.jar &
查看日志
进入:/rocketmq-externals-rocketmq-console-1.0.0/rocketmq-console/target目录
tail -f nohup.out
停止
如果是:java -jar rocketmq-console-ng-1.0.0.jar & 这样运行,那么ctrl + c就可以了;
如果是:nohup java -jar rocketmq-console-ng-1.0.0.jar & 这样运行,那么可以先通过:lsof -i:8085找到PID,然后kill PID ;
8085是我在application.properties中自定义配置的,如果你没修改,那么你查的就是:lsof -i:8080