消息中间件-rocketmq-简单版集群搭建

rocketMq学习第二节:

写到这里的时候,其实我对rocketmq的原理还是不了解的。慢慢学吧,至于其他的都交给时间吧。

  • 单机器的rocketmq生产和消费demo搭建,请参照我的上一篇博客。
    单机器的rocketmq的生成和消费模式搭建

搭建集群前需要准备(设备防火墙以及需要对外开放的端口,这边需要自行注意。坑在这里,不然服务搭建好,可能会出现问题。)

  • 两台linux环境的虚拟机器
  • rockemq安装包
  • java jdk环境

消息中间件-rocketmq-简单版集群搭建_第1张图片

  • 建议每台虚拟机的内存大小设置合理,不能设置的太小。

集群所需的环境的搭建,我就不做讲解呢。不清楚的可以自行百度。
在搭建集群前我们需要对rocketMq的配置文件做一些了解。

  • 进入rocketMq的配置文件目录,红色框框里面,就是官方为我们准备搭建集群的模板。
/usr/local/app/rocketmq-4.7.1/conf

2m-2s-async:2个主节点,2个从节点,采用异步刷盘的机制。
2m-2s-sync:2个主节点,2个从节点,采用同步刷盘的机制。
2m-noslave:2个主节点,没有从节点。
消息中间件-rocketmq-简单版集群搭建_第2张图片
我采用的2m-2s-async的方式来搭建集群。模板里面有四个配置文件。

  • broker-a.properties:broker-a的主节点配置文件

  • broker-a-s.properties:broker-a的从节点配置文件

  • broker-b.properties:broker-b的主节点配置文件

  • broker-b-s.properties:broker-b-s的从节点配置文件消息中间件-rocketmq-简单版集群搭建_第3张图片
    假设我们用两台设备搭建集群,我们可以采用配置文件交叉的方式搭建集群。

  • 192.168.0.11 Centos_02
    192.168.0.13 Centos_03

  • 在192.168.0.11配置broker-a.properties,broker-b-s.properties配置文件。
    在192.168.0.13配置broker-b.properties,broker-a-s.properties配置文件。
    这样达到每台机器相互之间都有个备份的目的。

  • 提供的模板配置文件内容如下:消息中间件-rocketmq-简单版集群搭建_第4张图片
    自己去配置的 按需配置192.168.0.11的broker-a.properties

#mq集群名称
brokerClusterName=DefaultCluster 
#brokerName名称,叫作broker-a
brokerName=broker-a
#brokerId=0;表示主节点;brokerId大于0从节点。
brokerId=0
#nameServer地址,分号分割,根据自己的ip地址配置。
namesrvAddr=192.168.0.11:9876;192.168.0.13:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭。
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭。
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口,
listenPort=10911
#Broker 对外服务的监听端口,
deleteWhen=04
#Broker 对外服务的监听端口,
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/app/rocketmq-4.7.1/store/broker-a
#commitLog 存储路径
storePathCommitLog=/usr/local/app/rocketmq-4.7.1/store/broker-a/commitlog
#消费队列存储路径
storePathConsumeQueue=/usr/local/app/rocketmq-4.7.1/store/broker-a/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/app/rocketmq-4.7.1/store/broker-a/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/app/rocketmq-4.7.1/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/app/rocketmq-4.7.1/store/abort
#限制的消息大小
maxMessageSize=65536
#Broker 的角色
brokerRole=ASYNC_MASTER
#刷盘方式
flushDiskType=ASYNC_FLUSH

自己去配置的 按需配置192.168.0.11的broker-b-s.properties

#所属集群名字
brokerClusterName=DefaultCluster
#broker名字,名字可重复,为了管理,每个master起一个名字,他的slave同他,eg:Amaster叫broker-a,他的slave也叫broker-a
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=192.168.0.11:9876;192.168.0.13:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口,
listenPort=10920
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/app/rocketmq-4.7.1/store/broker-b-s
#commitLog 存储路径
storePathCommitLog=/usr/local/app/rocketmq-4.7.1/store/broker-b-s/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/app/rocketmq-4.7.1/store/broker-b-s/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/app/rocketmq-4.7.1/store/broker-b-s/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/app/rocketmq-4.7.1/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/app/rocketmq-4.7.1/store/abort
#限制的消息大小
maxMessageSize=65536
#Broker 的角色
brokerRole=SLAVE
#刷盘方式
flushDiskType=ASYNC_FLUSH

192.168.0.13配置broker-b.properties,broker-a-s.properties和上面一样
这样配置部分就算好了。
这里我初始化了一些存储路径,指定日志输出,你也可以不指定。
消息中间件-rocketmq-简单版集群搭建_第5张图片
接下来就是启动部分。

  • 先启动192.168.0.11和192.168.0.13的nameserver
  • nohup mqnamesrv &
  • 启动成功,jps查看进程。
    消息中间件-rocketmq-简单版集群搭建_第6张图片
  • 启动broker,首先启动192.168.0.11的主节点。
  • cd /usr/local/app/rocketmq-4.7.1/bin
  • nohup mqbroker -c ../conf/2m-2s-async/broker-a.properties &
  • broker-a启动成功,如下:
    在这里插入图片描述
    接下来我们启动192.168.0.13上的broker-a-s节点,从节点启动成功。

mqbroker -c ../conf/2m-2s-async/broker-a-s.properties &在这里插入图片描述
再启动192.168.0.13上的broker-b主节点,从节点启动成功。
mqbroker -c ../conf/2m-2s-async/broker-b.properties &在这里插入图片描述
接下来我们启动192.168.0.11上的broker-b-s节点,从节点启动成功。
nohup mqbroker -c ../conf/2m-2s-async/broker-b-s.properties &消息中间件-rocketmq-简单版集群搭建_第7张图片
至此我们两对节点都启动完成,输入下面命令集群启动完成。

mqadmin clusterList -n 192.168.0.11:9876;192.168.0.13:9876

在这里插入图片描述

  • rocketmq其实也有自身的维护界面,只不过需要我们自己去下载源码运行。

我们可以通过rocketmq社区扩展版下载源码,
消息中间件-rocketmq-简单版集群搭建_第8张图片
编译rocketmq-console工程:
1.这是一个springboot项目,首先需要修改下application.properties,红色部分需要根据自己实际情况进行配置。
消息中间件-rocketmq-简单版集群搭建_第9张图片

在这里插入图片描述
2.进行编译打包步骤

mvn clean package -Dmaven.test.skip=true

3.将target目录下的jar包上传到虚拟机上,以java - jar 的命令启动。启动成功,可以访问如下图。

消息中间件-rocketmq-简单版集群搭建_第10张图片
至此,一个简单版本的集群算是初步完成了。

你可能感兴趣的:(rocketmq,java)