为了开发方便,有时需要在本地部署rocketmq,使用docker是一个高性价比的方式,故有此文。
目录:
(1).mac本地docker化rocketmq
(2).mac本地docker化rocketmq-console
(3).测试
(1).mac本地docker化rocketmq
现在官方rocketmq-docker:
git clone https://github.com/apache/rocketmq-docker
创建镜像,我们使用
cd image-build
sh build-image.sh RMQ-VERSION BASE-IMAGE
我选择的版本是4.7.1:
sh build-image.sh 4.7.1 alpine
时间比较长,耐心等待:
docker images | grep -i rocketmq
回到工程根目录执行脚本生成各种配置文件:
sh stage.sh 4.7.1
然后进入生成的目录:cd stages/4.7.1
只是本地开发用,所以single足够:
sh ./play-docker.sh alpine
可以看到有两个容器:1个是namesrv,1个是broker。
docker ps | grep -i rocketmq
测试broker和namesrv的端口OK:
(2).mac本地docker化rocketmq-console
官方rocketmq-console-docker位于:
https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console
下载镜像:
docker pull apacherocketmq/rocketmq-console:2.0.0
由于要访问rocketmq-namesrv和broker容器,所以需要做link:
容器name使用如下命令进行查询:
docker inspect c39349241840 | grep -i name
或:
docker inspect -f=’{{.Name}}’ $(sudo docker ps -a -q)
部署rocketmq-console容器:
docker run -d -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" --link rmqnamesrv:rmqnamesrv -p 8080:8080 -t apacherocketmq/rocketmq-console:2.0.0
本地访问rocketmq-console:
http://127.0.0.1:8080
(3).测试
新建topic:
发送消息:
查询消息