• 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
      
      
      
  • 相关阅读:
    开源项目:MMTweenAnimation
    URI跳转方式地图导航的代码实践
    处理i18n国际电话区号的代码实践
    图片变形的抗锯齿处理方法
    CocoaPods版本升级
    JSPatch 部署安全策略
    JSPatch实现原理详解<二>
    JSPatch实现原理详解
    JSPatch – 动态更新iOS APP
    iOS富文本组件的实现—DTCoreText源码解析 渲染篇
  • 原文地址:https://www.cnblogs.com/ucfjepl/p/13840004.html
Copyright © 2020-2023  润新知