1.拉取镜像
docker pull rocketmqinc/rocketmq
2.创建nameserver
rocketMQ 分为nameserver和broker两部分,在启动时应该先启动nameserver,因此我们现在先创建nameserver的日志和数据存放目录
2.1创建nameserver数据存储目录
C:\mq\rocketmq\conf C:\mq\rocketmq\logs C:\mq\rocketmq\store
logs:是nameserver的日志目录,store:是nameserver的数据目录
2.2 启动rmqnamesrv
docker run -d --restart=always --network mq-net --name rmqnamesrv -p 9876:9876 -v C:\mq\rocketmq\logs:/root/logs -v C:\mq\rocketmq\store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv autoCreateTopicEnable=true
------ 参数的一些解释
-d 以守护进程的方式启动
-restart=always| docker重启时候容器自动重启
-name rmqnamesrv | 把容器的名字设置为rmqnamesrv
-p 9876:9876| 把容器内的端口9876挂载到宿主机9876上面
-v /docker/rocketmq/data/namesrv/logs:/root/logs | 把容器内的/root/logs日志目录挂载到宿主 机的 /docker/rocketmq/data/namesrv/logs目录
-v /docker/rocketmq/data/namesrv/store:/root/store | 把容器内的/root/store数据存储目录挂载到宿主机的 /docker/rocketmq/data/namesrv目录
rmqnamesrv | 容器的名字
-e "MAX_POSSIBLE_HEAP=100000000" | 设置容器的最大堆内存为100000000
rocketmqinc/rocketmq | 使用的镜像名称
sh mqnamesrv | 启动namesrv服务
3.创建broker
3.1broker.conf的修改
html
# 所属集群名称
brokerClusterName = DefaultCluster
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
# 删除文件时间点,默认凌晨4点
deleteWhen = 04
# 文件保留时间,默认48小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 类似注册中心
namesrvAddr=127.0.0.1:9876
# 当前broker监听的IP(主) 你服务器外网ip
brokerIP1 = 127.0.0.1
3.2 启动broker
html
docker run -d --network mq-net --name rmqbroker --link rmqnamesrv:namesrv -p 10911:10911 -p 10909:10909 -v C:\mq\rocketmq\broker\logs:/root/logs -v C:\mq\rocketmq\broker\store:/root/store -v C:\mq\rocketmq\broker\conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
------ 参数的一些解释
--link rmqnamesrv:namesrv 和rmqnamesrv容器通信
-p 10911:10911 把容器的非vip通道端口挂载到宿主机
-p 10909:10909 把容器的vip通道端口挂载到宿主机
-e "NAMESRV_ADDR=namesrv:9876" 指定namesrv的地址为本机namesrv的ip地址:9876
-- sh mqbroker -c ../conf/broker.conf 读取../conf/broker.conf配置并启动broker
4.安装dashboard--控制台
4.1 拉取dashboard
html
docker pull apacherocketmq/rocketmq-dashboard:latest
4.2 启动
html
docker run -d --name rocketmq-dashboard -p 9870:8080 --network mq-net -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876" -t apacherocketmq/rocketmq-dashboard