zoukankan      html  css  js  c++  java
  • RocketMQ 搭建双主双从集群

    RocketMQ 搭建双主双从集群

    4台机器,2台部署 NameServer,4台都部署 Broker,双主双从(同步复制,异步刷盘)

    基础安装教程参考:https://www.cnblogs.com/jwen1994/p/12318575.html

    机器列表

    192.168.159.133   Broker-a      部署nameServer 
    192.168.159.130   Broker-a-s   部署nameServer    
    192.168.159.131   Broker-b
    192.168.159.132   Broker-b-s

    1、修改 RocketMQ 启动内存配置(4个机器都要修改,其中 runbroker.sh 修改4个,runserver.sh 修改2个)

    vim runserver.sh
    JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    
    vim runbroker.sh
    JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m"
    
    
    启动两个机器的 nameserver
    nohup sh bin/mqnamesrv &

    2、编辑并启动 rocketmq 命令

    broker-a主节点
    nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a.properties &
    
    namesrvAddr=192.168.159.133:9876;192.168.159.130:9876
    brokerClusterName=XdclassCluster
    brokerName=broker-a
    brokerId=0
    deleteWhen=04
    fileReservedTime=48
    brokerRole=SYNC_MASTER
    flushDiskType=ASYNC_FLUSH
    
    defaultTopicQueueNums=4
    #是否允许自动创建Topic,建议线下开启,线上关闭
    autoCreateTopicEnable=true
    #是否允许自动创建订阅组,建议线下开启,线上关闭
    autoCreateSubscriptionGroup=false
    
    #存储路径,根据需求进行配置绝对路径,默认是家目录下面
    #storePathRootDir= 
    #storePathCommitLog
    broker-a从节点
    nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a-s.properties &
    
    namesrvAddr=192.168.159.133:9876;192.168.159.130:9876
    brokerClusterName=XdclassCluster
    brokerName=broker-a
    brokerId=1
    deleteWhen=04
    fileReservedTime=48
    brokerRole=SLAVE
    flushDiskType=ASYNC_FLUSH
    
    defaultTopicQueueNums=4
    #是否允许自动创建Topic,建议线下开启,线上关闭
    autoCreateTopicEnable=true
    #是否允许自动创建订阅组,建议线下开启,线上关闭
    autoCreateSubscriptionGroup=false
    
    #存储路径,根据需求进行配置绝对路径,默认是家目录下面
    #storePathRootDir= 
    #storePathCommitLog
     
    
    broker-b主节点
    nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b.properties &
    
    namesrvAddr=192.168.159.133:9876;192.168.159.130:9876
    brokerClusterName=XdclassCluster
    brokerName=broker-b
    brokerId=0
    deleteWhen=04
    fileReservedTime=48
    brokerRole=SYNC_MASTER
    flushDiskType=ASYNC_FLUSH
    
    defaultTopicQueueNums=4
    #是否允许自动创建Topic,建议线下开启,线上关闭
    autoCreateTopicEnable=true
    #是否允许自动创建订阅组,建议线下开启,线上关闭
    autoCreateSubscriptionGroup=false
    
    #存储路径,根据需求进行配置绝对路径,默认是家目录下面
    #storePathRootDir= 
    #storePathCommitLog
     
    
    broker-b从节点
    nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b-s.properties &
    
    namesrvAddr=192.168.159.133:9876;192.168.159.130:9876
    brokerClusterName=XdclassCluster
    brokerName=broker-b
    brokerId=1
    deleteWhen=04
    fileReservedTime=48
    brokerRole=SLAVE
    flushDiskType=ASYNC_FLUSH
    
    defaultTopicQueueNums=4
    #是否允许自动创建Topic,建议线下开启,线上关闭
    autoCreateTopicEnable=true
    #是否允许自动创建订阅组,建议线下开启,线上关闭
    autoCreateSubscriptionGroup=false
    
    #存储路径,根据需求进行配置绝对路径,默认是家目录下面
    #storePathRootDir= 
    #storePathCommitLog

    注意:4台机器都需要关闭防火墙

    CentOS 6.5关闭防火墙
    servcie iptables stop 
    
    centos7关闭防火墙 
    systemctl stop firewalld
    systemctl stop firewalld.service

    双主双从搭建和控制台配置

    注意:如果连接不了 broker,日志提示连接的端口少2位,记得检查防火墙是否关闭

    使用管控台,安装在 server1 机器里面

    修改事项
    pom.xml  里面的rocketmq版本号
    
    路径 /usr/local/software/rocketmq-externals-master/rocketmq-console/src/main/resources
    
    application.properties里面的nameserver
    
    增加 rocketmq.config.namesrvAddr=192.168.159.133:9876;192.168.159.130:9876
    
    mvn install -Dmaven.test.skip=true
    
    java -jar rocketmq-console-ng-1.0.0.jar

    生产环境 RocketMQ 的使用流程和推荐配置

    • Topic 创建线上禁止开启自动创建
    • 一般是有专门的后台进行队列的 CRUD,应用上线需要申请队列名称
    • 生产环境推荐配置
      • NameServer 配置多个不同机器多个节点
      • 多 Master, 每个 Master 带有 Slave
      • 主从设置为 SYNC_MASTER 同步双写
      • Producer 用同步方式投递 Broker
      • 刷盘策略为 SYNC_FLUSH(性能好点则可以为 ASYNC_FLUSH)
    • 性能分析思路
      • CPU:top
      • 网卡:sar -n DEV 2 10、netstat -t、 iperf3
      • 磁盘:iostat -xdm 1
      • JVM:jstack、jinfo、MAT
  • 相关阅读:
    【剑指Offer】53、表示数值的字符串
    【剑指Offer】52、正则表达式匹配
    【剑指Offer】51、构建乘积数组
    【双系统】windows 和 Ubuntu 双系统安装
    【ubuntu子系统】使用windows自带的ubuntu子系统
    【剑指Offer】50、数组中重复的数字
    【剑指Offer】49、把字符串转换成整数
    【剑指Offer】48、不用加减乘除做加法
    【剑指Offer】47、求1+2+3+4+···+n
    【maven】成功生成jar包,提示找不到主类?
  • 原文地址:https://www.cnblogs.com/jwen1994/p/12385384.html
Copyright © 2011-2022 走看看