RocketMQ可分为以下几种模式:

  • 单点模式

  • 主从模式

  • 双从模式

  • 双主双从模式,多主多从模式

  搭建主从模式

  1. tar -zxvf rocketmq-4.6.0.tar.gz -C /usr/local
  2. mv rocketmq-4.6.0 rocketmq

  

  创建存储目录

  1. mkdir /usr/local/rocketmq/store
  2. mkdir /usr/local/rocketmq/store/commitlog
  3. mkdir /usr/local/rocketmq/store/consumequeue
  4. mkdir /usr/local/rocketmq/store/index

  

  rocketmq配置文件

  1. 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 则利用刷盘一组消息的模式,可以取得更好的性能。

  

  1. #所属集群名字
  2. brokerClusterName=rocketmq-cluster
  3. #broker 名字,注意此处不同的配置文件填写的不一样
  4. brokerName=broker-a|broker-b
  5. #0 表示 Master, >0 表示 Slave
  6. #多网卡需要配置
  7. #brokerIP1=部署broker的ip
  8. brokerId=0
  9. #nameServer 地址,分号分割
  10. namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;
  11. #在发送消息时,自动创建服务器不存在的 topic,默认创建的队列数
  12. defaultTopicQueueNums=4
  13. #是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭
  14. autoCreateTopicEnable=true
  15. #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
  16. autoCreateSubscriptionGroup=true
  17. #Broker 对外服务的监听端口
  18. listenPort=10911
  19. #删除文件时间点,默认凌晨 4 点
  20. deleteWhen=04
  21. #文件保留时间,默认 48 小时
  22. fileReservedTime=120
  23. #commitLog 每个文件的大小默认 1G
  24. mapedFileSizeCommitLog=1073741824
  25. #ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
  26. mapedFileSizeConsumeQueue=300000
  27. #destroyMapedFileIntervalForcibly=120000
  28. #redeleteHangedFileInterval=120000
  29. #检测物理文件磁盘空间
  30. diskMaxUsedSpaceRatio=88
  31. #存储路径
  32. storePathRootDir=/usr/local/rocketmq/store
  33. #commitLog 存储路径
  34. storePathCommitLog=/usr/local/rocketmq/store/commitlog
  35. #消费队列存储路径存储路径
  36. storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
  37. #消息索引存储路径
  38. storePathIndex=/usr/local/rocketmq/store/index
  39. #checkpoint 文件存储路径
  40. storeCheckpoint=/usr/local/rocketmq/store/checkpoint
  41. #abort 文件存储路径
  42. abortFile=/usr/local/rocketmq/store/abort
  43. #限制的消息大小
  44. maxMessageSize=65536
  45. #flushCommitLogLeastPages=4
  46. #flushConsumeQueueLeastPages=2
  47. #flushCommitLogThoroughInterval=10000
  48. #flushConsumeQueueThoroughInterval=60000
  49. #Broker 的角色
  50. #- ASYNC_MASTER 异步复制 Master
  51. #- SYNC_MASTER 同步双写 Master
  52. #- SLAVE
  53. brokerRole=ASYNC_MASTER
  54. #刷盘方式
  55. #- ASYNC_FLUSH 异步刷盘
  56. #- SYNC_FLUSH 同步刷盘
  57. flushDiskType=ASYNC_FLUSH
  58. #checkTransactionMessageEnable=false
  59. #发消息线程池数量
  60. #sendMessageThreadPoolNums=128
  61. #拉消息线程池数量
  62. #pullMessageThreadPoolNums=128

  

  rocketmq会根据当前网卡选择一个IP使用,当机器存在多块多网卡,很有可能会有问题;

  1. Caused by:
  2. org.apache.rocketmq.remoting.exception.RemotingConnectException: sendDefaultImpl call timeout

  

  

  解决多网卡:

  1.broker.conf,ip为自己的ip

  1. #namsrv的ip
  2. namesrvAddr=192.168.211.128:9876
  3. #部署broker的ip
  4. brokerIP1=192.168.211.128

  

  从节点配置

  brokerRole修改成SLAVE,brokerId改成大于0;拷贝配置到从节点

  1. scp -r rocketmq/ 192.168.211.129:/usr/local

  

  主节点和从节点启动namesrv

  1. nohup sh bin/mqnamesrv &

  

  主节点启动

  1. nohup sh bin/mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-a.properties >/dev/null 2>&1 &

  

  从节点启动

  1. nohup sh bin/mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-a-s.properties >/dev/null 2>&1 &

  

  修改日志配置文件

  1. mkdir -p /usr/local/rocketmq/logs
  2. cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml

  

  

  修改脚本启动参数

  vim /usr/local/rocketmq/bin/runbroker.sh

  1. JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m"

  

  vim /usr/local/rocketmq/bin/runserver.sh

  1. JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

  

RocketMQ主从搭建的更多相关文章

  1. mysql 主从搭建步骤

    mysql 主从搭建步骤 1:主库开启master端bin-log 2:主库创建备份用户 3:主库全备 4:从库导入全备数据 5:从库修改change master to信息 6:从库slave st ...

  2. Redis多实例及主从搭建

    主从搭建前提是服务器上已经安装好了redis, redis安装可搜索本站另一篇博客:redis安装. redis单主机多实例 一.我们首先拷贝两份文件: cp /etc/redis.conf /etc ...

  3. xtrabackup 在线主从搭建

    因为意外导致某个MySQL的从服务器宕机,且不可修复,因为是业务数据库,不能停机和锁表进行从库的搭建,所以考虑了使用xtrabackup 进行在线主从搭建. 一.数据库环境 注意:  主从搭建主库一定 ...

  4. mongodb主从搭建

    #tigergao 官网进行下包,可以下载源码包或者二进制包,本次下载的为二进制包,进行试验. 主服务器搭建: mkdir mongomaster cp mongodb-linux-x86_64-rh ...

  5. RocketMQ 主从同步若干问题答疑

    目录 1.初识主从同步 2.提出问题 3.原理探究 3.1 RocketMQ主从读写分离机制 3.2 消息消费进度同步机制 4.总结 温馨提示:建议参考代码RocketMQ4.4版本,4.5版本引入了 ...

  6. ### MySQL主从搭建Position

    一.MySQL主从搭建 搭建主从架构的MySQL常用的有两种实现方式: 基于binlog的fileName + postion模式完成主从同步. 基于gtid完成主从同步搭建. 本篇就介绍如何使用第一 ...

  7. SQL Server、MySQL主从搭建,EF Core读写分离代码实现

    一.SQL Server的主从复制搭建 1.1.SQL Server主从复制结构图 SQL Server的主从通过发布订阅来实现 1.2.基于SQL Server2016实现主从 新建一个主库&quo ...

  8. RocketMQ服务搭建_1

    rocketmq是阿里研发,并贡献给Apache的一款分布式消息中间件. RcoketMQ 是一款低延迟.高可靠.可伸缩.易于使用的消息中间件. ACE环境:(Adapted communicatio ...

  9. mysql 主从搭建

    主要搭建步骤如下: 1.打开binlog,设置server_id     打开主库的--log-bin,并设置server_id 2.主库授权                --最好也在从库对主库授权 ...

随机推荐

  1. Debian、kali类虚拟机网络设置

    Linux发行版分类 先说一下Linux发行版的分类,因为不同的发行版,各自设置的网络的方式就不相同, - 我常用的Linux发行版 -- Debian --- debian --- ubuntu - ...

  2. matlab外部程序接口-excel

    在excel中使用matlab 内容: 1.Spreadsheet Link 程序 安装与启动 1 打开excle->文件->选项 2.加载项->转到 3.浏览(可用加载宏,本来没有 ...

  3. 必须了解的mysql三大日志-binlog、redo log和undo log

    日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息.mysql日志主要包括错误日志.查询日志.慢查询日志.事务日志.二进制日志几大类.作为开发,我们重点需要关注的是二进制日志( ...

  4. 3.Scala语法01 - 基础语法

  5. 运行时数据区--程序计数器(PC Register)

    程序计数器(PC Register) 这里的计数器(Program Counter Register)并非为广义上所指的物理寄存器,JVM中的PC寄存器(程序计数器)是对物理PC寄存器的一种抽象模拟, ...

  6. Java12新特性

    switch表达式(预览) 传统switch的缺点 匹配是自上而下的,如果忘记写break, 后面的case语句不论匹配与否都会执行; 所有的case语句共用一个块范围,在不同的case语句定义的变量 ...

  7. Elasticsearch数据库 | Elasticsearch-7.5.0应用基础实战

    Elasticsearch 是一个可用于分布式以及符合RESTful 风格的搜索和数据分析引擎.-- Elastic Stack 官网 关于Elasticsearch的"爱恨情仇" ...

  8. zookeeper 笔记--curator分布式锁

    使用ZK实现分布式独占锁, 原理就是利用ZK同级节点的唯一性. Curator框架下的一些分布式锁工具InterProcessMutex:分布式可重入排它锁 InterProcessSemaphore ...

  9. CSP-J 2019复赛分析

    [CSP-J 2019 ]复赛分析 前言(????) 总的来说,这次复赛感觉考的很不满意,至于原因,感慨万分!关键是:期中考试了!偏偏是这个时候! - 由于我是一个初二的蒟蒻,所以考试前先定了一个目标 ...

  10. c++中的#include "stdafx.h"

    转自:https://blog.csdn.net/lijun5635/article/details/13090341 在网上看到的一篇很详细的文章解释,之前一直不明白这个头文件什么作用,用来学习很好 ...