RocketMQ多Master集群模式部署
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,1 概述多Master集群模式指的是一个集群无Slave,全是Maste。优点:配置简单,单个Master宕机或重启维护对应用无影响,在磁盘配置为RAID10 时,即使机器宕机不可恢复情由于RAID1
千家信息网最后更新 2024年11月20日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安全错误
数据库的锁怎样保障安全
2022年度网络安全态势
电脑服务器当电脑使用
石家庄设计app软件开发
企业软件开发需要什么框架
计算机网络技术和计算科学
数据库每个表都有id
千人基因组数据库使用
通讯技术和网络技术
文档数据库数据冗余
数据库管理员难吗
数据库清楚数据语法
江苏创科网络技术有限公司
魔兽世界正式服平衡服务器推荐
美国 软件开发
网络安全监管方案
网络安全审查办法反垄断法
数据库密码验证方式
淮安定制软件开发价格
中国深圳公司网络安全
ibm 服务器 性能
济南电脑软件开发工资待遇
广电网络安全播出巡查
通讯技术和网络技术
b端数据库如何搭建
四川服务器维修维保哪家便宜
服务器通过页面管理
阿里云数据库触发器
网络安全宣传海报手抄报
数据库添加触发器
三级网络技术会考原题么