RocketMQ-双master环境搭建

作者: StrongZhao | 来源:发表于2018-10-08 17:18 被阅读9次
    • RocketMQ下载地址:https://rocketmq.apache.org/release_notes/release-notes-4.2.0/

    • 服务器环境

      IP地址 模式 环境
      192.168.0.185 master Java1.8开发环境
      192.168.0.186 master Java1.8开发环境
    • 配置RocketMQ环境

      #进入安装目录
      cd /usr/local/src/
      #获取rocketMQ
      wget http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip
      #解压rocketMQ.zip文件
      unzip rocketmq-all-4.2.0-bin-release.zip -d rocketmq
      #修改rocketMQ配置文件
      vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties(192.168.0.185)
      vim /usr/local/rocketmq/conf/2m-noslave/broker-b.properties(192.168.0.186)
      #所属集群名字
      borkerClusterName=rocketmq-cluster
      #broker名字,注意此处不同的配置文件填写的不一样
      brokerName=broker-a //192.168.0.185为broker-a,192.168.0.186为broker-b
      #0 表示Master, >0 表示Slave
      brokerId=0
      #nameServer地址,分号分割
      namesrvAddr=192.168.0.185:9876;192.168.0.186:9876
      #在发消息时,自动创建服务器不存在的topic,默认创建的队列数
      defaultTopicQueueNums=4
      #是否允许Broker自动创建Topic,建议线下开启,线上关闭
      autoCreateTopicEnable=true
      #是否允许Broker自动创建订阅组,建议线下开启,线上关闭
      autoCreateSubscriptionGroup=true
      #Broker 对外服务的监听端口
      listenPort=10911
      #删除文件时间点,默认凌晨4点
      deleteWhen=04
      #文件保留时间,默认48小时
      fileReservedTime=120
      #commitLog每个文件的大小默认1G
      mapedFileSizeCommitLog=1073741824
      #ConsumeQueue每个文件默认存30W条,根据业务情况调整
      mapedFileSizeConsumeQueue=300000
      #destroyMapedFileIntervalForcibly=120000
      #redeleteHangedFileInterval=120000
      #检测物理文件磁盘空间
      diskMaxUsedSpaceRatio=88
      #存储路径
      storePathRootDir=/usr/local/src/rocketmq/store
      #commitLog存储路径
      storePathCommitLog=/usr/local/src/rocketmq/store/commitlog
      #消费队列存储路径
      storePathConsumeQueue=/usr/local/src/rocketmq/store/consumequeue
      #消息索引存储路径
      storePathIndex=/usr/local/src/rocketmq/store/index
      #checkpoint 文件存储路径
      storeCheckPoint=/usr/local/src/rocketmq/store/checkpoint
      #abort 文件存储路径
      abortFile=/usr/local/src/rocketmq/store/abort
      #限制的消息大小
      maxMessageSize=65536
      
      flushCommitLogLeastPages=4
      flushConsumeQueueLeastPages=2
      flushCommitLogThoroughInterval=10000
      flushConsumeQueueThoroughInterval=60000
      
      #Broker 的角色
      #- ASYNC_MASTER 异步复制Master
      #- SYNC_MASTER 同步双写Master
      #- SLAVE
      brokerRole=ASYNC_MASTER
      
      #刷盘方式
      #- ASYNC_FLUSH  异步刷盘
      #- SYNC_FLUSH 同步刷盘
      flushDiskType=ASYNC_FLUSH
      
      checkTransactionMessageEnable=false
      #发消息线程池数量
      sendMessageThreadPoolNums=128
      #拉消息线程池数量
      pullMessageThreadPoolNums=128
      
    • 修改两台服务器的rocketMQ日志配置文件

      mkdir -p /usr/local/src/rocketmq/logs
      cd /usr/local/src/rocketmq/conf && sed -i 's#${user.home}#/usr/local/src/rocketmq#g' *.xml
      
    • 修改两台服务器RocketMQ启动脚本参数(主要配置JVM参数根据自己服务器内存大小进行分配)

      vim /usr/local/src/rocketmq/bin/runserver.sh
      vim /usr/local/src/rocketmq/bin/runbroker.sh
      #分别设置JVM(-Xmx)最大可用内存为服务器的内存,设置JVM促使内存(-Xms)为服务器的内存,设置JVM年轻代(-Xmn)为服务器内存的一半即可
      

      ps:JVM调优设置参考:https://www.cnblogs.com/lcword/p/5857918.html

    • 关闭两台服务器防火墙或者开放端口

      #关闭防火墙
      systemctl stop firewalld
      #或者开放端口
      firewall-cmd --zone=public --add-port=9876/tcp --permanent  
      
    • 启动两台服务器的NameServer

      #进入rocketmq目录
      cd /usr/local/src/rocketmq/bin
      #启动nameserver服务
      nohup sh mqnamesrv &
      
    • 启动192.168.0.185BrokerServer

      nohup sh mqbroker -c /usr/local/src/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
      
    • 启动192.168.0.186的BrokerServer

      nohup sh mqbroker -c /usr/local/src/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &
      
    • 检查nameserver和brokerserver状态

      #显示当前所有Java进程
      jps
      #106688 NamesrvStartup
      #107028 Jps
      #106730 BrokerStartup
      #查看日志信息
      tail -f -n  /usr/local/src/rocketmq/logs/rocketmqlogs/broker.log
      tail -f -n /usr/local/src/rocketmq/logs/rocketmqlogs/namesrv.log
      
    • 关闭broker服务和nameserver服务

      #关闭broker服务
      sh /usr/local/src/rocketmq/bin/mqshutdown broker
      #关闭nameserver服务
      sh /usr/local/src/rocketmq/bin/mqshutdown namesrv
      

    相关文章

      网友评论

        本文标题:RocketMQ-双master环境搭建

        本文链接:https://www.haomeiwen.com/subject/gsujaftx.html