RocketMQ实战-搭建高可用的分布式消息队列集群

文章目录

    • RocketMQ各部分角色
    • RocketMQ多集群配置和部署实战
    • 集群查看方式
    • Broker配置参数介绍

RocketMQ各部分角色

NameServer,Broker,Producer,Consumer

类比邮政系统,Producer是发信人;Consumer是收信人;Broker是负责暂存、传输信件的邮局;NameServer是负责协调各邮局的管理机构。

RocketMQ实战-搭建高可用的分布式消息队列集群_第1张图片

启动RocketMQ的顺序是先启动NameServer,再启动Broker。

为了消除单点故障,增加可靠性或增大吞吐量,可以在多台机器上部署多个NameServer和Broker,为每个Broker部署一个或多个Slaver。

RocketMQ多集群配置和部署实战

使用两台物理机,搭建双主、双从,无单点故障的高可用RocketMQ集群。假设两台物理机的IP分别为192.168.100.131,192.168.100.131。两台物理机已安装RocketMQ。

  1. 首先在这两台机器上分别启动NameServer,这样我们就得到了一个无单点NameServer服务,服务地址分别为:192.168.100.131:9876,192.168.100.131:9876
  2. 然后启动Broker, 每台机器上都分别一个Master角色和一个Slaver角色的Broker(每台机器把RocketMQ复制一份,一个启动为Master,一个启动为Slaver)。 集群使用交叉部署。
    192.168.100.131机器上的Master Broker配置文件:
namesrvAddr=192.168.100.131:9876; 192.168.100.132:9876 
brokerClusterName=DefaultCluster 
brokerName=broker-a 
brokerId=0 
deleteWhen=04 
fileReservedTime=48 
brokerRole=SYNC_MASTER 
flushDiskType=ASYNC_FLUSH 
listenPort=10911 
storePathRootDir=/home/rocketmq/store-a

192.168.100.131机器上的Slaver Broker配置文件:

namesrvAddr=192.168.100.131:9876; 192.168.100.132:9876 
brokerClusterName=DefaultCluster 
brokerName=broker-b 
brokerId=1
deleteWhen=04 
fileReservedTime=48 
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH 
listenPort=11011
storePathRootDir=/home/rocketmq/store-b

192.168.100.132机器上的Master Broker配置文件:

namesrvAddr=192.168.100.131:9876; 192.168.100.132:9876 
brokerClusterName=DefaultCluster 
brokerName=broker-b
brokerId=0 
deleteWhen=04 
fileReservedTime=48 
brokerRole=SYNC_MASTER 
flushDiskType=ASYNC_FLUSH 
listenPort=10911 
storePathRootDir=/home/rocketmq/store-b

192.168.100.132机器上的Slaver Broker配置文件:

namesrvAddr=192.168.100.131:9876; 192.168.100.132:9876 
brokerClusterName=DefaultCluster 
brokerName=broker-a 
brokerId=1 
deleteWhen=04 
fileReservedTime=48 
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH 
listenPort=10911 
storePathRootDir=/home/rocketmq/store-a

然后分别使用如下命令启动四个Broker(根据具体路径):

nohup sh ./bin/mqbroker -c config_file &

启动完毕之后,变搭建完成一个高可用的RocketMQ集群。

集群查看方式

命令行:sh mqadmin clusterList -n 127.0.0.1:9876
页面查看: 可以在任一台机器上启动rocketmq-console,例如在机器192.168.100.131启动,则可通过访问192.168.100.131:8080,在浏览器中查看集群状态。

Broker配置参数介绍

  1. namesrvAddr=192.168.100.131:9876; 192.168.100.132:9876。NameServer可以是多个,用分号隔开。
  2. brokerClusterName=DefaultCluster 。 Cluster集群的名称,如果集群数量比较多,可以细分为多个Cluster,每个Cluster集群供某一个业务群使用。
  3. brokerName=broker-a Broker的名称,Master和Slave通过使用相同的Broker名称表明相互关系,以说明Slave跟Master的关联关系。
  4. brokerId=0 一个Master Broker可以有多个Slave,0表示Master,大于0表示不同Slave的ID。
  5. fileReservedTime=48 在磁盘保存的时长,单位是小时,自动删除超时的消息。
  6. deleteWhen=04 表明在几点做消息删除动作,默认04表示凌晨4点。
  7. brokerRole=SLAVE brokerRole有三种:SYNC_MASTER、ASYNC_MASTER、SLAVE

参考《RocketMQ实战与原理解析》

你可能感兴趣的:(中间件-MQ,分布式,中间件,java-rocketmq,rocketmq)