1、准备三台虚拟机
2、从官网下载rocketmq可执行文件并解压到三台服务器
-
下载地址:https://rocketmq.apache.org/download/
-
上传到服务器并解压
3、在三台服务器上启动nameserver
- 修改nameserver的启动脚本的内存占用
- 在三台服务器上分别运行./mqnamesrv -n ip地址:9876来启动nameserver
4、在其中两台服务器上分别启动2主2从共4个broker
-
1、配置主broker配置文件
# 所属集群名称 brokerClusterName=DefaultCluster # broker名字 brokerName=broker-a # broker所在服务器IP brokerIP1=192.168.2.11 # broker的id,0表示master,>0表示slave brokerId=0 # 删除文件时间点,默认在凌晨4点 deleteWhen=04 # 文件保留时间(48小时) fileReservedTime=48 # broker角色 brokerRole=ASYNC_MASTER # 刷盘方式 flushDiskType=ASYNC_FLUSH # 名称服务器的地址列表 namesrvAddr=192.168.2.10:9876;192.168.2.11:9876;192.168.2.12:9876 # 在发送消息自动创建不存在的topic时,默认创建的队列数 defaultTopicQueueNums=4 # 是否允许broker自动创建topic autoCreateTopicEnable=true # 是否允许broker自动创建订阅组 autoCreateSubscriptionGroup=true # broker对外服务的监听端口 listenPort=10911 # abort文件存储路径举 abortFile=/usr/local/rocketmq/store/abort # 消息存储路径 storePathRootDir=/usr/local/rocketmq/store # commitLog存储路径 storePathCommitLog=/usr/local/rocketmq/store/commitlog # 消费队列存储路径 storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue # 消息索引存储路径 storePathIndex=/usr/local/rocketmq/store/index # checkpoint文件存储路径 storeCheckpoint=/usr/local/rocketmq/store/checkpoint # 限制的消息大小 maxMessageSize=65536 # commitLog每个文件的大小默认1G mapedFileSizeCommitLog=1073741824 # consumeQueue每个文件默认存30w条,根据业务情况调整 mapedFileSizeConsumeQueue=300000
-
配置从broker配置文件
# 所属集群名称 brokerClusterName=DefaultCluster # broker名字 brokerName=broker-b-s # broker所在服务器IP brokerIP1=192.168.2.11 # broker的id,0表示master,>0表示slave brokerId=1 # 删除文件时间点,默认在凌晨4点 deleteWhen=04 # 文件保留时间(48小时) fileReservedTime=48 # broker角色 brokerRole=SLAVE # 刷盘方式 flushDiskType=ASYNC_FLUSH # 名称服务器的地址列表 namesrvAddr=192.168.2.10:9876;192.168.2.11:9876;192.168.2.12:9876 # 在发送消息自动创建不存在的topic时,默认创建的队列数 defaultTopicQueueNums=4 # 是否允许broker自动创建topic autoCreateTopicEnable=true # 是否允许broker自动创建订阅组 autoCreateSubscriptionGroup=true # broker对外服务的监听端口 listenPort=11011 # abort文件存储路径举 abortFile=/usr/local/rocketmq/store-slave/abort # 消息存储路径 storePathRootDir=/usr/local/rocketmq/store-slave # commitLog存储路径 storePathCommitLog=/usr/local/rocketmq/store-slave/commitlog # 消费队列存储路径 storePathConsumeQueue=/usr/local/rocketmq/store-slave/consumequeue # 消息索引存储路径 storePathIndex=/usr/local/rocketmq/store-slave/index # checkpoint文件存储路径 storeCheckpoint=/usr/local/rocketmq/store-slave/checkpoint # 限制的消息大小 maxMessageSize=65536
-
在机器B上启动broker-a及broker-b-s
./mqbroker -c …/conf/2m-2s-async/broker-a.properties
./mqbroker -c …/conf/2m-2s-async/broker-b-s.properties
-
在机器C上启动broker-b及broker-a-s
./mqbroker -c …/conf/2m-2s-async/broker-b.properties
./mqbroker -c …/conf/2m-2s-async/broker-a-s.properties