首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

RocketMQ-手把手教你搭建集群

  • 25-03-05 20:47
  • 2292
  • 12449
blog.csdn.net

目录

一、集群架构

二、准备rocketmqOS1主机

三、修改rocketmqOS1配置文件

配置文件位置

修改broker-a.properties

修改broker-b-s.properties

其它配置

四、准备rocketmqOS2主机

五、修改rocketmqOS2配置文件

修改broker-b.properties

修改broker-a-s.properties

六、启动服务器

启动NameServer集群

启动两个Master

启动两个Slave

七、mqadmin命令


一、集群架构

        这里要搭建一个双主双从异步复制的Broker 集群。为了方便,这里使用了两台主机来完成集群的搭建。
        这两台主机的功能与broker 角色分配如下表。

二、准备rocketmqOS1主机

准备rocketmqOS主机,并修改配置。指定主机名为rocketmqOS1。

三、修改rocketmqOS1配置文件

配置文件位置

要修改的配置文件在 rocketMQ 解压目录的 conf/2m-2s-async 目录中。

修改broker-a.properties

将该配置文件内容修改为如下:
  1. # 指定整个broker集群的名称,或者说是RocketMQ集群的名称
  2. brokerClusterName=DefaultCluster
  3. # 指定master-slave集群的名称。一个RocketMQ集群可以包含多个master-slave集群
  4. brokerName=broker-a
  5. # master的brokerId为0
  6. brokerId=0
  7. # 指定删除消息存储过期文件的时间为凌晨4点
  8. deleteWhen=04
  9. # 指定未发生更新的消息存储文件的保留时长为48小时,48小时后过期,将会被删除
  10. fileReservedTime=48
  11. # 指定当前broker为异步复制master
  12. brokerRole=ASYNC_MASTER
  13. # 指定刷盘策略为异步刷盘
  14. flushDiskType=ASYNC_FLUSH
  15. # 指定Name Server的地址
  16. namesrvAddr=192.168.59.164:9876;192.168.59.165:9876

修改broker-b-s.properties

将该配置文件内容修改为如下:
  1. brokerClusterName=DefaultCluster
  2. # 指定这是另外一个master-slave集群
  3. brokerName=broker-b
  4. # slave的brokerId为非0
  5. brokerId=1
  6. deleteWhen=04
  7. fileReservedTime=48
  8. # 指定当前broker为slave
  9. brokerRole=SLAVE
  10. flushDiskType=ASYNC_FLUSH
  11. namesrvAddr=192.168.59.164:9876;192.168.59.165:9876
  12. # 指定Broker对外提供服务的端口,即Broker与producer与consumer通信的端口。默认 10911。由于当前主机同时充当着master1与slave2,而前面的master1使用的是默认端口。这 里需要将这两个端口加以区分,以区分出master1与slave2
  13. listenPort=11911
  14. # 指定消息存储相关的路径。默认路径为~/store目录。由于当前主机同时充当着master1与 slave2,master1使用的是默认路径,这里就需要再指定一个不同路径
  15. storePathRootDir=~/store-s
  16. storePathCommitLog=~/store-s/commitlog
  17. storePathConsumeQueue=~/store-s/consumequeue
  18. storePathIndex=~/store-s/index
  19. storeCheckpoint=~/store-s/checkpoint
  20. abortFile=~/store-s/abort

其它配置

除了以上配置外,这些配置文件中还可以设置其它属性。

 

  1. #指定整个broker集群的名称,或者说是RocketMQ集群的名称
  2. brokerClusterName=rocket-MS
  3. #指定master-slave集群的名称。一个RocketMQ集群可以包含多个master-slave集群
  4. brokerName=broker-a
  5. #0 表示 Master,>0 表示 Slave
  6. brokerId=0
  7. #nameServer地址,分号分割
  8. namesrvAddr=nameserver1:9876;nameserver2:9876
  9. #默认为新建Topic所创建的队列数
  10. defaultTopicQueueNums=4
  11. #是否允许 Broker 自动创建Topic,建议生产环境中关闭
  12. autoCreateTopicEnable=true
  13. #是否允许 Broker 自动创建订阅组,建议生产环境中关闭
  14. autoCreateSubscriptionGroup=true
  15. #Broker对外提供服务的端口,即Broker与producer与consumer通信的端口
  16. listenPort=10911
  17. #HA高可用监听端口,即Master与Slave间通信的端口,默认值为listenPort+1
  18. haListenPort=10912
  19. #指定删除消息存储过期文件的时间为凌晨4点
  20. deleteWhen=04
  21. #指定未发生更新的消息存储文件的保留时长为48小时,48小时后过期,将会被删除
  22. fileReservedTime=48
  23. #指定commitLog目录中每个文件的大小,默认1G
  24. mapedFileSizeCommitLog=1073741824
  25. #指定ConsumeQueue的每个Topic的每个Queue文件中可以存放的消息数量,默认30w条
  26. mapedFileSizeConsumeQueue=300000
  27. #在清除过期文件时,如果该文件被其他线程所占用(引用数大于0,比如读取消息),此时会阻止 此次删除任务,同时在第一次试图删除该文件时记录当前时间戳。该属性则表示从第一次拒绝删除 后开始计时,该文件最多可以保留的时长。在此时间内若引用数仍不为0,则删除仍会被拒绝。不过 时间到后,文件将被强制删除
  28. destroyMapedFileIntervalForcibly=120000
  29. #指定commitlog、consumequeue所在磁盘分区的最大使用率,超过该值,则需立即清除过期文件
  30. diskMaxUsedSpaceRatio=88
  31. #指定store目录的路径,默认在当前用户主目录中
  32. storePathRootDir=/usr/local/rocketmq-all-4.5.0/store
  33. #commitLog目录路径
  34. storePathCommitLog=/usr/local/rocketmq-all-4.5.0/store/commitlog
  35. #consumeueue目录路径
  36. storePathConsumeQueue=/usr/local/rocketmq-all-4.5.0/store/consumequeue
  37. #index目录路径
  38. storePathIndex=/usr/local/rocketmq-all-4.5.0/store/index
  39. #checkpoint文件路径
  40. storeCheckpoint=/usr/local/rocketmq-all-4.5.0/store/checkpoint
  41. #abort文件路径
  42. abortFile=/usr/local/rocketmq-all-4.5.0/store/abort
  43. #指定消息的最大大小
  44. maxMessageSize=65536
  45. #Broker的角色
  46. # - ASYNC_MASTER 异步复制Master
  47. # - SYNC_MASTER 同步双写Master
  48. # - SLAVE
  49. brokerRole=SYNC_MASTER
  50. #刷盘策略
  51. # - ASYNC_FLUSH 异步刷盘
  52. # - SYNC_FLUSH 同步刷盘
  53. flushDiskType=SYNC_FLUSH
  54. #发消息线程池数量
  55. sendMessageThreadPoolNums=128
  56. #拉消息线程池数量
  57. pullMessageThreadPoolNums=128
  58. #强制指定本机IP,需要根据每台机器进行修改。官方介绍可为空,系统默认自动识别,但多网卡 时IP地址可能读取错误
  59. brokerIP1=192.168.3.105

四、准备rocketmqOS2主机

准备rocketmqOS1主机,并修改配置。指定主机名为rocketmqOS2。

五、修改rocketmqOS2配置文件

        对于rocketmqOS2 主机,同样需要修改 rocketMQ 解压目录的 conf 目录的子目录 2m-2s-async 中的两个配置文件。

修改broker-b.properties

将该配置文件内容修改为如下:
  1. brokerClusterName=DefaultCluster
  2. brokerName=broker-b
  3. brokerId=0
  4. deleteWhen=04
  5. fileReservedTime=48
  6. brokerRole=ASYNC_MASTER
  7. flushDiskType=ASYNC_FLUSH
  8. namesrvAddr=192.168.59.164:9876;192.168.59.165:9876

修改broker-a-s.properties

将该配置文件内容修改为如下:
  1. brokerClusterName=DefaultCluster
  2. brokerName=broker-a
  3. brokerId=1
  4. deleteWhen=04
  5. fileReservedTime=48
  6. brokerRole=SLAVE
  7. flushDiskType=ASYNC_FLUSH
  8. namesrvAddr=192.168.59.164:9876;192.168.59.165:9876
  9. listenPort=11911
  10. storePathRootDir=~/store-s
  11. storePathCommitLog=~/store-s/commitlog
  12. storePathConsumeQueue=~/store-s/consumequeue
  13. storePathIndex=~/store-s/index
  14. storeCheckpoint=~/store-s/checkpoint
  15. abortFile=~/store-s/abort

六、启动服务器

启动NameServer集群

分别启动 rocketmqOS1 与 rocketmqOS2 两个主机中的 NameServer 。启动命令完全相同。
  1. nohup sh bin/mqnamesrv &
  2. tail -f ~/logs/rocketmqlogs/namesrv.log

启动两个Master

        分别启动rocketmqOS1 与 rocketmqOS2 两个主机中的 broker master 。注意,它们指定所要加载的配置文件是不同的。
  1. nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a.properties &
  2. tail -f ~/logs/rocketmqlogs/broker.log
  1. nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b.properties &
  2. tail -f ~/logs/rocketmqlogs/broker.log

启动两个Slave

        分别启动rocketmqOS1 与 rocketmqOS2 两个主机中的 broker slave 。注意,它们指定所要加载的配置文件是不同的。
  1. nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b-s.properties &
  2. tail -f ~/logs/rocketmqlogs/broker.log
  1. nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a-s.properties &
  2. tail -f ~/logs/rocketmqlogs/broker.log

七、mqadmin命令

运维专用命令,后续再出

注:本文转载自blog.csdn.net的秃了也弱了。的文章"https://blog.csdn.net/A_art_xiang/article/details/122488356"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top