rocketmq 双master模式

    xiaoxiao2021-03-26  12

    一、准备工作

    github上下载安装包,为避免编译构建,可以直接下载二进制包

    1、修改ip

    参考 Linux环境快速搭建RocketMQ双Master模式给机器命名  修改文件  vi /etc/hosts,相互ping一下,检测是否配置有效

    2、解压并创建软连接

    解压到/usr/server目录下,并创建软连接ln -s alibaba-rocketmq rocketmq(需要到创建软连接的目录下创建)

    3、修改日志配置文件 在创建的软连接文件夹rocketmq下创建一个logs目录 然后执行如下命令,进行日志文件的替换,sed是linux的替换命令。两台机器同样操作。

    cd /usr/server/rocketmq/conf && sed -i 's#${user.home}#/user/server/rocketmq#g' *.xml

    4、创建存放数据的文件夹data

     

    rm -rf /home/cxb/rocketmq/data mkdir /home/cxb/rocketmq/data mkdir /home/cxb/rocketmq/data/commitlog mkdir /home/cxb/rocketmq/data/consumequeue mkdir /home/cxb/rocketmq/data/index

     

     

    5、修改服务配置文件

    将配置文件broker-a.properties和broker-b.properties拷贝到本地并按如下修改,修改后覆盖两个文件

    brokerName=broker-a这行,要分别配置,如果水平扩展第三台,只需创建同样的文件夹3m-noslave,然后将下面的配置文件修改为brokerName=broker-c即可。

    如果是双主双从的模式,主从关系的两台机器,brokerName要一致,通过brokerId区分开来,并采用异步复制的方式和异步刷盘策略

     

    # Licensed to the Apache Software Foundation (ASF) under one or oorterName=rocketmq-cluster brokerClusterName=rocket-dev #broker名字,注意此处不同的配置文件填写的不一样 brokerName=broker-a #0 表示 Master, >0 表示 Slave brokerId=0 #nameServer地址,分号分割 namesrvAddr=172.23.21.222:9876;172.23.21.221:9876 #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 defaultTopicQueueNums=4 #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 autoCreateTopicEnable=true #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=true #Broker 对外服务的监听端口 listenPort=10911 #删除文件时间点,默认凌晨 0点 deleteWhen=00 #文件保留时间,默认 48 小时 fileReservedTime=120 #commitLog每个文件的大小默认1G mapedFileSizeCommitLog=1073741824 #ConsumeQueue每个文件默认存30W条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 #destroyMapedFileIntervalForcibly=120000 #redeleteHangedFileInterval=120000 #检测物理文件磁盘空间 diskMaxUsedSpaceRatio=88 #存储路径 storePathRootDir=/home/cxb/rocketmq/data #commitLog 存储路径 storePathCommitLog=/home/cxb/rocketmq/data/commitlog #消费队列存储路径存储路径 storePathConsumeQueue=/home/cxb/rocketmq/data/consumequeue #消息索引存储路径 storePathIndex=/home/cxb/rocketmq/data/index #checkpoint 文件存储路径 storeCheckpoint=/home/cxb/rocketmq/data/checkpoint #abort 文件存储路径 abortFile=/home/cxb/rocketmq/data/abort #限制的消息大小 maxMessageSize=65536 #flushCommitLogLeastPages=4 #flushConsumeQueueLeastPages=2 #flushCommitLogThoroughInterval=10000 #flushConsumeQueueThoroughInterval=60000 #Broker 的角色 #- ASYNC_MASTER 异步复制Master #- SYNC_MASTER 同步双写Master #- SLAVE brokerRole=ASYNC_MASTER #刷盘方式 #- ASYNC_FLUSH 异步刷盘 #- SYNC_FLUSH 同步刷盘 flushDiskType=ASYNC_FLUSH #checkTransactionMessageEnable=false #发消息线程池数量 #sendMessageThreadPoolNums=128 #拉消息线程池数量 #pullMessageThreadPoolNums=128

     

    6、最后是启动关闭命令:

    先启动NameServer,再启动Borker,关闭的时候顺序相反,先关闭Broker,再关闭Nameserver。

    双主双从,启动方式相同;需要先启动两个master再启动slave

     

    sh mqshutdown namesrv sh mqshutdown broker nohup sh mqnamesrv >/home/cxb/mqnamesrv.out 2>&1 & nohup sh mqbroker -c /usr/server/alibaba-rocketmq/conf/2m-noslave/broker-b.properties >/home/cxb/mqbroker.out 2>&1 &

     

    我的环境:namesrvAddr=172.23.21.223:9876;172.23.21.221:9876;172.23.29.111:9876;172.23.29.112:9876

    D:\ws_study\workspace_activemq\activity mq       生产者 调用接口发送消息localhost:8282/activity/producer/sendMsg D:\ws_study\workspace_spring\springmvcdemo2 消费者,登录接收消息 D:\WS\workspace_rocketmq    mq管控台 网上有个war包控制台过于简陋,可以从github上下载apache/rocketmq-externals,构建一个jar包,然后通过以下命令启动

    java -jar rocketmq-console-ng-1.0.0.jar --server.port=12581 --rocketmq.config.namesrvAddr=10.10.13.14:9876

    启动后长这个样子

     

    转载请注明原文地址: https://ju.6miu.com/read-500297.html

    最新回复(0)