RocketMQ在Docker下的部署

前言

现在网络上大部分的技术文章就是纯粹的复制粘贴,自己具体有没有去实际操作过都是要打上问号的。
众所周知,RocketMQ是name-server和broker一起协同工作的。
那么在docker下的部署,就要考虑到容器间的网络互联问题。
现在网络上清一色使用的是过时的--link来连接name-server和broker。
找一个日期靠前的部署教程,甚至都无法正常启动容器,所以才有了这篇文章。

文章说明

本教程完全由我反复部署,试验了3种不同环境,公司,家里,朋友电脑。全部能正常部署成功,期间出现的一些问题点也会给出解决方案。

1.镜像版本选择

从docker hub上查看到RocketMQ镜像最新版本为4.4.0。

那么就选择4.4.0了。

2.为容器网络互联创建RocketMQ的docker网络

# 后续的name-server,broker,rocketmq-console都会使用该网络
docker network create rocketmq

# 创建好网络可以使用docker inspect命令查看网络信息
docker inspect rocketmq

3.部署name-server

# 无须先pull镜像,docker run之前会自动下载镜像

docker run -d --name rmqnamesrv -p 9876:9876 \
--privileged=true \
--network rocketmq \
-v /docker/rocketmq/namesrv/logs:/root/logs \
-v /docker/rocketmq/namesrv/store:/root/store \
-e "MAX_POSSIBLE_HEAP=100000000" \
rocketmqinc/rocketmq:4.4.0 sh mqnamesrv autoCreateTopicEnable=true

参数说明:

  • --name rmqnamesrv:指定容器名称为rmqnamesrv,注意这个名字,后续会使用
  • --network rocketmq:为容器指定网络为rocketmq,同一网络下的容器能够通过容器名称互通。
  • --privileged=true:如果使用-v映射了目录,则使用该参数获取文件访问权限

查看启动成功后的日志:

docker logs -f rmqnamesrv
namesrv启动日志.png

4.部署broker

首先在宿主机创建broker的配置文件目录

sudo mkdir -p /docker/rocketmq/broker/conf

创建broker的配置文件broker.conf

vi /docker/rocketmq/broker/conf/broker.conf

broker.conf内容如下(记得修改brokerIP1的值为宿主机的ip地址)

brokerClusterName = DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
brokerIP1=192.168.81.120

部署broker

# 无须先pull镜像,docker run之前会自动下载镜像
docker run -d --name rmqbroker -p 10911:10911 -p 10909:10909 \
--privileged=true \
--network rocketmq \
-v /docker/rocketmq/broker/logs:/root/logs \
-v /docker/rocketmq/broker/store:/root/store \
-v /docker/rocketmq/broker/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf \
-e "NAMESRV_ADDR=rmqnamesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" \
rocketmqinc/rocketmq:4.4.0 sh mqbroker autoCreateTopicEnable=true -c /opt/rocketmq-4.4.0/conf/broker.conf

参数说明:

  • --network rocketmq:为容器指定网络为rocketmq,同一网络下的容器能够通过容器名称互通。
  • -e "NAMESRV_ADDR=rmqnamesrv:9876":此处的rmqnamesrv就是容器name-server的名称

查看启动日志:

docker logs -f rmqbroker
image.png

从日志可以看出,已经获取到配置文件中broker的ip地址。
name-server的地址则是由name-server容器名称:端口号组成。

下面来验证一下容器内部是否能够通过容器名称进行网络互联。
验证思路为从一个容器内部ping另一个容器,看是否能够ping通。

# 进入broker容器
docker exec -it rmqbroker /bin/bash

# ping name-server的容器名称
ping rmqnamesrv
image.png

能够ping通,说明网络是互通的,现在rocketmq就已经部署完毕了。
如果无法ping通容器,那么说明启动命令有问题,重新检查自己启动的命令。
如果无法ping通宿主机的ip,请重新按下述文章步骤安装docker。
CentOS下的docker部署 - Torture

为了后续方便,这里再部署一个RocketMQ的控制台。

5.部署console

console的部署就不说那么多了,直接上命令。

# 同样在启动的时候指定同一个network
# 注意修改rocketmq.namesrv.addr后面的地址为容器名称:端口号

docker run -d --name rmqconsole -p 8080:8080 --network rocketmq \
 -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876" styletang/rocketmq-console-ng

访问控制台:


控制台界面
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,829评论 1 331
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,603评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,846评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,600评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,780评论 3 272
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,695评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,136评论 2 293
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,862评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,453评论 0 229
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,942评论 2 233
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,347评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,790评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,293评论 3 221
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,839评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,448评论 0 181
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,564评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,623评论 2 249

推荐阅读更多精彩内容