RocketMQ主从搭建
RocketMQ可分为以下几种模式:
单点模式
主从模式
双从模式
双主双从模式,多主多从模式
搭建主从模式
- tar -zxvf rocketmq-4.6.0.tar.gz -C /usr/local
- mv rocketmq-4.6.0 rocketmq
创建存储目录
- mkdir /usr/local/rocketmq/store
- mkdir /usr/local/rocketmq/store/commitlog
- mkdir /usr/local/rocketmq/store/consumequeue
- mkdir /usr/local/rocketmq/store/index
rocketmq配置文件
- vim /usr/local/rocketmq/conf/2m-2s-async/broker-a.properties
broker配置说明:
参数名 | 默认值 | 说明 |
---|---|---|
listenPort | 10911 | 接受客户端连接的监听端口 |
namesrvAddr | null | nameServer 地址 |
brokerIP1 | 网卡的 InetAddress | 当前 broker 监听的 IP |
brokerIP2 | 跟 brokerIP1 一样 | 存在主从 broker 时,如果在 broker 主节点上配置了 brokerIP2 属性,broker 从节点会连接主节点配置的 brokerIP2 进行同步 |
brokerName | null | broker 的名称 |
brokerClusterName | DefaultCluster | 本 broker 所属的 Cluser 名称 |
brokerId | 0 | broker id, 0 表示 master, 其他的正整数表示 slave |
storePathCommitLog | $HOME/store/commitlog/ | 存储 commit log 的路径 |
storePathConsumerQueue | $HOME/store/consumequeue/ | 存储 consume queue 的路径 |
mappedFileSizeCommitLog | 1024 * 1024 * 1024(1G) | commit log 的映射文件大小 |
deleteWhen | 04 | 在每天的什么时间删除已经超过文件保留时间的 commit log |
fileReservedTime | 72 | 以小时计算的文件保留时间 |
brokerRole | ASYNC_MASTER | SYNC_MASTER/ASYNC_MASTER/SLAVE |
flushDiskType | ASYNC_FLUSH | SYNC_FLUSH/ASYNC_FLUSH SYNC_FLUSH 模式下的 broker 保证在收到确认生产者之前将消息刷盘。ASYNC_FLUSH 模式下的 broker 则利用刷盘一组消息的模式,可以取得更好的性能。 |
- #所属集群名字
- brokerClusterName=rocketmq-cluster
- #broker 名字,注意此处不同的配置文件填写的不一样
- brokerName=broker-a|broker-b
- #0 表示 Master, >0 表示 Slave
- #多网卡需要配置
- #brokerIP1=部署broker的ip
- 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=04
- #文件保留时间,默认 48 小时
- fileReservedTime=120
- #commitLog 每个文件的大小默认 1G
- mapedFileSizeCommitLog=1073741824
- #ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
- mapedFileSizeConsumeQueue=300000
- #destroyMapedFileIntervalForcibly=120000
- #redeleteHangedFileInterval=120000
- #检测物理文件磁盘空间
- diskMaxUsedSpaceRatio=88
- #存储路径
- storePathRootDir=/usr/local/rocketmq/store
- #commitLog 存储路径
- storePathCommitLog=/usr/local/rocketmq/store/commitlog
- #消费队列存储路径存储路径
- storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
- #消息索引存储路径
- storePathIndex=/usr/local/rocketmq/store/index
- #checkpoint 文件存储路径
- storeCheckpoint=/usr/local/rocketmq/store/checkpoint
- #abort 文件存储路径
- abortFile=/usr/local/rocketmq/store/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
rocketmq会根据当前网卡选择一个IP使用,当机器存在多块多网卡,很有可能会有问题;
- Caused by:
- org.apache.rocketmq.remoting.exception.RemotingConnectException: sendDefaultImpl call timeout
解决多网卡:
1.broker.conf,ip为自己的ip
- #namsrv的ip
- namesrvAddr=192.168.211.128:9876
- #部署broker的ip
- brokerIP1=192.168.211.128
从节点配置
brokerRole修改成SLAVE,brokerId改成大于0;拷贝配置到从节点
- scp -r rocketmq/ 192.168.211.129:/usr/local
主节点和从节点启动namesrv
- nohup sh bin/mqnamesrv &
主节点启动
- nohup sh bin/mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-a.properties >/dev/null 2>&1 &
从节点启动
- nohup sh bin/mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-a-s.properties >/dev/null 2>&1 &
修改日志配置文件
- mkdir -p /usr/local/rocketmq/logs
- cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml
修改脚本启动参数
vim /usr/local/rocketmq/bin/runbroker.sh
- JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m"
vim /usr/local/rocketmq/bin/runserver.sh
- JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
RocketMQ主从搭建的更多相关文章
- mysql 主从搭建步骤
mysql 主从搭建步骤 1:主库开启master端bin-log 2:主库创建备份用户 3:主库全备 4:从库导入全备数据 5:从库修改change master to信息 6:从库slave st ...
- Redis多实例及主从搭建
主从搭建前提是服务器上已经安装好了redis, redis安装可搜索本站另一篇博客:redis安装. redis单主机多实例 一.我们首先拷贝两份文件: cp /etc/redis.conf /etc ...
- xtrabackup 在线主从搭建
因为意外导致某个MySQL的从服务器宕机,且不可修复,因为是业务数据库,不能停机和锁表进行从库的搭建,所以考虑了使用xtrabackup 进行在线主从搭建. 一.数据库环境 注意: 主从搭建主库一定 ...
- mongodb主从搭建
#tigergao 官网进行下包,可以下载源码包或者二进制包,本次下载的为二进制包,进行试验. 主服务器搭建: mkdir mongomaster cp mongodb-linux-x86_64-rh ...
- RocketMQ 主从同步若干问题答疑
目录 1.初识主从同步 2.提出问题 3.原理探究 3.1 RocketMQ主从读写分离机制 3.2 消息消费进度同步机制 4.总结 温馨提示:建议参考代码RocketMQ4.4版本,4.5版本引入了 ...
- ### MySQL主从搭建Position
一.MySQL主从搭建 搭建主从架构的MySQL常用的有两种实现方式: 基于binlog的fileName + postion模式完成主从同步. 基于gtid完成主从同步搭建. 本篇就介绍如何使用第一 ...
- SQL Server、MySQL主从搭建,EF Core读写分离代码实现
一.SQL Server的主从复制搭建 1.1.SQL Server主从复制结构图 SQL Server的主从通过发布订阅来实现 1.2.基于SQL Server2016实现主从 新建一个主库&quo ...
- RocketMQ服务搭建_1
rocketmq是阿里研发,并贡献给Apache的一款分布式消息中间件. RcoketMQ 是一款低延迟.高可靠.可伸缩.易于使用的消息中间件. ACE环境:(Adapted communicatio ...
- mysql 主从搭建
主要搭建步骤如下: 1.打开binlog,设置server_id 打开主库的--log-bin,并设置server_id 2.主库授权 --最好也在从库对主库授权 ...
随机推荐
- Debian、kali类虚拟机网络设置
Linux发行版分类 先说一下Linux发行版的分类,因为不同的发行版,各自设置的网络的方式就不相同, - 我常用的Linux发行版 -- Debian --- debian --- ubuntu - ...
- matlab外部程序接口-excel
在excel中使用matlab 内容: 1.Spreadsheet Link 程序 安装与启动 1 打开excle->文件->选项 2.加载项->转到 3.浏览(可用加载宏,本来没有 ...
- 必须了解的mysql三大日志-binlog、redo log和undo log
日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息.mysql日志主要包括错误日志.查询日志.慢查询日志.事务日志.二进制日志几大类.作为开发,我们重点需要关注的是二进制日志( ...
- 3.Scala语法01 - 基础语法
- 运行时数据区--程序计数器(PC Register)
程序计数器(PC Register) 这里的计数器(Program Counter Register)并非为广义上所指的物理寄存器,JVM中的PC寄存器(程序计数器)是对物理PC寄存器的一种抽象模拟, ...
- Java12新特性
switch表达式(预览) 传统switch的缺点 匹配是自上而下的,如果忘记写break, 后面的case语句不论匹配与否都会执行; 所有的case语句共用一个块范围,在不同的case语句定义的变量 ...
- Elasticsearch数据库 | Elasticsearch-7.5.0应用基础实战
Elasticsearch 是一个可用于分布式以及符合RESTful 风格的搜索和数据分析引擎.-- Elastic Stack 官网 关于Elasticsearch的"爱恨情仇" ...
- zookeeper 笔记--curator分布式锁
使用ZK实现分布式独占锁, 原理就是利用ZK同级节点的唯一性. Curator框架下的一些分布式锁工具InterProcessMutex:分布式可重入排它锁 InterProcessSemaphore ...
- CSP-J 2019复赛分析
[CSP-J 2019 ]复赛分析 前言(????) 总的来说,这次复赛感觉考的很不满意,至于原因,感慨万分!关键是:期中考试了!偏偏是这个时候! - 由于我是一个初二的蒟蒻,所以考试前先定了一个目标 ...
- c++中的#include "stdafx.h"
转自:https://blog.csdn.net/lijun5635/article/details/13090341 在网上看到的一篇很详细的文章解释,之前一直不明白这个头文件什么作用,用来学习很好 ...