為了開發方便,有時需要在本地部署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:
發送消息:
查詢消息