单机部署:
官网文档地址:
https://rocketmq.apache.org/zh/docs/4.x
参考文档:
windows安装RocketMQ_rocketmq windows_book多得的博客-CSDN博客
下载地址:
https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip
解压到本地,

bin中有各种执行脚本,包含windows和linux的
windows单机部署:
先配置环境变量

启动namesrv
进入rocketmq解压后的文件夹路径,
双击mqnamesrv.cmd或runserver.cmd, mqnamesrv.cmd内部也是调用runserver.cmd

namesrv在rocketmq中相当于一个服务注册中心:

根据官方文档说明,通过namesrv拉取broker信息,真正消息发送和消费都是通过broker
启动broker
在conf文件夹中有很多conf文件,这就涉及到rocketmq的部署方式;
集群模式:参考 RocketMQ 集群配置 - 知乎
2m-2s-async(本文采用模式)-2主2从异步刷盘(吞吐量较大,但是消息可能丢失)
2m-2s-sync:2主2从同步刷盘(吞吐量会下降,但是消息更安全)
2m-noslave :2主无从(单点故障),然后还可以直接配置broker.conf,进行单点环境配置
dledger:用来实现主从切换的。集群中的节点会基于Raft协议随机选举出一个leader,
其他的就都是follower。通常正式环境都会采用这种方式来搭建集群。
然后就是broker.conf文件,根据一些资料说这个是单机的默认配置文件,但是似乎不是,启动的时候需要指定这个文件才行。
broker配置:

其中brokerIP1指向rocketmq配置的外网地址,autoCreateEnableTopic = true表示开启自动创建topic功能,此功能线下测试用用就好,上线最好不要开启,如需要手动创建topic,命令如下 :
sh bin/mqadmin updateTopic -c DefaultCluster -t TopicTest -n 127.0.0.1:9876
启动broker命令
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true -c ../conf/broker.conf
其中autoCreateTopicEnable如果在broker.conf中已配置则可去除。
启动console,mq的控制台
下载地址:GitHub - apache/rocketmq-externals: Mirror of Apache RocketMQ (Incubating)
使用idea工具open项目,切换分支。

去除启动类上的注释

修改配置

启动项目,访问项目地址

正常情况下cluster和topic都不为空的,为空说明配置有问题,现在可以使用mq了
Docker部署:
启动namesrv
docker run -d --name rmqnamesrv -p 9876:9876 -e "NAMESRV_ADDR=192.168.31.26:9876" -v D:\mqvolume\logs:/home/rocketmq/logs -v D:\mqvolume\store:/home/rocketmq/store apache/rocketmq:4.9.4 sh mqnamesrv
启动broker
docker run -d --name rmqbroker -p 10911:10911 -p 10912:10912 -v D:\mqvolume\logs:/home/rocketmq/logs -v D:\mqvolume\store:/home/rocketmq/store -v D:\mqvolume\broker.conf:/home/rocketmq/rocketmq-4.9.4/conf/broker.conf -e "NAMESRV_ADDR=192.168.31.26:9876" apache/rocketmq:4.9.4 sh mqbroker -c /home/rocketmq/rocketmq-4.9.4/conf/broker.conf
启动控制台
docker run -e "JAVA_OPTS=-Drocketmq.config.namesrvAddr=192.168.31.26:9876 -Drocketmq.config.isVIPChannel=false" -p 8088:8080 styletang/rocketmq-console-ng