【生产】部署RocketMQ

单机部署参照:https://www.jianshu.com/p/44961760cf36,本文将基于单机部署完善

主从模式选型

参考:https://juejin.cn/post/6844903997095018509

考虑我们公司对数据零丢失的硬性要求,选择多Master多Slave模式(同步复制、异步刷盘)。

2主2从模式(同步复制)

  • rocketmq安装目录:/usr/local/rocketmq-all-4.7.1-bin-release
  • 默认配置路径:/usr/local/rocketmq-all-4.7.1-bin-release/conf/2m-2s-sync
  • 配置文件说明(建议同一集群的主与从部署在不同的物理机上面):
    • broker-a.properties:集群A的master配置
    • broker-a-s.properties:集群A的slave配置
    • broker-b.properties:集群B的master配置
    • broker-b-s.properties:集群B的slave配置
  • 每个配置文件中添加如下配置:
    #线上关闭自动创建topic
    autoCreateTopicEnable=false
    
    #开启Slave读权限(分担master 压力)
    slaveReadEnable=true
    #发送消息线程等待时间,默认200ms
    waitTimeMillsInSendQueue=1000
    # nameServer地址,分号分割
    namesrvAddr=nameserverIP1:9876;namerserverIP2:9876
    # 本机ip地址,默认系统自动识别,但是某些多网卡机器会存在识别错误的情况,这种情况下可以人工配置。
    brokerIP1=本机外网IP
    # 存在broker主从时,在broker主节点上配置了brokerIP2的话,broker从节点会连接主节点配置的brokerIP2来同步
    brokerIP2=本机内网IP
    
    #开启临时存储池
    #transientStorePoolEnable=true
    #关闭堆内存数据传输
    #transferMsgByHeap=false
    #开启文件预热
    #warmMapedFileEnable=true
    #发送消息的最大线程数,默认1
    #sendMessageThreadPoolNums=16
    #使用可重入锁
    #useReentrantLockWhenPutMessage=true
    
    #同一台机器部署多个broker,端口号要不同,且端口号之间要相距大些
    listenPort=10911
    #存储路径
    storePathRootDir=/data/rocket/app1/store
    storePathCommitLog=/data/rocket/app1/store/commitlog
    
  • 自定义日志输出(如果不是同台机器部署多个应用,默认日志输出即可)
    cd /usr/local/rocketmq-all-4.7.1-bin-release/conf
    # 替换日志输出目录(此处使用LogHomeRoot环境变量自定义目录)
    sed -i "s/user\.home/LogHomeRoot/g" logback_broker.xml
    

启动与停止

  • NameServer
    cd /usr/local/rocketmq-all-4.7.1-bin-release
    # 启动
    nohup sh bin/mqnamesrv > ns.log 2>&1 &
    # 停止
    ./bin/mqshutdown namesrv
    
  • Broker
    cd /usr/local/rocketmq-all-4.7.1-bin-release
    # 启动(需设置日志环境变量,且需要同时执行)
    LogHomeRoot=/data/rocket/app1 nohup sh bin/mqbroker -c conf/2m-2s-sync/xxx.properties > bk_app1.log 2>&1 &
    # 停止
    ./bin/mqshutdown broker
    

你可能感兴趣的:(【生产】部署RocketMQ)