zoukankan      html  css  js  c++  java
  • RocketMQ安装-单机版-windows+centos

    windows版本

    1. 解压压缩包rocketmq-all-4.7.1-bin-release.zip并复制到本地软件安装目录

    2. 环境变量添加

      NAMESRV_ADDR=localhost:9876
      ROCKETMQ_HOME=D:soft
      ocketmq
      
    3. 修改bin目录下的runbroker.cmd和runserver.cmd中的虚拟机内存大小为

      rem runserver.cmd
      set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
      rem runbroker.cmd
      set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx256m -Xmn128m"
      
    4. conf目录下logback开头的文件中修改${user.name}为本地日志目录地址(可不修改),也可以使用变量进行修改,在logback开头的文件configuration标签下添加property标签

      <property name="LOG_HOME" value="D:/temp" />
      

      然后将logback开头的文件中${user.home}替换为${LOG_HOME}

    5. 启动nameserver和broker

      # .mqnamesrv.cmd
      # .mqbroker.cmd -n localhost:9876 -c ../conf/broker.properties
      
    6. 运行rocketmq管理监控界面rocketmq-console(可不运行,默认端口是8080)

      java -jar rocketmq-console-2.0.0.jar
      

    CentOS版本

    1. 解压压缩包rocketmq-all-4.7.1-bin-release.zip并复制到本地软件安装目录

    2. 环境变量配置,并执行source /etc/profile

      # rocketmq
      NAMESRV_ADDR=127.0.0.1:9876
      ROCKETMQ_HOME=/home/root-dir/server/rocketmq
      PATH=$ROCKETMQ_HOME:$PATH
      export ROCKETMQ_HOME NAMESRV_ADDR PATH
      
    3. 修改bin目录下的runbroker.sh和runserver.sh中的虚拟机内存大小为

      # runbroker.sh
      JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"
      
      # runserver.sh
      JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
      
    4. conf目录下logback开头的文件中修改${user.name}为本地日志目录地址(可不修改),也可以使用变量进行修改,在logback开头的文件里面的configuration标签下添加property标签

      <property name="LOG_HOME" value="/home/java" />
      

      然后将logback开头的文件中${user.home}替换为${LOG_HOME},vim替换命令:%s/${user.home}/${LOG_HOME}/g

    5. 启动服务

      启动nameServer

      > nohup sh mqnamesrv &
      > tail -f ~/logs/rocketmqlogs/namesrv.log
        The Name Server boot success...
      

      启动broker

      > nohup sh mqbroker -c ../conf/broker.properties &
      > tail -f ~/logs/rocketmqlogs/broker.log 
      The broker[%s, 172.30.30.233:10911] boot success...
      
    6. 关闭服务

      > sh mqshutdown broker
      The mqbroker(36695) is running...
      Send shutdown request to mqbroker(36695) OK
      
      > sh mqshutdown namesrv
      The mqnamesrv(36664) is running...
      Send shutdown request to mqnamesrv(36664) OK
      
    7. 异常解决

      创建topic报错:java.security.NoSuchAlgorithmException: Algorithm HmacSHA1 not available

      解决办法:

      在bin目录下的tools.sh倒数第二行的JAVA_OPT添加jdk的ext目录,修改后如下:

      JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib:${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext:/usr/java/jdk1.8.0_251-amd64/jre/lib/ext"
      

    附录

    1. broker.properties详解,更具体配置可参考MessageStoreConfig

      # nameServer地址,如果nameserver是多台集群的话,就用分号分割
      namesrvAddr=127.0.0.1:9876
      # 所属集群名字(同一主从下:Master和slave名称要一致)
      brokerClusterName=DefaultCluster
      # broker名字,注意此处不同的配置文件填写的不一样  例如:在a.properties 文件中写 broker-a  在b.properties 文件中写 broker-b
      brokerName=broker-a
      # broker局域网ip
      # brokerIP1=192.168.0.18
      # 存储根路径
      storePathRootDir=/home/root-dir/data/rocketmq/broker-a
      # commitLog存储路径,不会使用根路径,需要单独配置
      storePathCommitLog=/home/root-dir/data/rocketmq/broker-a/commitlog
      # 消费队列存储路径,使用根路径,配置根路径了可以不配置
      #storePathConsumeQueue=/home/root-dir/data/rocketmq/broker-a/consumequeue
      # 消息索引存储路径,使用根路径,配置根路径了可以不配置
      #storePathIndex=/home/root-dir/data/rocketmq/broker-a/index
      # checkpoint 文件存储路径,使用根路径,配置根路径了可以不配置
      #storeCheckpoint=/home/root-dir/data/rocketmq/broker-a/checkpoint
      # abort 文件存储路径,使用根路径,配置根路径了可以不配置
      #abortFile=/home/root-dir/data/rocketmq/broker-a/abort
      # 0 表示 Master,>0 表示 Slave
      brokerId=0
      # Broker 对外服务的监听端口
      listenPort=10911
      # 删除文件时间点,默认是凌晨4点
      deleteWhen=04
      # 文件保留时间,默认48小时
      fileReservedTime=48
      # 是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
      autoCreateTopicEnable=false
      # 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
      autoCreateSubscriptionGroup=true
      # 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数。由于是4个broker节点,所以设置为4
      #defaultTopicQueueNums=4
      # commitLog每个文件的大小默认1G
      mapedFileSizeCommitLog=1073741824
      # ConsumeQueue每个文件默认存30W条,根据业务情况调整
      mapedFileSizeConsumeQueue=300000
      #限制的消息大小
      maxMessageSize=65536
      # Commitlog每次刷盘最少页数,每页4kb
      flushCommitLogLeastPages=4
      # ConsumeQueue每次刷盘最少页数,每页4kb
      flushConsumeQueueLeastPages=4
      # 刷盘时间间隔(单位毫秒),此间隔时间优先级高于上面两个参数,即当时间间隔超过之后直接进行刷盘,不考虑页数问题
      flushCommitLogThoroughInterval=10000
      flushConsumeQueueThoroughInterval=60000
      # 强制删除文件时间间隔(单位毫秒)
      destroyMapedFileIntervalForcibly=120000
      # 定期检查Hanged文件间隔时间(单位毫秒)
      redeleteHangedFileInterval=120000
      # 检测可用的磁盘空间大小,当磁盘被占用超过90%,消息写入会直接报错
      diskMaxUsedSpaceRatio=90
      # Broker 的角色: 1) ASYNC_MASTER 异步复制Master (2) SYNC_MASTER 同步双写Master (3) SLAVE。 建议:线上采用 同步复制 + 异步刷盘;
      brokerRole=ASYNC_MASTER
      # 刷盘方式 ASYNC_FLUSH 异步刷盘; SYNC_FLUSH 同步刷盘 建议:线上采用 同步复制 + 异步刷盘;
      flushDiskType=SYNC_FLUSH
      # 事务消息
      checkTransactionMessageEnable=false
      # 发消息线程池数量
      sendMessageTreadPoolNums=128
      # 拉消息线程池数量
      pullMessageTreadPoolNums=128
      
      
      
  • 相关阅读:
    cmanformat
    mysql-sql语言参考
    jQuery 判断多个 input checkbox 中至少有一个勾选
    Java实现 蓝桥杯 算法提高 计算行列式
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
  • 原文地址:https://www.cnblogs.com/ucfjepl/p/13840004.html
Copyright © 2011-2022 走看看