window系统搭建RocketMQ4.7.0版本 伪集群

RocketMQ中两个重要的组成部分就是NameServerBroker
NameServer:相当于是Broker的注册中心,能够管理Broker节点,为生产者和消费者提供路由信息。
Broker:则是背后真正的消息服务器。Broker在启动时向NameServer注册,消息生产者(Producer)在发送消息之前先从NameServer获取Broker服务器列表,然后根据负载从列表中选择一台Broker进行消息发送。

NameServer和Broker分别运行在各自独立的jvm进程中,有着各自不同的集群模式。

NameServer集群只需要部署多个节点即可,各节点之间无需信息同步。
Broker集群则分为多种模式:主从模式,双主模式,双主双从模式,多主多从模式,Broker又有同步刷盘异步刷盘模式。
如下是RocketMQ的集群部署图:
window系统搭建RocketMQ4.7.0版本 伪集群_第1张图片
本文主要讲解如何在windows系统搭建RocketMQ集群模式。
主要搭建两个节点的NameServer集群,和一主一从的Broker集群。

1、到RocketMQ官网下载二进制压缩包并解压
http://rocketmq.apache.org/release_notes/release-notes-4.7.0/ 。
window系统搭建RocketMQ4.7.0版本 伪集群_第2张图片
conf 文件夹中目录及文件如下:
window系统搭建RocketMQ4.7.0版本 伪集群_第3张图片
2、搭建NameServer集群
为了不污染解压后的目录和文件,我们可以在conf文件夹的同级目录下创建myconf目录,用于存在自定义的配置文件。
NameServer默认的端口是9876,在同一台机器启动两个不同实例,我们需要使用的端口号,
在myconf目录新建两个namesrv1.properties,和namesrv2.properties,用于指定不同的服务端。配置内容如下:namesrv1.properties指定端口为9876,namesrv2.properties指定端口为9877,

listenPort=9877

window系统搭建RocketMQ4.7.0版本 伪集群_第4张图片
启动时指定相应的配置文件即可,运行结果如下说明启动成功
window系统搭建RocketMQ4.7.0版本 伪集群_第5张图片
到此NameServer集群搭建成功。

3、搭建一主一从异步落盘的Broker集群
/conf/2m-2s-async目录将broker-a.properties(主节点配置文件),broker-a-s.properties(从节点配置文件)两个配置文件复制到myconf目录,并做如下修改。
主节点配置broker-a.properties 内容如下

brokerClusterName=DefaultCluster
brokerName=broker-a

#0表示是一个主节点, >0表示Slave
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH

#nameServer地址,分号分割
namesrvAddr=127.0.0.1:9876;127.0.0.1:9877

#允许自动创建主题
autoCreateTopicEnable=true

#存储路径
storePathRootDir=D:\\rocketmq\\store_master

#commitLog存储路径
storePathCommitLog=D:\\rocketmq\\store_master\\commitLog

#消费队列存储路径
storePathConsumerQueue=D:\\rocketmq\\store_master\\consumerqueue

#消息索引存储路径
storePathIndex=D:\\rocketmq\\store_master\\index

#checkpoint 文件存储路径
storeCheckpoint=D:\\rocketmq\\store_master\\checkpoint

#abort 文件存储路径
abortFile=D:\\rocketmq\\store_master\\abort

从节点配置broker-a-s.properties 内容如下

brokerClusterName=DefaultCluster

#从节点的brokerName必须和主节点一样
brokerName=broker-a

#0表示是一个主节点, >0表示Slave
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH

#nameServer地址,分号分割
namesrvAddr=127.0.0.1:9876;127.0.0.1:9877

注意需改端口,并且要和默认的10911相差5以上
listenPort=10921

#允许自动创建主题
autoCreateTopicEnable=true

#存储路径
storePathRootDir=D:\\rocketmq\\store_slave

#commitLog存储路径
storePathCommitLog=D:\\rocketmq\\store_slave\\commitLog

#消费队列存储路径
storePathConsumerQueue=D:\\rocketmq\\store_slave\\consumerqueue

#消息索引存储路径
storePathIndex=D:\\rocketmq\\store_slave\\index

#checkpoint 文件存储路径
storeCheckpoint=D:\\rocketmq\\store_slave\\checkpoint

#abort 文件存储路径
abortFile=D:\\rocketmq\\store_slave\\abort

修改好配置之后,按照如下方式启动,如果打印相同的信息则表示成功!!!
window系统搭建RocketMQ4.7.0版本 伪集群_第6张图片
4、可以通过RocketMQ的扩展工具查看集群信息
GitHub地址:https://github.com/apache/rocketmq-externals.git
下载后需要修改rocketmq-console模块的application.properties配置
rocketmq.config.namesrvAddr=127.0.0.1:9876;127.0.0.1:9876
启动org.apache.rocketmq.console.App启动类,浏览器访问http://127.0.0.1:8080/即可看到如下信息。
window系统搭建RocketMQ4.7.0版本 伪集群_第7张图片
5、RocketMQ根据配置生成的数据存储目录
window系统搭建RocketMQ4.7.0版本 伪集群_第8张图片
window系统搭建RocketMQ4.7.0版本 伪集群_第9张图片
6 注意
在同一台集群部署多个实例的情况下,两个实例日志打印到的是同一个位置,可能造成日志混乱,需要对启动脚本更改,使用不用的环境目录才能修改。有需要了解的可以留言互相交流!

你可能感兴趣的:(window系统搭建RocketMQ4.7.0版本 伪集群)