RocketMQ多Master集群模式部署
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,1 概述多Master集群模式指的是一个集群无Slave,全是Maste。优点:配置简单,单个Master宕机或重启维护对应用无影响,在磁盘配置为RAID10 时,即使机器宕机不可恢复情由于RAID1
千家信息网最后更新 2025年01月31日RocketMQ多Master集群模式部署
1 概述
多Master集群模式指的是一个集群无Slave,全是Maste。
优点:配置简单,单个Master宕机或重启维护对应用无影响,在磁盘配置为RAID10 时,即使机器宕机不可恢复情
由于RAID10 磁盘非常可靠,消息也不会丢(异步刷盘丢失少量消息,同步刷盘一条不丢)。性能最高。
缺点:单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅,消息实时性会受到受到影响。
1 环境信息
序号 | IP地址 | 主机名 | 用户 | 角色 | 模式 |
---|---|---|---|---|---|
1 | 192.168.3.41 | rocketmq01 | root | nameServer1,brokerServer1 | Master1 |
2 | 192.168.3.42 | rocketmq02 | root | nameServer2,brokerServer2 | Master2 |
2 安装前准备工作
2.1 /etc/hosts配置
cat >> /etc/hosts << EOF192.168.3.41 rocketmq-nameserver1192.168.3.41 rocketmq-master1192.168.3.42 rocketmq-nameserver2192.168.3.42 rocketmq-master2EOF
2.2 Java环境部署
在/usr/目录下创建java目录
mkdir /usr/local/java cd /usr/local/java
下载jdk,然后解压
curl -O http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gztar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/java
设置环境变量
cat >> /etc/profile << EOF#set java environment JAVA_HOME=/usr/local/java/jdk1.8.0_171JRE_HOME=/usr/java/jdk1.8.0_171/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATHEOF
让修改生效
source /etc/profile
验证JDK有效性
java -version java version "1.8.0_171"Java(TM) SE Runtime Environment (build 1.8.0_171-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
3 安装rocketmq
3.1 上传解压【两台机器操作】
mkdir /usr/local/rocketmq4.2cd /usr/local/rocketmq4.2curl -O https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zipunzip rocketmq-all-4.2.0-bin-release.ziprm -f rocketmq-all-4.2.0-bin-release.zipcd /usr/localln -s rocketmq4.2 rocketmqll /usr/local
3.2 创建存储路径【两台机器操作】
mkdir /usr/local/rocketmq/storemkdir /usr/local/rocketmq/store/commitlogmkdir /usr/local/rocketmq/store/consumequeuemkdir /usr/local/rocketmq/store/index
3.3 RocketMQ配置文件配置【两台机器】
vim /usr/local/rocketmq/conf/2m-noslave/broker-a.propertiesvim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties
broker-a.properties配置文件内容如下:
#所属集群名字brokerClusterName=rocketmq-cluster#broker名字,注意此处不同的配置文件填写的不一样brokerName=broker-a#0 表示 Master,>0 表示 SlavebrokerId=0#nameServer地址,分号分割namesrvAddr=192.168.3.41:9876;192.168.3.42:9876#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数defaultTopicQueueNums=4#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭autoCreateTopicEnable=true#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭autoCreateSubscriptionGroup=true#Broker 对外服务的监听端口listenPort=10911#删除文件时间点,默认凌晨 4点deleteWhen=04#文件保留时间,默认 48 小时fileReservedTime=120#commitLog每个文件的大小默认1GmapedFileSizeCommitLog=1073741824#ConsumeQueue每个文件默认存30W条,根据业务情况调整mapedFileSizeConsumeQueue=300000#destroyMapedFileIntervalForcibly=120000#redeleteHangedFileInterval=120000#检测物理文件磁盘空间diskMaxUsedSpaceRatio=88#存储路径storePathRootDir=/usr/local/alibaba-rocketmq/store#commitLog 存储路径storePathCommitLog=/usr/local/alibaba-rocketmq/store/commitlog#消费队列存储路径存储路径storePathConsumeQueue=/usr/local/alibaba-rocketmq/store/consumequeue#消息索引存储路径storePathIndex=/usr/local/alibaba-rocketmq/store/index#checkpoint 文件存储路径storeCheckpoint=/usr/local/alibaba-rocketmq/store/checkpoint#abort 文件存储路径abortFile=/usr/local/alibaba-rocketmq/store/abort#限制的消息大小maxMessageSize=65536#flushCommitLogLeastPages=4#flushConsumeQueueLeastPages=2#flushCommitLogThoroughInterval=10000#flushConsumeQueueThoroughInterval=60000#Broker 的角色#- ASYNC_MASTER 异步复制Master#- SYNC_MASTER 同步双写Master#- SLAVEbrokerRole=ASYNC_MASTER#刷盘方式#- ASYNC_FLUSH 异步刷盘#- SYNC_FLUSH 同步刷盘flushDiskType=ASYNC_FLUSH#checkTransactionMessageEnable=false#发消息线程池数量#sendMessageThreadPoolNums=128#拉消息线程池数量#pullMessageThreadPoolNums=128
broker-b.properties配置文件内容如下:
#所属集群名字brokerClusterName=rocketmq-cluster#broker名字,注意此处不同的配置文件填写的不一样brokerName=broker-b#0 表示 Master,>0 表示 SlavebrokerId=0#nameServer地址,分号分割namesrvAddr=192.168.3.41:9876;192.168.3.42:9876#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数defaultTopicQueueNums=4#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭autoCreateTopicEnable=true#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭autoCreateSubscriptionGroup=true#Broker 对外服务的监听端口listenPort=10911#删除文件时间点,默认凌晨 4点deleteWhen=04#文件保留时间,默认 48 小时fileReservedTime=120#commitLog每个文件的大小默认1GmapedFileSizeCommitLog=1073741824#ConsumeQueue每个文件默认存30W条,根据业务情况调整mapedFileSizeConsumeQueue=300000#destroyMapedFileIntervalForcibly=120000#redeleteHangedFileInterval=120000#检测物理文件磁盘空间diskMaxUsedSpaceRatio=88#存储路径storePathRootDir=/usr/local/alibaba-rocketmq/store#commitLog 存储路径storePathCommitLog=/usr/local/alibaba-rocketmq/store/commitlog#消费队列存储路径存储路径storePathConsumeQueue=/usr/local/alibaba-rocketmq/store/consumequeue#消息索引存储路径storePathIndex=/usr/local/alibaba-rocketmq/store/index#checkpoint 文件存储路径storeCheckpoint=/usr/local/alibaba-rocketmq/store/checkpoint#abort 文件存储路径abortFile=/usr/local/alibaba-rocketmq/store/abort#限制的消息大小maxMessageSize=65536#flushCommitLogLeastPages=4#flushConsumeQueueLeastPages=2#flushCommitLogThoroughInterval=10000#flushConsumeQueueThoroughInterval=60000#Broker 的角色#- ASYNC_MASTER 异步复制Master#- SYNC_MASTER 同步双写Master#- SLAVEbrokerRole=ASYNC_MASTER#刷盘方式#- ASYNC_FLUSH 异步刷盘#- SYNC_FLUSH 同步刷盘flushDiskType=ASYNC_FLUSH#checkTransactionMessageEnable=false#发消息线程池数量#sendMessageThreadPoolNums=128#拉消息线程池数量#pullMessageThreadPoolNums=128
3.4 修改日志配置文件【两台机器】
mkdir -p /usr/local/rocketmq/logscd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml
3.5 修改启动脚本参数【两台机器】
cd /usr/local/rocketmq/binvim runbroker.sh#将JAVA_OPT修改为JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"vim runserver.sh#将JAVA_OPT修改为JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"
3.6 启动NameServer【两台机器】
cd /usr/local/rocketmq/binnohup sh mqnamesrv &
3.7 启动BrokerServer A【192.168.3.41】
cd /usr/local/rocketmq/binnohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties > /dev/null 2>&1 &netstat -ntlpjpstail -500f /usr/local/rocketmq/logs/rocketmqlogs/broker.logtail -500f /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
3.8 启动BrokerServer B【192.168.3.42】
cd /usr/local/rocketmq/binnohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties > /dev/null 2>&1 &netstat -ntlpjpstail -500f /usr/local/rocketmq/logs/rocketmqlogs/broker.logtail -500f /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
下面的是我的公众号二维码,欢迎关注。文章转载请注明出处www.leexide.com
文件
路径
存储
消息
机器
配置
同步
集群
名字
大小
建议
数量
时间
磁盘
线程
队列
服务
地址
环境
角色
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全知识竞答活动答案
康康网络技术有限公司
软件开发中的各种职位
普陀区服务器回收厂家
征途手机版数据库
qt数据实时写入数据库
服务器双网卡互通测试
网络技术应用代码
暗黑3 服务器卡
公安系统网络安全有发展前途吗
海曙嵌入式软件开发公司
连接用户名和邮件服务器
创世互联网络科技有限公司
手游lol国际服连接服务器错误
网络技术是电信好还是移动好
透传用户证书信息至后端服务器
数据库试卷
新一代网络安全股
软件开发业务员话术
软件开发公司 咨询转型
沈阳手机应用软件开发要多少钱
永恒之塔服务器断开
软件开发中的各种职位
浙江智能化软件开发优势
索尔亚湖主播服务器
合肥网霆网络技术服务
服务器租用收费ooo9o
数据库采购功能
nebula数据库教程
江门哪家软件开发公司好