【RocketMQ】005-Docker 部署 RocketMQ
一、部署
1、拉取镜像
MQ 镜像
docker pull rocketmqinc/rocketmq:latest
可视化平台镜像
docker pull styletang/rocketmq-console-ng:latest
2、创建挂载目录
创建 nameserver 挂载目录
mkdir -p /home/zibo/docker/rocketmq/data/namesrv/logs /home/zibo/docker/rocketmq/data/namesrv/store
创建 broker 目录
mkdir -p /home/zibo/docker/rocketmq/data/broker/logs /home/zibo/docker/rocketmq/data/broker/store
创建 broker 配置文件目录
mkdir -p /home/zibo/docker/rocketmq/data/conf
3、编辑配置文件
目录:/home/zibo/docker/rocketmq/data/conf
vim broker.conf
# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = DefaultCluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
# 设置broker节点所在服务器的ip地址,也就是centosOS7的服务ip
brokerIP1 = [ip地址]
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95
4、启动服务
启动 nameserver
docker run -d --restart=always --name rocketmq_nameserver -p 9876:9876 -v /home/zibo/docker/rocketmq/data/namesrv/logs:/root/logs -v /home/zibo/docker/rocketmq/data/namesrv/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv
-
docker run
: 这是Docker命令,用于创建和管理Docker容器。 -
-d
: 这是一个选项,指示Docker在后台运行容器。 -
--restart=always
: 这是一个选项,指示Docker容器在退出时总是重新启动。 -
--name rocketmq_nameserver
: 这是一个选项,用于为容器指定名称,这里将容器命名为"rocketmq_nameserver"。 -
-p 9876:9876
: 这是一个选项,用于将主机的端口9876映射到容器的端口9876。RocketMQ的NameServer使用端口9876进行通信。 -
-v /home/zibo/docker/rocketmq/data/namesrv/logs:/root/logs
: 这是一个选项,用于将主机上的目录/home/zibo/docker/rocketmq/data/namesrv/logs
挂载到容器中的/root/logs
目录。这样做是为了将NameServer的日志文件保存在主机上,方便查看和管理。 -
-v /home/zibo/docker/rocketmq/data/namesrv/store:/root/store
: 这是一个选项,用于将主机上的目录/home/zibo/docker/rocketmq/data/namesrv/store
挂载到容器中的/root/store
目录。这样做是为了将NameServer存储的数据文件保存在主机上,以便持久化存储。 -
-e "MAX_POSSIBLE_HEAP=100000000"
: 这是一个选项,用于设置环境变量。在这里,它设置了一个名为MAX_POSSIBLE_HEAP
的环境变量,并将其值设置为100000000。这个环境变量可以用来调整NameServer的堆内存大小。 -
rocketmqinc/rocketmq
: 这是指定要使用的Docker镜像的名称。在这里,使用的是RocketMQ官方提供的镜像,该镜像用于运行RocketMQ。 -
sh mqnamesrv
: 这是在容器中要运行的命令。它启动了RocketMQ的NameServer组件。
综上所述,该命令将创建一个名为"rocketmq_nameserver"的Docker容器,并在该容器中以后台模式运行RocketMQ的NameServer组件。容器会在后台持续运行,如果容器意外退出,Docker会自动重新启动容器。主机的9876端口映射到容器的9876端口,NameServer的日志和数据文件将存储在主机的相应目录中。通过设置环境变量,可以调整NameServer的堆内存大小。使用的是RocketMQ官方提供的镜像来运行容器。
启动 broker
docker run -d --restart=always --name rocketmq_broker --link rocketmq_nameserver:namesrv -p 10911:10911 -p 10909:10909 -v /home/zibo/docker/rocketmq/data/broker/logs:/root/logs -v /home/zibo/docker/rocketmq/data/broker/store:/root/store -v /home/zibo/docker/rocketmq/data/conf/broker.conf:/opt/rocketmqinc/rocketmq/conf/broker.conf -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmqinc/rocketmq/conf/broker.conf
-
docker run
: 这是Docker命令,用于创建和管理Docker容器。 -
-d
: 这是一个选项,指示Docker在后台运行容器。 -
--restart=always
: 这是一个选项,指示Docker容器在退出时总是重新启动。 -
--name rocketmq_broker
: 这是一个选项,用于为容器指定名称,这里将容器命名为"rocketmq_broker"。 -
--link rocketmq_nameserver:namesrv
: 这是一个选项,用于将容器与另一个容器rocketmq_nameserver
进行链接。这样可以让Broker容器知道NameServer的位置。 -
-p 10911:10911 -p 10909:10909
: 这是选项,用于将主机的端口10911和10909映射到容器的端口10911和10909。RocketMQ的Broker使用这些端口进行通信。 -
-v /home/zibo/docker/rocketmq/data/broker/logs:/root/logs
: 这是一个选项,用于将主机上的目录/home/zibo/docker/rocketmq/data/broker/logs
挂载到容器中的/root/logs
目录。这样做是为了将Broker的日志文件保存在主机上,方便查看和管理。 -
-v /home/zibo/docker/rocketmq/data/broker/store:/root/store
: 这是一个选项,用于将主机上的目录/home/zibo/docker/rocketmq/data/broker/store
挂载到容器中的/root/store
目录。这样做是为了将Broker存储的数据文件保存在主机上,以便持久化存储。 -
-v /home/zibo/docker/rocketmq/data/conf/broker.conf:/opt/rocketmqinc/rocketmq/conf/broker.conf
: 这是一个选项,用于将主机上的/home/zibo/docker/rocketmq/data/conf/broker.conf
文件挂载到容器中的/opt/rocketmqinc/rocketmq/conf/broker.conf
路径。这样做是为了将自定义的Broker配置文件挂载到容器中。 -
-e "NAMESRV_ADDR=namesrv:9876"
: 这是一个选项,用于设置环境变量。它设置了一个名为NAMESRV_ADDR
的环境变量,并将其值设置为namesrv:9876
。这个环境变量用于告知Broker容器NameServer的地址和端口。 -
-e "MAX_POSSIBLE_HEAP=200000000"
: 这是一个选项,用于设置环境变量。它设置了一个名为MAX_POSSIBLE_HEAP
的环境变量,并将其值设置为200000000。这个环境变量可以用来调整Broker的堆内存大小。 -
rocketmqinc/rocketmq
: 这是指定要使用的Docker镜像的名称。在这里,使用的是RocketMQ官方提供的镜像,该镜像用于运行RocketMQ。 -
sh mqbroker -c /opt/rocketmqinc/rocketmq/conf/broker.conf
: 这是在容器中要运行的命令。它启动了RocketMQ的Broker组件,并指定了配置文件/opt/rocketmqinc/rocketmq/conf/broker.conf
。
综上所述,该命令将创建一个名为"rocketmq_broker"的Docker容器,并在该容器中以后台模式运行RocketMQ的Broker组件。容器会在后台持续运行,如果容器意外退出,Docker会自动重新启动容器。主机的10911和10909端口映射到容器的10911和10909端口,Broker的日志和数据文件将存储在主机的相应目录中。通过设置环境变量,可以配置Broker连接到NameServer的地址和端口,以及调整Broker的堆内存大小。使用的是RocketMQ官方提供的镜像来运行容器,并指定了自定义的Broker配置文件。
启动可视化平台
docker run -d --restart=always --name rocketmq_console -e "JAVA_OPTS=-Drocketmq.namesrv.addr=[nameserver的ip]:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 9877:8080 styletang/rocketmq-console-ng
-
docker run
: 这是Docker命令,用于创建和管理Docker容器。 -
-d
: 这是一个选项,指示Docker在后台运行容器。 -
--restart=always
: 这是一个选项,指示Docker容器在退出时总是重新启动。 -
--name rocketmq_console
: 这是一个选项,用于为容器指定名称,这里将容器命名为"rocketmq_console"。 -
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=[nameserver的ip]:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
: 这是一个选项,用于设置环境变量。在这里,设置了一个名为JAVA_OPTS
的环境变量,其中包含了两个参数:-
-Drocketmq.namesrv.addr=[nameserver的ip]:9876
:这个参数用于指定RocketMQ控制台连接的NameServer的地址和端口。你需要将[nameserver的ip]
替换为实际的NameServer的IP地址。 -
-Dcom.rocketmq.sendMessageWithVIPChannel=false
:这个参数用于禁用VIP通道发送消息。
-
-
-p 9877:8080
: 这是一个选项,用于将主机的端口9877映射到容器的端口8080。RocketMQ控制台使用8080端口进行访问。 -
styletang/rocketmq-console-ng
: 这是指定要使用的Docker镜像的名称。在这里,使用的是RocketMQ控制台(Console)的镜像。
综上所述,该命令将创建一个名为"rocketmq_console"的Docker容器,并在该容器中以后台模式运行RocketMQ控制台。容器会在后台持续运行,如果容器意外退出,Docker会自动重新启动容器。RocketMQ控制台将连接到指定的NameServer,你需要将[nameserver的ip]
替换为实际的NameServer的IP地址。控制台将通过主机的9877端口进行访问,映射到容器的8080端口。使用的是RocketMQ控制台(Console)的镜像来运行容器。
二、访问界面
ip:9877,别忘记开端口!
三、其他
参考文章:
docker部署RocketMQ文章来源:https://www.toymoban.com/news/detail-576553.html
https://blog.csdn.net/SmallCat0912/article/details/128535930文章来源地址https://www.toymoban.com/news/detail-576553.html
到了这里,关于【RocketMQ】005-Docker 部署 RocketMQ的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!