前提:
1、已安装好docker
2、java相关环境变量已ok
概要操作步骤:
一、部署rocketMq注册中心namesrv(官方镜像)
二、部署rocketMq节点,多个节点可通过修改broker.conf配置后再度安装(官方镜像)
三、部署rocketMq控制台(未找到官方镜像,github找了个能用的)
详细步骤:
1、下载rocketmq镜像
docker pull rocketmqinc/rocketmq
2、创建本地文件目录,来作为容器文件挂在的服务器地址(自行在自己机器上创建好)
mkdir -p /usr/local/rocketmq/nameserver/logs /usr/local/rocketmq/nameserver/store
记住这两个地址:
/usr/local/rocketmq/nameserver/logs
/usr/local/rocketmq/nameserver/store
3、安装namesrv
docker run -d --restart=always --name rmqnamesrv --privileged=true -p 9876:9876 -v /usr/local/rocketmq/nameserver/logs:/root/logs -v /usr/local/rocketmq/nameserver/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv
参数 | 参数说明 |
--restart | always (服务器重启时,容器自动重启) |
--name | 容器名称 |
-p | 9876:9876 左边对应机器的ip:右边对应容器内ip |
-v | /usr/local/rocketmq/nameserver/logs:/root/logs 左边对应2中配置的服务器路径:右边容器中地址 (可以挂在多个) |
-e | 对应容器的参数 |
sh | mqnamesrv 启动namesrv(有点像shell启动命令) |
4、创建broker.conf配置文件,我的目录是/usr/local/rocketmq/broker.conf,文件内容如下
brokerClusterName = DefaultCluster
brokerName = broker名称
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 你的服务器ip
5、安装broker
docker run -d --restart=always --name rmqbroker --link rmqnamesrv:namesrv -p 10911:10911 -p 10909:10909 --privileged=true -v /usr/local/rocketmq/nameserver/logs:/root/logs -v /usr/local/rocketmq/nameserver/store:/root/store -v /usr/local/rocketmq/broker.conf:/opt/docker/rocketmq/broker.conf -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/docker/rocketmq/broker.conf
参数 | 参数说明 |
--restart | always (服务器重启时,容器自动重启) |
--name | 容器名称 |
- --link | rmqnamesrv和rmqnamesrv容器通信 |
-p | 9876:9876 左边对应机器的ip:右边对应容器内ip |
-v | /usr/local/rocketmq/nameserver/logs:/root/logs 左边对应2中配置的服务器路径:右边容器中地址 (可以挂在多个) |
-e "NAMESRV_ADDR=namesrv:9876" | 指定启动时namesrv的地址参数 |
sh | mqbroker 启动mqbroker(有点像shell启动命令) |
-c /opt/docker/rocketmq/broker.conf | 指定配置文件启动 按我们4中的配置文件启动 多个broker需求改broker.conf的地址和名称 |
6、拉取控制台镜像
docker pull pangliang/rocketmq-console-ng
7、安装控制台
docker run -d --restart=always --name rmqadmin -e "JAVA_OPTS=-Drocketmq.namesrv.addr=你的主机ip:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 9800:8080 pangliang/rocketmq-console-ng
8、输入 http://你的ip:9800 (9800我在服务器中开放的端口)
相关rockemq文档详见官网:RocketMQ · 官方网站 | RocketMQ