搭建环境是虚拟机的两台centos7,此文为本人搭建过程的记录。
服务 | IP | 端口 |
---|---|---|
nameservice | 192.168.171.134 | 9876 |
console | 192.168.171.134 | 19876 |
broker1-m-1 | 192.168.171.134 | 10911 |
broker1-s-1 | 192.168.171.134 | 11911 |
broker2-m-1 | 192.168.171.129 | 10911 |
broker2-s-1 | 192.168.171.129 | 11911 |
目录结构如下:
- 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
到这里我们的一主一从就搭建完成了,下面接着搭建另一台机器。
目录结构如下:
- 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,至此简单的搭建过程就完成了。