参考了无数个教程失败以后,我最后照着https://blog.csdn.net/lblblblblzdx/article/details/87938405 修改了一些内容终于把rockrtmq搭好了「😢」。
首先把打开docker把rocketmq镜像拉下来
可以先搜索你想要的镜像
docker search rocketmq
接着拉镜像(由于第一次使用docker 我也是随便拉的镜像,版本可自行选择
docker pull rocketmqinc/rocketmq:4.4.0
由于待会要使用rocketmq-console,这里就先拉下来吧
docker pull styletang/rocketmq-console-ng:latest
接着开始配置,可以先启动nameserver,我是这么启动的
1 docker run -d -p 9876:9876 -v /Users/manwaa/work/docker/data/namesrv/logs:/root/logs -v /Users/manwaa/work/docker/data/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq:4.4.0 sh mqnamesrv
实际上
docker run -d -p 9876:9876 -v {本机你想保存数据的地址}/data/namesrv/logs:/root/logs -v {本机你想保存数据的地址}/data/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq:4.4.0 sh mqnamesrv
启用broker之前要先配置 ,
{本机你用来保存设置的地址}/conf/broker.conf 创建文件
broker.conf
brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH # 以下是我添加的 # 配置nameserver的地址,broker需要上报状态给nameserver #172.17.0.2 是我进入容器hosts文件查出来的 !!请注意 namesrvAddr = 172.17.0.2:9876 # 配置监听地址,nameserver会将此地址提供给客户端使用 # 如果mq服务需要在外网使用则配成外网,需要在内网使用则配成内网地址 brokerIP1 = {本机外网地址} # 监听端口,默认是10911 listenPort = 10911
接着启动broker
docker run -d -p 10911:10911 -p 10909:10909 --name rmqb \ -v {本机你用来保存设置的地址}/conf/broker.conf:/etc/rocketmq/broker.conf \ -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \ rocketmqinc/rocketmq:4.4.0 sh mqbroker
接着就可以启动console了
docker run --name rmqconsole -p 8900:8080 \ -e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.17.0.2:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \ -t styletang/rocketmq-console-ng
##这里注意
8900:8080中的8090是你访问console时的端口,可以自己改
172.17.0.2 是我从容器hosts里查出来的,自行检查更改(应该是一样的吧 hhhh
到了这里运行成功就可以打开localhost:8900访问console啦!(虽然一片空白 给你欣赏一下我一天的成果ps:fuck