RocketMq双主双从的安装

1.原理图
2.安装步骤
  (1) 下载
    Apache:
    Alibba:

  (2) 解压
         unzip rocketmq-all-4.2.0-bin-release.zip -d /software/rocketmq

   (3) 配置hosts(给namesrv用)        
         vim /etc/hosts        
         添加如下内容        
         192.168.240.167 rocketmq1        
         192.168.240.168 rocketmq2 

  (4)  配置环境变量       
         vim /etc/profile        
         添加如下内容        
         export ROCKETMQ_HOME=/root/svr/rocketmq        
         export PATH=$PATH::$ROCKETMQ_HOME/bin        
         执行变更        
         source /etc/profile 

(5)配置2m-2s-sync
        vim /software/rocketmq/conf/2m-2s-sync/broker-a.properties(master)           
        修改内容如下       
           brokerClusterName=tl-rocketmq-cluster
           brokerName=broker-a
           brokerId=0
           namesrvAddr=rocketmq1:9876;rocketmq2:9876
           defaultTopicQueueNums=4
           autoCreateTopicEnable=true
           autoCreateSubscriptionGroup=true
           listenPort=10911
           deleteWhen=04
           fileReservedTime=120
           mapedFileSizeCommitLog=1073741824
           mapedFileSizeConsumeQueue=300000
           destroyMapedFileIntervalForcibly=120000
           redeleteHangedFileInterval=120000
           diskMaxUsedSpaceRatio=88
           storePathRootDir=/software/rocketmq/data/store/master/
           storePathCommitLog=/root/svr/rocketmq/data/store/master/commitlog
           maxMessageSize=65536
           flushCommitLogLeastPages=4
           flushConsumeQueueLeastPages=2
           flushCommitLogThoroughInterval=10000
           flushConsumeQueueThoroughInterval=60000
           checkTransactionMessageEnable=false
           sendMessageThreadPoolNums=128
           pullMessageThreadPoolNums=128
           brokerRole=SYNC_MASTER
           flushDiskType=SYNC_FLUSH
 
           vim /software/rocketmq/conf/2m-2s-sync/broker-b-s.properties(salve)
           修改如下配置
           brokerClusterName=tl-rocketmq-cluster
           brokerName=broker-b
           brokerId=1
           namesrvAddr=rocketmq1:9876;rocketmq2:9876
           defaultTopicQueueNums=4
           autoCreateTopicEnable=true
           autoCreateSubscriptionGroup=true
           listenPort=10921
           deleteWhen=04
           fileReservedTime=120
           mapedFileSizeCommitLog=1073741824
           mapedFileSizeConsumeQueue=300000
           destroyMapedFileIntervalForcibly=120000
           redeleteHangedFileInterval=120000
           diskMaxUsedSpaceRatio=88
           storePathRootDir=/software/rocketmq/data/store/slave/
           storePathCommitLog=/root/svr/rocketmq/data/store/slave/commitlog
           maxMessageSize=65536
           flushCommitLogLeastPages=4
           flushConsumeQueueLeastPages=2
           flushCommitLogThoroughInterval=10000
           flushConsumeQueueThoroughInterval=60000
           checkTransactionMessageEnable=false
           sendMessageThreadPoolNums=128
           pullMessageThreadPoolNums=128
           brokerRole=SLAVE
           flushDiskType=SYNC_FLUSH
   同理修改另一台服务上的broker-a-s.properties,broker-b.properties

(6).创建存储&日志文件  
     mkdir /software/rocketmq/data
     mkdir /software/rocketmq/data/store/commitlog
     mkdir /software/rocketmq/data/store/consumequeue
     mkdir /software/rocketmq/data/store/index
     mkdir /software/logs
     cd /software/rocketmq/conf&&sed -i 's#${user.home}#/software/rocketmq#g' *.xml
(7) 启动     
cd /software/rocketmq/bin目录下执行命令
sh mqnamesrv &
sh mqbroker -c /software/rocketmq/conf/2m-2s-sync/broker-a.properties&
sh mqbroker -c /software/rocketmq/conf/2m-2s-sync/broker-b-s.properties
(8) 测试
jps 
 sh mqadmin clusterlist -n 192.168.240.167:9876
 export NAMESRV_ADDR='rocketmq1:9876;rocketmq2:9876'
测试发送端
 sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
测试消费端
 sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

(9)  停止
sh mqshutdown broker
sh mqshutdown namesrv

(10) 问题(虚拟机下面启动需要修改如下文件)
runbroker.sh,runserver.sh下面修改(具体的数值自行调整)
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"

### 安装配置 RocketMQ 双主双从集群 #### 准备工作 为了在 Docker 中安装配置 RocketMQ双主双从集群,需先准备好必要的环境。确保已安装 Docker 和 Docker Compose 工具。 #### 配置文件准备 创建一个目录用于保存所有的配置文件和服务定义: ```bash mkdir rocketmq-docker-cluster && cd $_ ``` 在此目录下创建 `docker-compose.yml` 文件来描述服务架构[^1]。 #### 编写 docker-compose.yml 编写如下所示的 `docker-compose.yml` 文件以启动四个 NameServer 实例以及两个 Master Broker 和两个 Slave Broker 实例组成的高可用集群: ```yaml version: '3' services: namesrv1: image: apache/rocketmq:latest container_name: rmq-namesrv1 environment: - JAVA_OPTS=-server -Xms512m -Xmx512m -XX:+UseG1GC command: sh mqnamesrv ports: - "9876:9876" namesrv2: image: apache/rocketmq:latest container_name: rmq-namesrv2 environment: - JAVA_OPTS=-server -Xms512m -Xmx512m -XX:+UseG1GC command: sh mqnamesrv ports: - "9877:9876" broker-a-master: image: apache/rocketmq:latest container_name: rmq-broker-a-master depends_on: - namesrv1 - namesrv2 environment: - JAVA_OPTS=-server -Xms512m -Xmx512m -XX:+UseG1GC - NAMESRV_ADDR=rmq-namesrv1:9876;rmq-namesrv2:9876 volumes: - ./broker-a-master:/home/rocketmq/store command: sh mqbroker -n rmq-namesrv1:9876;rmq-namesrv2:9876 -c /opt/software/apache-rocketmq/conf/broker-a.properties broker-a-slave: image: apache/rocketmq:latest container_name: rmq-broker-a-slave depends_on: - namesrv1 - namesrv2 - broker-a-master environment: - JAVA_OPTS=-server -Xms512m -Xmx512m -XX:+UseG1GC - NAMESRV_ADDR=rmq-namesrv1:9876;rmq-namesrv2:9876 volumes: - ./broker-a-slave:/home/rocketmq/store command: sh mqbroker -n rmq-namesrv1:9876;rmq-namesrv2:9876 -c /opt/software/apache-rocketmq/conf/broker-a-s properties broker-b-master: image: apache/rocketmq:latest container_name: rmq-broker-b-master depends_on: - namesrv1 - namesrv2 environment: - JAVA_OPTS=-server -Xms512m -Xmx512m -XX:+UseG1GC - NAMESRV_ADDR=rmq-namesrv1:9876;rmq-namesrv2:9876 volumes: - ./broker-b-master:/home/rocketmq/store command: sh mqbroker -n rmq-namesrv1:9876;rmq-namesrv2:9876 -c /opt/software/apache-rocketmq/conf/broker-b.properties broker-b-slave: image: apache/rocketmq:latest container_name: rmq-broker-b-slave depends_on: - namesrv1 - namesrv2 - broker-b-master environment: - JAVA_OPTS=-server -Xms512m -Xmx512m -XX:+UseG1GC - NAMESRV_ADDR=rmq-namesrv1:9876;rmq-namesrv2:9876 volumes: - ./broker-b-slave:/home/rocketmq/store command: sh mqbroker -n rmq-namesrv1:9876;rmq-namesrv2:9876 -c /opt/software/apache-rocketmq/conf/broker-b-s.properties ``` 注意上述命令中的 `-c` 参数指定了不同的配置文件路径,这些配置文件应预先放置于容器内的 `/opt/software/apache-rocketmq/conf/` 路径下,并设置好相应的参数以便区分各个节点的角色(Master 或者 Slave),同时指定同步模式和其他必要选项。 #### 启动集群 完成以上步骤之后,在包含 `docker-compose.yml` 文件的同一目录执行下面这条指令即可一键部署整个 RocketMQ HA 集群: ```bash docker-compose up -d ``` 这将会以后台守护进程的方式运行所有组件实例,并自动连接形成一个完整的消息队列网络结构。 #### 测试集群功能 通过向任意一台Broker发送测试消息验证集群是否正常运作;可以利用官方提供的工具如 `tools.sh org.apache.rocketmq.example.quickstart.Producer` 来实现这一点。同样地,也可以尝试消费端逻辑确认数据能够被正确接收处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值