rocketmq4.7部署 避坑指南

rocketmq作为ASF顶级项目, 官方文档维护的真是不严谨,之前测试环境弄了半天,最后使用经常报找不到路由信息。此处记录一下生产环境的安装步骤。

hostnamectl set-hostname rocketmq01
hostnamectl set-hostname rocketmq02

安装jdk

  • 下载zip包,上传主机目录,unzip解压;
  • 配置环境变量:
    vi /etc/profile
    
    export JAVA_HOME=/opt/java/jdk1.8.0_261
    export PATH=$PATH:$JAVA_HOME/bin
    

安装rocketmq

  • 安装前准备:
    • 下载好release zip包,解压。

    • 选择conf/2m-2s-sync模式配置目录,编辑:

      • broker-a.properties
      brokerClusterName=zijinph
      brokerName=broker-a
      #0 表示 Master,>0 表示 Slave
      brokerId=0
      #删除文件时间点,默认凌晨 4点
      deleteWhen=04
      #文件保留时间,默认 48 小时
      fileReservedTime=48
      #Broker 的角色
      #- ASYNC_MASTER 异步复制Master
      #- SYNC_MASTER 同步双写Master
      #- SLAVE
      brokerRole=SYNC_MASTER
      #刷盘方式
      #- ASYNC_FLUSH 异步刷盘
      #- SYNC_FLUSH 同步刷盘
      flushDiskType=ASYNC_FLUSH
      
      #Broker 对外服务的监听端口
      listenPort=10911
      
      #存储路径
      storePathRootDir=/data/rocketmq/store/broker-a
      #commitLog 存储路径
      storePathCommitLog=/data/rocketmq/store/broker-a/commitlog
      #消费队列存储路径存储路径
      storePathConsumeQueue=/data/rocketmq/store/broker-a/consumequeue
      #消息索引存储路径
      storePathIndex=/data/rocketmq/store/broker-a/index
      
      
      • broker-a-s.properties
      brokerClusterName=zijinph
      brokerName=broker-a
      brokerId=1
      deleteWhen=04
      fileReservedTime=48
      brokerRole=SLAVE
      flushDiskType=ASYNC_FLUSH
      
      #Broker 对外服务的监听端口
      listenPort=10920
      
      #存储路径
      storePathRootDir=/data/rocketmq/store/broker-a-s
      #commitLog 存储路径
      storePathCommitLog=/data/rocketmq/store/broker-a-s/commitlog
      #消费队列存储路径存储路径
      storePathConsumeQueue=/data/rocketmq/store/broker-a-s/consumequeue
      #消息索引存储路径
      storePathIndex=/data/rocketmq/store/broker-a-s/index
      
      • broker-b.properties
      brokerClusterName=zijinph
      brokerName=broker-b
      brokerId=0
      deleteWhen=04
      fileReservedTime=48
      brokerRole=SYNC_MASTER
      flushDiskType=ASYNC_FLUSH
      
      #Broker 对外服务的监听端口
      listenPort=10911
      
      #存储路径
      storePathRootDir=/data/rocketmq/store/broker-b
      #commitLog 存储路径
      storePathCommitLog=/data/rocketmq/store/broker-b/commitlog
      #消费队列存储路径存储路径
      storePathConsumeQueue=/data/rocketmq/store/broker-b/consumequeue
      #消息索引存储路径
      storePathIndex=/data/rocketmq/store/broker-b/index
      
      • broker-b-s.preperties
      brokerClusterName=zijinph
      brokerName=broker-b
      brokerId=1
      deleteWhen=04
      fileReservedTime=48
      brokerRole=SLAVE
      flushDiskType=ASYNC_FLUSH
      
      #Broker 对外服务的监听端口
      listenPort=10920
      
      #存储路径
      storePathRootDir=/data/rocketmq/store/broker-b-s
      #commitLog 存储路径
      storePathCommitLog=/data/rocketmq/store/broker-b-s/commitlog
      #消费队列存储路径存储路径
      storePathConsumeQueue=/data/rocketmq/store/broker-b-s/consumequeue
      #消息索引存储路径
      storePathIndex=/data/rocketmq/store/broker-b-s/index
      
    • 进入conf, 目录编辑 日志输出目录:
      修改logback开头的日志配置文件,批量替换日志输出目录 fileNamePattern,我这里直接修改为rocketmq安装目录下。

    • 修改bin启动脚本,进入bin目录:
      默认启动nameserver占用4g,broker默认8g, 可根据机器配置自行修改,我这里只有两个机器,所以设置:broker 2g x 4, nameserver 1g x2.

      • 修改runserver.sh
      JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m
      
      • 修改runbroker.sh
      JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g
      

启动namesever

  • 两个节点分别执行:
    cd bin
    chmod +x *.sh
    ./os.sh
    nohup ./mqnamesrv >/dev/null 2>&1 &
    

查看启动日志,确认正常启动。

启动broker

  • 节点1 执行:
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-a.properties -n "10.1.30.103:9876;10.1.30.104:9876" >/dev/null 2>&1 &
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-b-s.properties -n "10.1.30.103:9876;10.1.30.104:9876" >/dev/null 2>&1 &
  • 节点2执行:
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-b.properties -n "10.1.30.103:9876;10.1.30.104:9876" >/dev/null 2>&1 &
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-a-s.properties -n "10.1.30.103:9876;10.1.30.104:9876" >/dev/null 2>&1 &

**-n 后为对应前面启动nameserver的机器的ip和端口,加引号,注意4.7版本中间用 “;” 不是逗号!! **

启动后分表确认日志,是否有向nameserver注册成功的日志。

部署监控web

  • 按照教程部署rocketmq-console, 指定namesever地址即可。

https://gitee.com/mirrors/RocketMQ-Externals/tree/master/rocketmq-console

你可能感兴趣的:(中间件)