docker-compose搭建rocketmq集群双主双从

docker-compose搭建rocketmq双主双从

搭建信息

搭建环境是虚拟机的两台centos7,此文为本人搭建过程的记录。

服务IP端口
nameservice192.168.171.1349876
console192.168.171.13419876
broker1-m-1192.168.171.13410911
broker1-s-1192.168.171.13411911
broker2-m-1192.168.171.12910911
broker2-s-1192.168.171.12911911

搭建过程

192.168.1.134

目录结构如下:

- broker1-m-1
	- conf
		- broker.conf
	- logs
	- store
- broker1-s-1
 	- conf
		- broker.conf
	- logs
	- store
- docker-compose.yml

目录创建完成后,执行如下命令,否则服务起不来

[root@localhost rocketmq] chmod -R 777 broker1-m-1
[root@localhost rocketmq] chmod -R 777 broker1-s-1

broker1-m-1下的broker.conf:

#集群名称
brokerClusterName=DefaultCluster
#broker名称
brokerName=broker1
#brokerId master用0 slave用其他
brokerId=0
#清理时机
deleteWhen=4
#文件保留时长 48小时
fileReservedTime=48
#broker角色 -ASYNC_MASTER异步复制 -SYNC_MASTER同步双写 -SLAVE
brokerRole=SYNC_MASTER
#刷盘策略 - ASYNC_FLUSH 异步刷盘 - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#主机ip
brokerIP1=192.168.171.134
brokerIP2=192.168.171.134
#对外服务的监听接口,同一台机器上部署多个broker,端口号要不相同
listenPort=10911
#是否能够自动创建topic
autoCreateTopicEnable=true

broker1-s-1下的broker.conf:

#集群名称
brokerClusterName=DefaultCluster
#broker名称
brokerName=broker1
#brokerId master用0 slave用其他
brokerId=1
#清理时机
deleteWhen=4
#文件保留时长 48小时
fileReservedTime=48
#broker角色 -ASYNC_MASTER异步复制 -SYNC_MASTER同步双写 -SLAVE
brokerRole=SLAVE
#刷盘策略 - ASYNC_FLUSH 异步刷盘 - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#主机ip
brokerIP1=192.168.171.134
#对外服务的监听接口,同一台机器上部署多个broker,端口号要不相同
listenPort=11911
#是否能够自动创建topic
autoCreateTopicEnable=true

docker-compose.yml

version: "3"
services:
  mqnamesrv:
    image: foxiswho/rocketmq:4.8.0
    container_name: mqnamesrv
    ports:
      - 9876:9876
    environment:
      JAVA_OPT: -server -Xms256m -Xmx256m
    command: sh mqnamesrv

  mqbroker1-m-1:
    image: foxiswho/rocketmq:4.8.0
    container_name: mqbroker1-m-1
    ports:
      - 10911:10911
      - 10909:10909
      - 10912:10912
    volumes:
      - /root/rocketmq/broker1-m-1/conf/broker.conf:/etc/rocketmq/broker.conf
      - /root/rocketmq/broker1-m-1/logs:/home/rocketmq/logs
      - /root/rocketmq/broker1-m-1/store:/home/rocketmq/store
    environment:
      JAVA_OPT_EXT: -Duser.home=/home/rocketmq -Xms512M -Xmx512M -Xmn128m
      NAMESRV_ADDR: mqnamesrv:9876
    command: sh mqbroker -c /etc/rocketmq/broker.conf
    depends_on:
      - mqnamesrv
  mqbroker1-s-1:
    image: foxiswho/rocketmq:4.8.0
    container_name: mqbroker1-s-1
    ports:
      - 11911:11911
      - 11909:11909
      - 11912:11912
    volumes:
      - /root/rocketmq/broker1-s-1/conf/broker.conf:/etc/rocketmq/broker.conf
      - /root/rocketmq/broker1-s-1/logs:/home/rocketmq/logs
      - /root/rocketmq/broker1-s-1/store:/home/rocketmq/store
    environment:
      JAVA_OPT_EXT: -Duser.home=/home/rocketmq -Xms512M -Xmx512M -Xmn128m
      NAMESRV_ADDR: mqnamesrv:9876
    command: sh mqbroker -c /etc/rocketmq/broker.conf
    depends_on:
      - mqnamesrv

  mqconsole:
    image: styletang/rocketmq-console-ng
    container_name: mqconsole
    ports:
      - 19876:8080
    environment:
      JAVA_OPTS: -Drocketmq.namesrv.addr=mqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=falses
    depends_on:
      - mqnamesrv

执行:

[root@localhost rocketmq]# chmod 777 -R broker1-m-1/
[root@localhost rocketmq]# chmod 777 -R broker1-s-1/
[root@localhost rocketmq]# docker-compose up -d

执行会拉取镜像,启动成功后,此时可以打开浏览器输入:http://192.168.171.134:19876
在这里插入图片描述
到这里我们的一主一从就搭建完成了,下面接着搭建另一台机器。

192.168.1.129

目录结构如下:

- broker2-m-1
	- conf
		- broker.conf
	- logs
	- store
- broker2-s-1
 	- conf
		- broker.conf
	- logs
	- store
- docker-compose.yml

目录创建完成后,记得执行如下命令

[root@localhost rocketmq] chmod -R 777 broker2-m-1
[root@localhost rocketmq] chmod -R 777 broker2-s-1

broker2-m-1下的broker.conf:

#集群名称
brokerClusterName=DefaultCluster
#broker名称
brokerName=broker2
#brokerId master用0 slave用其他
brokerId=0
#清理时机
deleteWhen=4
#文件保留时长 48小时
fileReservedTime=48
#broker角色 -ASYNC_MASTER异步复制 -SYNC_MASTER同步双写 -SLAVE
brokerRole=SYNC_MASTER
#刷盘策略 - ASYNC_FLUSH 异步刷盘 - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#主机ip
brokerIP1=192.168.171.129
brokerIP2=192.168.171.129
#对外服务的监听接口,同一台机器上部署多个broker,端口号要不相同
listenPort=10911
#是否能够自动创建topic
autoCreateTopicEnable=true

broker2-s-1下的broker.conf:

#集群名称
brokerClusterName=DefaultCluster
#broker名称
brokerName=broker2
#brokerId master用0 slave用其他
brokerId=1
#清理时机
deleteWhen=4
#文件保留时长 48小时
fileReservedTime=48
#broker角色 -ASYNC_MASTER异步复制 -SYNC_MASTER同步双写 -SLAVE
brokerRole=SLAVE
#刷盘策略 - ASYNC_FLUSH 异步刷盘 - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#主机ip
brokerIP1=192.168.171.129
#对外服务的监听接口,同一台机器上部署多个broker,端口号要不相同
listenPort=11911
#是否能够自动创建topic
autoCreateTopicEnable=true

docker-compose.yml:

version: "3"
services:
  mqbroker2-m-1:
    image: foxiswho/rocketmq:4.8.0
    container_name: mqbroker2-m-1
    ports:
      - 10911:10911
      - 10909:10909
      - 10912:10912
    volumes:
      - /root/rocketmq/broker2-m-1/conf/broker.conf:/etc/rocketmq/broker.conf
      - /root/rocketmq/broker2-m-1/logs:/home/rocketmq/logs
      - /root/rocketmq/broker2-m-1/store:/home/rocketmq/store
    environment:
      JAVA_OPT_EXT: -Duser.home=/home/rocketmq -Xms512M -Xmx512M -Xmn128m
      NAMESRV_ADDR: 192.168.171.134:9876
    command: sh mqbroker -c /etc/rocketmq/broker.conf
  mqbroker2-s-1:
    image: foxiswho/rocketmq:4.8.0
    container_name: mqbroker2-s-1
    ports:
      - 11911:11911
      - 11909:11909
      - 11912:11912
    volumes:
      - /root/rocketmq/broker2-s-1/conf/broker.conf:/etc/rocketmq/broker.conf
      - /root/rocketmq/broker2-s-1/logs:/home/rocketmq/logs
      - /root/rocketmq/broker2-s-1/store:/home/rocketmq/store
    environment:
      JAVA_OPT_EXT: -Duser.home=/home/rocketmq -Xms512M -Xmx512M -Xmn128m
      NAMESRV_ADDR: 192.168.171.134:9876
    command: sh mqbroker -c /etc/rocketmq/broker.conf

执行:

[root@localhost rocketmq]# chmod 777 -R broker2-m-1/
[root@localhost rocketmq]# chmod 777 -R broker2-s-1/
[root@localhost rocketmq]# docker-compose up -d

启动成功后,此时再打开浏览器输入:http://192.168.171.134:19876
在这里插入图片描述
OK,至此简单的搭建过程就完成了。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值