第八章:手把手教老婆实现:RocketMQ集群模式(2)-RocketMQ主从-搭建

举报
小虚竹 发表于 2021/10/20 00:39:22 2021/10/20
【摘要】 技术活,该赏关注+一键三连(点赞,评论,收藏)再看,养成好习惯 RocketMQ使用教程相关系列 目录 目录 第一节:服务器准备 第二节:安装配置(salve) 创建rocketmq存储目录 修改 runbroker.sh 修改 runserver.sh 第三节:配置 配置hosts 配置完成后, 重启网卡 ro...

  
  1. 技术活,该赏
  2. 关注+一键三连(点赞,评论,收藏)再看,养成好习惯

RocketMQ使用教程相关系列 目录


目录

第一节:服务器准备

第二节:安装配置(salve)

创建rocketmq存储目录

修改 runbroker.sh

修改 runserver.sh

第三节:配置

配置hosts

配置完成后, 重启网卡

rocketmq 环境变量配置

jdk安装

修改master服务器配置

关闭namesrv服务

关闭broker服务

主从配置

主机:192.168.88.131

从机:192.168.88.133

第四节:启动namesrv和主从的broker

先启动master主机和slave主机的namesrv

启动master主机的broker

再启动slave主机的broker

第五节:集群监控平台查看

启动


第一节:服务器准备

安装两台虚拟机,一台master,一台slave。

IP

hostname

mastername

192.168.88.133

rocketmq-nameserver2

rocketmq-master1-slave1

192.168.88.131

rocketmq-nameserver1

rocketmq-master1

安装虚拟机传送门-->

第二节:安装配置(salve)

之前已经在一台服务器安装了rocketMQ,所以salve服务器(192.168.88.133)只需要安装从节点就行了。

注:如果不知道rocketMQ怎么安装的,传送门-->第一章:RocketMQ安装

先在salve服务器创建存在安装文件的目录

mkdir server
 

0

把安装文件拷贝到salve服务器上,并解压安装

scp rocketmq-all-4.5.1-bin-release.zip 192.168.88.133:/usr/local/server/
 

0

0

unzip rocketmq-all-4.5.1-bin-release.zip 
 

0


  
  1. mkdir mq
  2. mv rocketmq-all-4.5.1-bin-release mq/rocketmq

0

创建rocketmq存储目录

现有的目录结构是这样的

0

创建存储目录


  
  1. mkdir logs
  2. mkdir store
  3. cd store
  4. mkdir commitlog
  5. mkdir consumequeue
  6. mkdir index

0

修改日志路径

进入conf 目录,替换所有xml中的${user.home},保证日志路径正确

0

0

语法:

sed -i 批量替换作用


  
  1. sed -i 's#原字符串#新字符串#g' 替换的文件
  2. sed -i 's#${user.home}#/usr/local/server/mq/rocketmq#g' *.xml

 0

说明替换成功了

0

修改 runbroker.sh

调整内存大小(这里只是演示用途,实际的内存大小要以生产环境为准)


  
  1. cd ..
  2. cd bin/
  3. vim runbroker.sh

0 0

调整为1g

0

修改 runserver.sh

调整内存大小(这里只是演示用途,实际的内存大小要以生产环境为准)

vim runserver.sh
 

0

0

第三节:配置

配置hosts

在host文件中配置地址与IP的映射关系

修改2台机器的/etc/hosts文件,加入如下映射关系


  
  1. vim /etc/hosts
  2. 192.168.88.131 rocketmq-nameserver1
  3. 192.168.88.131 rocketmq-master1
  4. 192.168.88.133 rocketmq-nameserver2
  5. 192.168.88.133 rocketmq-master1-slave1

配置完成后, 重启网卡

systemctl restart network
 

rocketmq 环境变量配置

vim /etc/profile
 

在profile文件的末尾加入如下命令


  
  1. #set rocketmq
  2. ROCKETMQ_HOME=/usr/local/server/mq/rocketmq/
  3. PATH=$PATH:$ROCKETMQ_HOME/bin
  4. export ROCKETMQ_HOME PATH

输入:wq! 保存并退出, 并使得配置立刻生效:

source /etc/profile
 

jdk安装

centos安装open-jdk8-->传送门

修改master服务器配置

主机;192.168.88.131

关闭namesrv服务


  
  1. #进入bin
  2. sh mqshutdown namesrv

0

关闭broker服务

sh mqshutdown broker
 

0

通过jps验证下

0

主从配置

主机:192.168.88.131


  
  1. cd /usr/local/server/mq/rocketmq/conf
  2. cd 2m-2s-async/
  3. vim broker-a.properties


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

有调整的地方:


  
  1. #集群名称,主从要一样
  2. brokerClusterName=xuzhu_cluster
  3. #broker名称,主从要一样,根据BrokerRole来确定谁是主谁是从
  4. brokerName=broker-a
  5. #nameServer 地址
  6. namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
  7. #brokerID 0是主,>0是从
  8. brokerId=0
  9. #主从关系,异步复制
  10. brokerRole=ASYNC_MASTER
  11. #刷盘模式,异步刷盘
  12. flushDiskType=ASYNC_FLUSH

从机:192.168.88.133

修改broker-a-s.properties

vim broker-a-s.properties
 

修改,保存


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

有调整的地方:


  
  1. #集群名称,主从要一样
  2. brokerClusterName=xuzhu_cluster
  3. #broker名称,主从要一样,根据BrokerRole来确定谁是主谁是从
  4. brokerName=broker-a
  5. #nameServer 地址
  6. namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
  7. #brokerID 0是主,>0是从
  8. brokerId=1
  9. #角色是从节点
  10. brokerRole=SLAVE
  11. #刷盘模式,异步刷盘
  12. flushDiskType=ASYNC_FLUSH

第四节:启动namesrv和主从的broker

master主机和slave主机进入bin目录

先启动master主机和slave主机的namesrv

nohup sh mqnamesrv > /dev/null 2>&1 &
 

0

启动master主机的broker

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

0

再启动slave主机的broker

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

0

第五节:集群监控平台查看

启动

事先要查询下docker 有没有存在容器rocketmq-console-ng,如果有,要先删除

对docker不熟悉的同学,传送门-->docker 常用操作容器命令

如果事先没有下载rocketmq-console镜像,传送门-->RocketMQ集群监控平台 rocketmq-console 搭建

docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.88.131:9876;192.168.88.133:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t --name rocketmq-console-ng  styletang/rocketmq-console-ng
 

0

文章来源: xiaoxuzhu.blog.csdn.net,作者:小虚竹,版权归原作者所有,如需转载,请联系作者。

原文链接:xiaoxuzhu.blog.csdn.net/article/details/116109894

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。