虚拟化容器,大数据,DBA,中间件,监控。

docker部署rocketmq双主双从模式

01 01月
作者:admin|分类:容器虚拟化




docker部署rocketmq双主双从模式

环境准备

机器两台:192.168.56.121,192.168.56.122,192.168.56.123,192.168.56.124

1.镜像拉取

docker pull foxiswho/rocketmq:4.7.0

2.配置文件

创建四个配置文件broker-a.properties, broker-a-s.properties,broker-b.properties,broker-b-s.properties

配置文件broker-a.properties

#集群名字
brokerClusterName=DefaultCluster

#服务分片名称
brokerName=broker-a
#集群中 0 表示 Master,>0 表示 Slave
brokerId=0

#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER

#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH

#对外ip
brokerIP1=192.168.56.121

#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true

#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88

#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000

#checkTransactionMessageEnable=false
#发消息线程池数量
sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessaeThreadPoolNums=128

#发送消息是否使用可重入锁
useReentrantLockWhenPutMessage=true
waitTimeMillsInSendQueue=300  #或者更大

配置文件broker-a-s.properties,在配置文件broker-a.properties的基础上修改:

#服务分片名称
brokerName=broker-a
#集群中 0 表示 Master,>0 表示 Slave
brokerId=1

#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE

#对外ip
brokerIP1=192.168.56.122

配置文件broker-b.properties,在配置文件broker-a.properties的基础上修改:

#服务分片名称
brokerName=broker-b
#集群中 0 表示 Master,>0 表示 Slave
brokerId=0

#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER

#对外ip
brokerIP1=192.168.56.123

配置文件broker-a-s.properties,在配置文件broker-a.properties的基础上修改:

#服务分片名称
brokerName=broker-b
#集群中 0 表示 Master,>0 表示 Slave
brokerId=1

#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE

#对外ip
brokerIP1=192.168.56.124

3.启动容器

启动rocket需要启动两个服务:namesrv和broker,启动顺序要先namesrv后broker

1)启动namesrv

在两台机器(192.168.56.121;192.168.56.122)都启动,执行脚本:(把–name rmqnamesrv-1 改成不一样就行)

docker run -d \
--network net \
-v /usr/local/docker/rocketmq/mqbroker/logs:/home/rocketmq/logs \
--name rmqnamesrv-1 \
-e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" \
-p 9876:9876 \
foxiswho/rocketmq:4.7.0 sh mqnamesrv

2)启动broker

主1:192.168.56.121

docker run -d \
-v /usr/local/docker/rocketmq/conf/2m-2s-sync:/home/rocketmq/conf \
--name rmqbroker-a-master \
-e "NAMESRV_ADDR=192.168.56.121:9876;192.168.56.122:9876" \
-e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m -XX:-AssumeMP" \
-p 10911:10911 -p 10912:10912 -p 10909:10909 \
foxiswho/rocketmq:4.7.0 \
sh mqbroker -c /home/rocketmq/conf/broker-a.properties

从1:192.168.56.122

docker run -d \
-v /usr/local/docker/rocketmq/conf/2m-2s-sync:/home/rocketmq/conf \
--name rmqbroker-a-slave \
-e "NAMESRV_ADDR=192.168.56.121:9876;192.168.56.122:9876" \
-e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m -XX:-AssumeMP" \
-p 10911:10911 -p 10912:10912 -p 10909:10909 \
foxiswho/rocketmq:4.7.0 \
sh mqbroker -c /home/rocketmq/conf/broker-a-s.properties

主2:192.168.56.123

docker run -d \
-v /usr/local/docker/rocketmq/conf/2m-2s-sync:/home/rocketmq/conf \
--name rmqbroker-b-master \
-e "NAMESRV_ADDR=192.168.56.121:9876;192.168.56.122:9876" \
-e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m -XX:-AssumeMP" \
-p 10911:10911 -p 10912:10912 -p 10909:10909 \
foxiswho/rocketmq:4.7.0 \
sh mqbroker -c /home/rocketmq/conf/broker-b.properties

从2:192.168.56.124

docker run -d \
-v /usr/local/docker/rocketmq/conf/2m-2s-sync:/home/rocketmq/conf \
--name rmqbroker-b-slave \
-e "NAMESRV_ADDR=192.168.56.121:9876;192.168.56.122:9876" \
-e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m -XX:-AssumeMP" \
-p 10911:10911 -p 10912:10912 -p 10909:10909 \
foxiswho/rocketmq:4.7.0 \
sh mqbroker -c /home/rocketmq/conf/broker-b-s.properties

注:如果要把数据挂载出来可以加上
-v /usr/local/docker/rocketmq/mqbroker/logs:/home/rocketmq/logs
-v /usr/local/docker/rocketmq/mqbroker/store:/home/rocketmq/store \

4.安装rocketmq-console控制台可视化界面

1)镜像

docker pull styletang/rocketmq-console-ng:1.0.0

2)启动容器

docker run -d \
--name rmqconsole \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.56.121:9876;192.168.56.122:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 8180:8080 -t styletang/rocketmq-console-ng:1.0.0

3)访问界面

http://192.168.56.123:8180

浏览660 评论0
返回
目录
返回
首页
docker搭建grafana+loki+promtail日志收集系统 Docker安装部署MySQL+Canal+Kafka+Camus+HIVE数据实时同步