docker部署RocketMQ
docker部署RocketMQ服务
·
前言
docker部署RocketMQ服务
一、拉取镜像
mq镜像
# 拉取镜像
docker pull rocketmqinc/rocketmq:4.3.2
# 修改镜像名字
docker tag 【镜像id】 rocketmq:4.3.2
可视化平台镜像
# 拉取镜像
docker pull styletang/rocketmq-console-ng:1.0.0
# 修改镜像名字
docker tag 【镜像id】 rocketmq-console:1.0.0
二、挂载目录
注意:目录按照自己的实际路径来
1、创建nameserver挂载目录
mkdir -p /docker/rocketmq/data/namesrv/logs /docker/rocketmq/data/namesrv/store
2、创建broker目录
mkdir -p /docker/rocketmq/data/broker/logs /docker/rocketmq/data/broker/store
3、创建broker配置文件目录
mkdir -p /docker/rocketmq/data/conf
编辑配置文件:
vi /docker/rocketmq/data/conf/broker.conf
4、写入如下代码:
# 所属集群名称,如果节点较多可以配置多个
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
注意:如果【brokerIP1 】不添加你的外网ip,则在链接服务时会链接不上。
三、启动服务
1、启动nameserver
docker run -d --restart=always --name rocketmq_nameserver -p 9876:9876 -v /docker/rocketmq/data/namesrv/logs:/root/logs -v /docker/rocketmq/data/namesrv/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmq:4.3.2 sh mqnamesrv
参数 | 说明 |
---|---|
-d | 以守护进程的方式启动 |
- -restart=always | docker重启时候容器自动重启 |
- -name rocketmq_nameserver | 设置容器名字 |
-p 9876:9876 | 把容器内的端口9876挂载到宿主机9876上面 |
-v | 把容器内的目录挂载到宿主机上,此处的目录应为第二步设置的目录 |
-e “MAX_POSSIBLE_HEAP=100000000” | 设置容器的最大堆内存为100000000 |
rocketmq : 4.3.2 | 镜像名称 :版本号 |
sh mqnamesrv | 启动nameserv服务 |
2、启动broker
docker run -d --restart=always --name rocketmq_broker --link rocketmq_nameserver:namesrv -p 10911:10911 -p 10909:10909 -v /docker/rocketmq/data/broker/logs:/root/logs -v /docker/rocketmq/data/broker/store:/root/store -v /docker/rocketmq/data/conf/broker.conf:/opt/rocketmq-4.3.2/conf/broker.conf -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmq:4.3.2 sh mqbroker -c /opt/rocketmq-4.3.2/conf/broker.conf
参数 | 说明 |
---|---|
- -link rocketmq_nameserver:namesrv | 和rocketmq_nameserver容器通信(跟nameserv容器名称对应) |
- -name rocketmq_nameserver | 设置容器名字 |
-e “NAMESRV_ADDR=namesrv:9876” | 指定namesrv的地址为本机namesrv的ip地址:9876 |
sh mqbroker -c /opt/rocketmq-4.3.2/conf/broker.conf | 指定配置文件启动broker节点 |
3、启动可视化平台
docker run -d --restart=always --name rocketmq_console -e "JAVA_OPTS=-Drocketmq.namesrv.addr=【nameserver的ip】:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 rocketmq-console:1.0.0
访问地址: 127.0.0.1:8080
总结
提示:以上就是在docker中部署RocketMQ服务
更多推荐
已为社区贡献1条内容
所有评论(0)