前期准备

准备2个虚拟机,分别部署2NameServer,并在每台机器上分别启动一个Master和一个Slave,互为主备,在主目录下的conf文件夹下提供了多种broker配置模式,分别有:2m-2s-async,2m-2ssync,2m-noslave,可以以此为模版做如下配置:

1、配置192.168.241.198 Master和Slave

Master broker-m.conf配置如下:

1 #rocketmq‐name服务地址,多个地址用;分开,不配置默认为localhost:9876
2 namesrvAddr = 192.168.241.198:9876;192.168.241.199:9876
3 #可以配置成自己需要的名称
4 brokerClusterName = DefaultCluster
5 brokerName = broker‐b
6 # 0表示主节点
7 brokerId = 0
8 deleteWhen = 04
9 fileReservedTime = 48
10 #当前节点角色
11 brokerRole = SYNC_MASTER
12 flushDiskType = ASYNC_FLUSH
13 autoCreateTopicEnable=true
14 #broker通信端口,默认端口
15 listenPort=10911
16 storePathRootDir=/root/rocketmq/store‐m
Slave broker-s.conf配置
1 #rocketmq‐name 服务地址,多个地址用;分开,不配置默认为localhost:9876
2 namesrvAddr = 192.168.241.198:9876;192.168.241.199:9876
3 #可以配置成自己需要的名称
4 brokerClusterName = DefaultCluster
5 brokerName = broker‐b
6 # 非0表示从节点
7 brokerId = 1
8 deleteWhen = 04
9 fileReservedTime = 48
10 #当前节点角色
11 brokerRole = SLAVE
12 flushDiskType = ASYNC_FLUSH
13 autoCreateTopicEnable=true
14 #broker通信端口
15 listenPort=10811
16 storePathRootDir=/root/rocketmq/store‐s
启动mqnamesrv
1 nohup sh mqnamesrv &
启动broker Master
1 cd 到rocketmq根目录执行命令
2 nohup sh bin/mqbroker ‐c conf/broker‐m.conf &
启动broker Slave
1 cd 到rocketmq根目录执行命令
2 nohup sh bin/mqbroker ‐c conf/broker‐s.conf &
2、配置192.168.241.199 Master和Slave

Master broker-m.conf配置如下:

1 namesrvAddr = 192.168.241.198:9876;192.168.241.199:9876
2 #可以配置成自己需要的名称
3 brokerClusterName = DefaultCluster
4 brokerName = broker‐a
5 brokerId = 0
6 deleteWhen = 04
7 fileReservedTime = 48
8 brokerRole = SYNC_MASTER
9 flushDiskType = ASYNC_FLUSH
10 autoCreateTopicEnable=true
11 listenPort=10911
12 storePathRootDir=/root/rocketmq/store‐m
slave broker-s.conf配置如下:
1 namesrvAddr = 192.168.241.198:9876;192.168.241.199:9876
2 #可以配置成自己需要的名称
3 brokerClusterName = DefaultCluster
4 brokerName = broker‐a
5 brokerId = 1
6 deleteWhen = 04
7 fileReservedTime = 48
8 brokerRole = SLAVE
9 flushDiskType = ASYNC_FLUSH
10 autoCreateTopicEnable=true
11 listenPort=10811
12 storePathRootDir=/root/rocketmq/store‐s

启动mqnamesrv 与 mqbroker 启动流程同上。

集群启动后
1 # 查看集群监控状态
2 sh mqadmin clusterlist ‐n 192.168.241.198:9876
测试
1 export NAMESRV_ADDR=192.168.241.198:9876;192.168.241.199:9876
2 测试发送端
3 > sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
4 测试消费端
5 > sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
配置说明
1 1.namesrvAddr
2 NameServer地址,可以配置多个,用逗号分隔;
3 2.brokerClusterName
4 所属集群名称,如果节点较多可以配置多个
5 3.brokerName
6 broker名称,master和slave使用相同的名称,表明他们的主从关系
7 4.brokerId
8 0表示Master,大于0表示不同的slave
9 5.deleteWhen
10 表示几点做消息删除动作,默认是凌晨4点
11 6.fileReservedTime
12 在磁盘上保留消息的时长,单位是小时
13 7.brokerRole
14 有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间
同步数据的机制;
15 8.flushDiskType
16 刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消
息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
17 9.listenPort
18 启动监听的端口号
19 10.storePathRootDir
20 存储消息的根目录
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐