zoukankan      html  css  js  c++  java
  • RocketMQ安装与部署说明


    一、安装说明
    1.下载安装包,下载地址:https://github.com/alibaba/RocketMQ/releases/download/v3.1.7/alibaba-rocketmq-3.1.7.tar.gz。
    2.解压安装包到指定的目录。
    3.参考资料:
    ROCKETMQ管理类命令总结:http://alibaba.github.io/RocketMQ-docs/document/openuser/RocketMQ_admin.pdf

    二、部署说明
    (一)nameserver
    1.参数配置
    (1)默认启动端口:9876,无其他配置

    2.启动和关闭
    (1)启动nameserver:nohup mqnamesrv &
    (2)在生产环境部署,请参考以下软硬件要求:https://github.com/alibaba/RocketMQ/wiki/system_requirements

    (二)brokerserver
    1.参数配置
    (1)获取broker默认配置:sh mqbroker -m
    (2)启动时如何加载配置:
    a.生成broker默认配置模版:sh mqbroker -m > broker.p
    b.修改配置文件broker.p
    c.加载修改过的配置文件:nohup sh mqbroker -c broker.p
    (3)配置文件选项说明
    listenPort broker对外服务的监听端口(默认值:10911,不建议修改)
    namesrvAddr NameServer地址
    brokerIp1 本机IP地址,默认系统自动识别,但是某些多网卡机器会存在识别错误的情况,这种情况下可人工设置
    brokerName 本机主机名
    brokerClusterName Broker所属哪个集群(默认值:DefaultCluster)
    brokerid BrokerId,必须是大于等于0的整数,0表示Master,>0表示Slave,一个Master可以挂多个Slave,Master与Slave通过BrokerName来配对
    autoCreateTopicEnable 是否允许broker自动创建Topic,建议线下开启,线上关闭(默认值:TRUE)
    autoCreateSubscriptionGroup 是否允许Broker自动创建订阅组,建议线下开启,线上关闭(默认值:TRUE)
    rejectTransactionMessage 是否拒绝事务消息接入(默认值:FALSE)
    fetchNamesrvAddrByAddressServer 是否从WEB服务器获取Name Server地址,针对大规模的Broker集群建议使用这种方法(默认值:FALSE)
    storePathCommitLog commitLog存储路径(默认值:$HOME/store/commitlog)
    storePathConsumeQueue 消费队列存储路径(默认值:$HOME/store/consumequeue)
    storePahtIndex 消息索引存储路径(默认值:$HOME/store/index)
    storeCheckpoint checkpoint文件存储路径(默认值:$HOME/store/checkpoint)
    abortFile abort文件存储路径(默认值:$HOME/store/abort)
    deleteWhen 删除文件时间点,默认凌晨4点(默认值:4)
    fileReservedTime 文件保留时间,默认48小时(默认值:48)
    maxTransferBytesOnMessageInMemory 单次Pull消息(内存)传输的最大字节数(默认值:262114)
    maxTransferCountOnMessageInMemory 单次Pull消息(内存)传输的最大条数(默认值:32)
    maxTransferBytesOnMessageInDisk 单次Pull消息(磁盘)传输的最大字节数(默认值:65536)
    maxTransferCountOnMessageInDisk 单次Pull消息(磁盘)传输的最大条数(默认值:8)
    messageIndexEnable 是否开启消息索引功能(默认值:TRUE)
    messageIndexSafe 是否提供安全的消息索引机制,索引保证不丢(默认值:FALSE)
    haMasterAddress 在Slave上直接设置Master地址,默认从Name Server上自动获取,也可以手工强制配置
    brokerRole Broker的角色,ASYNC_MASTER异步复制Master、SYNC_MASTER同步双写Master、SLAVE(默认值:ASYNC_MASTER)
    flushDiskType 刷盘方式,ASYNC_FLUSH异步刷盘、SYNC——FLUSH同步刷盘(默认值:ASYNC_FLUSH)
    cleanFileForciblyEnable 磁盘满、且无过期文件情况下TRUE表示强制删除文件,优先保证服务可用,FALSE标记服务不可用,文件不删除(默认值:TRUE)

    2.启动和关闭
    (1)启动:方式1:mqbroker -n "192.168.0.1:9876;192.168.0.2:9876"(IP、Port指的是nameserver的IP和port)
    方式2:启动前设置环境变量export NAMESRV_ADDR=127.0.0.1:9876,启动Broker:nohup sh mqbroker &
    (2)重启:sh mqadmin wipeWritePerm -b brokerName -n namesrvAddr
    Broker重启可能会导致正在发往这台机器的消息发送失败,RocketMQ提供了一种优雅关闭Broker的方法,通过执行以上命令会清除Broker的写权限,过40s后,所有客户端都会更新Broker路由信息,此时再关闭Broker就不会发生发送消息失败的情况,因为所有消息都发往了其他Broker。

    (三)broker集群部署
    1.单个master(单主)
    启动nameserver和Broker,不需要做任何配置
    2.多master模式(无Slave,全是master)
    a.启动Name Server:nohup sh mqnamesrv &
    b.在机器A上启动第一个Master:nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-a.properties &
    c.在机器B上启动第二个Master:nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-b.properties &
    3.多Master多Slave模式,异步复制
    a.启动Name Server:nohup sh mqnamesrv &
    b.在机器A上启动第一个Master:nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a.properties &
    c.在机器B上启动第二个Master:nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b.properties &
    d.在机器C上启动第一个Slave:nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a-s.properties &
    e.在机器D上启动第二个Slave:nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b-s.properties &
    4.多Master多Slave模式,同步双写
    a.启动Name Server:nohup sh mqnamesrv &
    b.在机器A上启动第一个Master:nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties &
    c.在机器B上启动第二个Master:nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties &
    d.在机器C上启动第一个Slave:nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties &
    e.在机器D上启动第二个Slave:nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b-s.properties &
    注:以上Broker与Slave配对是通过指定相同的BrokerName参数来配对,Master的BrokerId必须是0,Slave的BrokerId必须是大于0的数。另外一个Master下面可以挂载多个Slave,同一Master下的多个Slave通过指定不同的brokerId来区分。
    $ROCKETmQ_HOST指的是rocketmq安装目录,需要手动设置此环境变量。

  • 相关阅读:
    2018/12/21 HDU-2077 汉诺塔IV(递归)
    2018-12-08 acm日常 HDU
    2018/12/12 acm日常 第二周 第六题
    git 添加远程分支,并可以code review.
    zookeeper数据迁移方法
    gem install nokogiri -v '1.6.6.2' 出错
    gem install json -v '1.8.2' error
    gem install bundle 安装失败
    全能型开源远程终端:MobaXterm
    如何写好 Git Commit 信息
  • 原文地址:https://www.cnblogs.com/spplus/p/4785665.html
Copyright © 2011-2022 走看看