rocketmq双主双从同步写安装部署

cmttys cmttys     2022-11-12     455

关键词:


1,机器ip

软件版本

jdk-8u131-linux-x64.tar.gz

rocketmq-all-4.2.0-bin-release.zip

rocketmq-console-ng-1.0.0.jar

10.15.10.238 HNVM015238 nameserver1 rocketmq-master a rocketmq-slave b

10.15.10.239 HNVM015239 nameserver2 rocketmq-master b rocketmq-slave a

2,配置hosts

[[email protected] ~]# cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.15.10.238 rocketmq-nameserver1
10.15.10.238 rocketmq-master1
10.15.10.239 rocketmq-nameserver2
10.15.10.239 rocketmq-master2
10.15.10.239 rocketmq-slave1
10.15.10.238 rocketmq-slave2
10.15.10.238 HNVM015238

[[email protected] ~]# cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.15.10.238 rocketmq-nameserver1
10.15.10.238 rocketmq-master1
10.15.10.239 rocketmq-nameserver2
10.15.10.239 rocketmq-master2
10.15.10.239 rocketmq-slave1
10.15.10.238 rocketmq-slave2
10.15.10.239 HNVM015239

  

3,解压放到软件部署目录

/app/rocketmq,新建存储目录

配置Java,rocketmq 环境

export JAVA_HOME=/app/jdk1.8.0_131

export PATH=$JAVA_HOME/bin:/app/rocketmq/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

  

 

10.15.10.238 机器上操作,建立a-master 和 b-slave 目录

mkdir /app/rocketmq/broker-a-master/store

mkdir /app/rocketmq/broker-b-slave/store

cd /app/rocketmq/conf/2m-2s-sync

[[email protected] 2m-2s-sync]# cat broker-a.properties

 

#所属集群名字 
brokerClusterName=rocketmq-ztqy-test

#broker名字,注意此处不同的配置文件填写的不一样 
brokerName=broker-a

#0 表示 Master,>0 表示 Slave

brokerId=0

#nameServer地址,分号分割

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数

defaultTopicQueueNums=4

#是否允许 Broker

自动创建Topic,建议线下开启,线上关闭

autoCreateTopicEnable=true

#是否允许 Broker

自动创建订阅组,建议线下开启,线上关闭

autoCreateSubscriptionGroup=true

#Broker 对外服务的监听端口

listenPort=10911

#删除文件时间点,默认凌晨 4点

deleteWhen=01

#文件保留时间,默认 48 小时

fileReservedTime=72

#commitLog每个文件的大小默认1G

mapedFileSizeCommitLog=1073741824

#ConsumeQueue每个文件默认存30W条,根据业务情况调整

mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000 
#redeleteHangedFileInterval=120000 
#检测物理文件磁盘空间 
diskMaxUsedSpaceRatio=88
#存储路径 
storePathRootDir=/app/rocketmq/broker-a-master/store
#commitLog 存储路径 
storePathCommitLog=/app/rocketmq/broker-a-master/store/commitlog

#消费队列存储路径存储路径 
storePathConsumeQueue=/app/rocketmq/broker-a-master/store/consumequeue

#消息索引存储路径 
storePathIndex=/app/rocketmq/broker-a-master/store/index

#checkpoint 文件存储路径 
storeCheckpoint=/app/rocketmq/broker-a-master/store/checkpoint

#abort 文件存储路径 
abortFile=/app/rocketmq/broker-a-master/store/abort

#限制的消息大小 
maxMessageSize=65536
#flushCommitLogLeastPages=4 
#flushConsumeQueueLeastPages=2 
#flushCommitLogThoroughInterval=10000 
#flushConsumeQueueThoroughInterval=60000 
#Broker 的角色 
#- ASYNC_MASTER 异步复制Master 
#- SYNC_MASTER 同步双写Master 
#- SLAVE 
brokerRole=SYNC_MASTER
#刷盘方式 
#- ASYNC_FLUSH 异步刷盘 
#- SYNC_FLUSH 同步刷盘 
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false 
#发消息线程池数量 
#sendMessageThreadPoolNums=128 
#拉消息线程池数量 
#pullMessaeThreadPoolNums=128

  

 

[[email protected] 2m-2s-sync]# cat broker-b-s.properties

#所属集群名字 
brokerClusterName=rocketmq-ztqy-test
#broker名字,注意此处不同的配置文件填写的不一样 
brokerName=broker-b

#0 表示 Master,>0 表示 Slave 
brokerId=1

#nameServer地址,分号分割 
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 
defaultTopicQueueNums=4

#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 
autoCreateTopicEnable=true

#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 
autoCreateSubscriptionGroup=true

#Broker 对外服务的监听端口 
listenPort=10920

#删除文件时间点,默认凌晨 4点 
deleteWhen=01

#文件保留时间,默认 48 小时 
fileReservedTime=72

#commitLog每个文件的大小默认1G 
mapedFileSizeCommitLog=1073741824

#ConsumeQueue每个文件默认存30W条,根据业务情况调整 
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000 
#redeleteHangedFileInterval=120000 
#检测物理文件磁盘空间 
diskMaxUsedSpaceRatio=88

#存储路径 
storePathRootDir=/app/rocketmq/broker-b-slave/store

#commitLog 存储路径 
storePathCommitLog=/app/rocketmq/broker-b-slave/store/commitlog

#消费队列存储路径存储路径 
storePathConsumeQueue=/app/rocketmq/broker-b-slave/store/consumequeue

#消息索引存储路径 
storePathIndex=/app/rocketmq/broker-b-slave/store/index

#checkpoint 文件存储路径 
storeCheckpoint=/app/rocketmq/broker-b-slave/store/checkpoint

#abort 文件存储路径 
abortFile=/app/rocketmq/broker-b-slave/store/abort

#限制的消息大小 
maxMessageSize=65536
#flushCommitLogLeastPages=4 
#flushConsumeQueueLeastPages=2 
#flushCommitLogThoroughInterval=10000 
#flushConsumeQueueThoroughInterval=60000 
#Broker 的角色 
#- ASYNC_MASTER 异步复制Master 
#- SYNC_MASTER 同步双写Master 
#- SLAVE 
brokerRole=SLAVE
#刷盘方式 
#- ASYNC_FLUSH 异步刷盘 
#- SYNC_FLUSH 同步刷盘 
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false 
#发消息线程池数量 
#sendMessageThreadPoolNums=128 
#拉消息线程池数量 
#pullMessaeThreadPoolNums=128

  



10.15.10.239 机器上操作,建立b-master 和 a-slave 目录
mkdir /app/rocketmq/broker-b-master/store
mkdir /app/rocketmq/broker-a-slave/store

[[email protected] 2m-2s-sync]# cat broker-a-s.properties

#所属集群名字 
brokerClusterName=rocketmq-ztqy-test

#broker名字,注意此处不同的配置文件填写的不一样 
brokerName=broker-a

#0 表示 Master,>0 表示 Slave 
brokerId=1

#nameServer地址,分号分割 
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 
defaultTopicQueueNums=4

#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 
autoCreateTopicEnable=true

#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 
autoCreateSubscriptionGroup=true

#Broker 对外服务的监听端口 
listenPort=10920

#删除文件时间点,默认凌晨 4点 
deleteWhen=01

#文件保留时间,默认 48 小时 
fileReservedTime=72

#commitLog每个文件的大小默认1G 
mapedFileSizeCommitLog=1073741824

#ConsumeQueue每个文件默认存30W条,根据业务情况调整 
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000 
#redeleteHangedFileInterval=120000 
#检测物理文件磁盘空间 
diskMaxUsedSpaceRatio=88

#存储路径 
storePathRootDir=/app/rocketmq/broker-a-slave/store

#commitLog 存储路径 
storePathCommitLog=/app/rocketmq/broker-a-slave/store/commitlog

#消费队列存储路径存储路径 
storePathConsumeQueue=/app/rocketmq/broker-a-slave/store/consumequeue

#消息索引存储路径 
storePathIndex=/app/rocketmq/broker-a-slave/store/index

#checkpoint 文件存储路径 
storeCheckpoint=/app/rocketmq/broker-a-slave/store/checkpoint

#abort 文件存储路径 
abortFile=/app/rocketmq/broker-a-slave/store/abort

#限制的消息大小 
maxMessageSize=65536
#flushCommitLogLeastPages=4 
#flushConsumeQueueLeastPages=2 
#flushCommitLogThoroughInterval=10000 
#flushConsumeQueueThoroughInterval=60000 
#Broker 的角色 
#- ASYNC_MASTER 异步复制Master 
#- SYNC_MASTER 同步双写Master 
#- SLAVE 
brokerRole=SLAVE
#刷盘方式 
#- ASYNC_FLUSH 异步刷盘 
#- SYNC_FLUSH 同步刷盘 
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false 
#发消息线程池数量 
#sendMessageThreadPoolNums=128 
#拉消息线程池数量 
#pullMessaeThreadPoolNums=128

  



[[email protected] 2m-2s-sync]# cat broker-b.properties

 

#所属集群名字 
brokerClusterName=rocketmq-ztqy-test

#broker名字,注意此处不同的配置文件填写的不一样 
brokerName=broker-b

#0 表示 Master,>0 表示 Slave 
brokerId=0

#nameServer地址,分号分割 
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 
defaultTopicQueueNums=4

#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 
autoCreateTopicEnable=true

#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 
autoCreateSubscriptionGroup=true

#Broker 对外服务的监听端口 
listenPort=10911

#删除文件时间点,默认凌晨 4点 
deleteWhen=01

#文件保留时间,默认 48 小时 
fileReservedTime=72

#commitLog每个文件的大小默认1G 
mapedFileSizeCommitLog=1073741824

#ConsumeQueue每个文件默认存30W条,根据业务情况调整 
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000 
#redeleteHangedFileInterval=120000 
#检测物理文件磁盘空间 
diskMaxUsedSpaceRatio=88

#存储路径 
storePathRootDir=/app/rocketmq/broker-b-master/store
#commitLog 存储路径 
storePathCommitLog=/app/rocketmq/broker-b-master/store/commitlog

#消费队列存储路径存储路径 
storePathConsumeQueue=/app/rocketmq/broker-b-master/store/consumequeue

#消息索引存储路径 
storePathIndex=/app/rocketmq/broker-b-master/store/index

#checkpoint 文件存储路径 
storeCheckpoint=/app/rocketmq/broker-b-master/store/checkpoint

#abort 文件存储路径 
abortFile=/app/rocketmq/broker-b-master/store/abort

#限制的消息大小 
maxMessageSize=65536
#flushCommitLogLeastPages=4 
#flushConsumeQueueLeastPages=2 
#flushCommitLogThoroughInterval=10000 
#flushConsumeQueueThoroughInterval=60000

#Broker 的角色 
#- ASYNC_MASTER 异步复制Master 
#- SYNC_MASTER 同步双写Master 
#- SLAVE 
brokerRole=SYNC_MASTER
#刷盘方式 
#- ASYNC_FLUSH 异步刷盘 
#- SYNC_FLUSH 同步刷盘 
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false 
#发消息线程池数量 
#sendMessageThreadPoolNums=128 
#拉消息线程池数量 
#pullMessaeThreadPoolNums=128

  

4,启动nameserver
10.15.10.238 机器上操作

cd /app/rocketmq/logs

nohup sh /app/rocketmq/bin/mqnamesrv > mqnamesrv.log &

启动238 a -master

nohup sh /app/rocketmq/bin/mqbroker -c /app/rocketmq/conf/2m-2s-sync/broker-a.properties > broker-a.log &

启动238 b-slave

nohup sh /app/rocketmq/bin/mqbroker -c /app/rocketmq/conf/2m-2s-sync/broker-b-s.properties > broker-b-s.log &

[[email protected] 2m-2s-sync]# jps

5014 NamesrvStartup
5049 BrokerStartup
5151 BrokerStartup
18271 Jps

  

查看 9876 10919 10920 端口是否起来


10.15.10.239操作

cd /app/rocketmq/logs

nohup sh /app/rocketmq/bin/mqnamesrv > mqnamesrv.log &

启动239 b -master

nohup sh /app/rocketmq/bin/mqbroker -c /app/rocketmq/conf/2m-2s-sync/broker-b.properties > broker-b.log &

  

启动239 a-slave

nohup sh /app/rocketmq/bin/mqbroker -c /app/rocketmq/conf/2m-2s-sync/broker-a-s.properties > broker-a-s.log &

[[email protected] 2m-2s-sync]# jps

3154 BrokerStartup
3243 BrokerStartup
4701 Jps
3103 NamesrvStartup

  

 


查看 9876 10919 10920 端口是否起来


5,安装console web界面

在10.15.10.238上操作
直接执行

nohup java -jar rocketmq-console-ng-1.0.0.jar --server.port=12581 --rocketmq.config.namesrvAddr=10.15.10.238:9876;10.15.10.239:9876 > rocketmq-console.log 2&>1 &

  

如果卡住 进不了后台
就新建一个脚本

[[email protected] jar]# cat start_console.sh

#!/bin/sh 

nohup java -jar /root/jar/rocketmq-console-ng-1.0.0.jar --server.port=12581 --rocketmq.config.namesrvAddr=10.15.10.238:9876;10.15.10.239:9876 > rocketmq-console.log 2&>1 & 

echo Start Success!

  

 

检测12581 端口是否启动OK

浏览器输入10.15.10.238:12581 显示rocketmq-ztqy-test 集群有4台broker 即成功

 

[[email protected] 2m-2s-sync]#

/app/rocketmq/bin/mqadmin clusterlist -n 10.15.10.238:9876

#Cluster Name #Broker Name #BID #Addr #Version #InTPS(LOAD) #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
rocketmq-ztqy-test broker-a 0 10.15.10.238:10911 V4_2_0_SNAPSHOT 0.00(0,0ms) 0.00(0,0ms) 0 423898.87 0.0055
rocketmq-ztqy-test broker-a 1 10.15.10.239:10920 V4_2_0_SNAPSHOT 0.00(0,0ms) 0.00(0,0ms) 0 423898.87 0.0044
rocketmq-ztqy-test broker-b 0 10.15.10.239:10911 V4_2_0_SNAPSHOT 0.00(0,0ms) 0.00(0,0ms) 0 423898.87 -1.0000
rocketmq-ztqy-test broker-b 1 10.15.10.238:10920 V4_2_0_SNAPSHOT 0.00(0,0ms) 0.00(0,0ms) 0 423898.87 0.0055
[[email protected] 2m-2s-sync]#

  

 

问题备注:

1,如果提示启动broker 失败 ,检测日志提示locked faild ,already 检查 端口是否区分 ,存储目录是否区分

2,配置文件要注意空格

17rocketmq集群双主双从同步搭建(代码片段)

基于前面一主一从同步搭建我们企业级开发,一般采用的是双主双从同步,以及异步刷盘;同步消息保证消息不丢失,异步刷盘提高吞吐量;我们VM里再克隆两台机器;192.168.0.110机器作为m1主节点192.168.0.103... 查看详情

17rocketmq集群双主双从同步搭建(代码片段)

基于前面一主一从同步搭建我们企业级开发,一般采用的是双主双从同步,以及异步刷盘;同步消息保证消息不丢失,异步刷盘提高吞吐量;我们VM里再克隆两台机器;192.168.0.110机器作为m1主节点192.168.0.103... 查看详情

部署:单主部署一主一从部署双主双从部署代码测试(代码片段)

一.RocketMQ单机部署Hosts添加信息我们首先进入/etc/hosts来添加信息vim/etc/hosts添加信息如下: 上传解压安装包 通过XFTP工具将apache-rocketmq.tar.gz传到/usr/local/software,然后添加/usr/local/apache-rocketmq目录,再将apache-rocketmq.ta 查看详情

rocketmq-双主双从集群+dashborad搭建(云服务器)(代码片段)

文章目录一、理论垫基础1.NameServer集群2.Producer集群3.Consumer集群4.Broker集群4.1节点间数据同步以及消息的持久化4.2Broker的集群模式4.2.1、单Master模式4.2.2、多Master模式4.2.3、多Master多Slave模式-异步复制4.2.4、多Master多Slave模式-同步双... 查看详情

rocketmq4.5.1双主双从异步复制环境搭建(代码片段)

基础环境操作系统:CentOS7实例:192.168.63.129,192.168.63.130,192.168.63.131,192.168.63.132Java:jdk-8u191-linux-x64.tar.gz安装JDK先把系统里面自带的卸载掉 [[email protected]soft]#rpm-qa|grepjavapython-javapackages-3.4. 查看详情

rocketmq集群搭建2(代码片段)

1.修改配置配件本次搭的集群是双主双从的同步模式  双主双从的配置文件再上图所示的里面服务器:192.168.100.128内需配置(下图中的:broker-a.properties和broker-b-s.properties)   broker-a.properties中的配置文件如下#所... 查看详情

4读写分离---双主双从(mycat)(代码片段)

双主双从一个主机m1用于处理所有写请求,它的从机s1和另一台主机m2还有它的从机s2负责所有读请求。当m1主机宕机后,m2主机负责写请求,m1、m2互为备机。  角色        地址master1  &nbs... 查看详情

mysql搭建主从复制(一主一从,双主双从)(代码片段)

主从复制原理Mysql中有一个binlog二进制日志,这个日志会记录下所有修改了的SQL语句,从服务器把主服务器上的binlog二进制日志在指定的位置开始复制主服务器所进行修改的语句到从服务器上执行一遍。流程图2|0搭建一主... 查看详情

keepalived双主双从配置(代码片段)

双主双从配置:(机器ip地址为自己本身机器的ip请勿使用博主的IP)配置过程时间有点长,代码比较多,配置的时候请看清加油,打工人配置环境:keepalived1:192.66.66.101keepalived2:192.66.66.102web1&#... 查看详情

mysql主从复制搭建之一主一从双主双从搭建(代码片段)

1.MySQL主从复制原理1.1为什么要做主从复制?在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写&#x... 查看详情

rocketmq单台,各种集群,可视化安装步骤(代码片段)

文章目录下载地址安装JDK1.8安装RocketMQ解压配置环境变量方便随时使用MQ命令配置MQ启动内存大小启动rocketmq测试关闭RocketMQRocketMQ可视化界面打包项目运行启动管理界面访问管理界面RocketMQ集群方案双主双从同步-和-异步复制方案... 查看详情

rocketmq安装及集群搭建(代码片段)

...里写自定义目录标题一、下载安装1.下载2.基础概念3.启动RocketMQ二、安装RocketMQconsole1.使用git拉取项目2.修改配置文件3.打包4.启动项目三、搭建双主双从集群1.创建服务器1中的消息存储路径2.修改服务器1配置文件3.创建服务器2中... 查看详情

003.mmm双主-双从读写分离部署(代码片段)

一 前期规划1.1 主机规划功能IP主机名serverid应用属性VIPMySQL版本Monitor172.24.8.20Monitor——监控————Master01172.24.8.10Master011写-writer172.24.8.100MySQL5.6.37Master02172.24.8.11Master022读-reader写-writer172.24.8.101172.24.8. 查看详情

rocket详细教程(代码片段)

目录1、RocketMQ整体介绍2、核心概念模型3、RocketMQ-源码包下载与结构说明4、RocketMQ-环境搭建(搭建一个实例)   4.1、Hosts添加信息   4.2、上传解压   4.3、创建存储路径   4.4、编辑RocketMQ配置文件   4.5、修改日志... 查看详情

mmm双主-双从读写分离部署(代码片段)

...表1.4整体架构1.4hosts修改1.5NTP配置二部署MySQL2.1安装MySQL三双主复制部署3.1master01my.cf配置3.2Master02my.cf配置3.4Master02创建账号3.5启动双主复制3.3启动Master02的slave功能四其他节点配置4.1所有Slave节点配置配置4.2所有Slave节点创建账号4.2... 查看详情

keepalive单主双主模型的配置(代码片段)

keepalive单主模式的配置一环境:关闭防火墙,iptables-AOUTPUT-d224.100.120.18-jREJECT或添加a记录关闭selinux,同步时间timedatectlset-timezoneAsia/Shanghai间timedatectlset-timezoneAsia/Shanghai二步骤:1yuminstallkeepalived#安装高可用软件2cd/etc/ 查看详情

003.mmm双主-双从读写分离部署(代码片段)

...署》。提示:除去monitor节点外所有节点均需要部署。三双主复制部署3.1master01my.cf配置1[[email protected]~]#vi/etc/my.cnf2[mysqld]3……4server-id=1 #设置主服务器master的id5log-bin=mysql- 查看详情

rocketmq搭建(代码片段)

...4位操作系统,Linux/Unix/MacOS64位JDK1.8+1、下载安装包rocketmq-all-4.9.2-bin-release.zip2、加压安装包unziprocketmq-all-4.9.2-bin-release.zip3、默认配置修改修改rocketmq/bin目录下runbroker.sh、runserver.shjvm参数(按服务器内存大小适配置,... 查看详情