zoukankan      html  css  js  c++  java
  • RocketMQ 2主2从 集群搭建

    安装环境

       jdk1.7 

      alibaba-rocketmq-3.2.6.tar.gz

      VM虚拟机redhat6.5-x64:192.168.1.201  192.168.1.202 192.168.1.203  192.168.1.204

      Xshell4

    部署方案

    IP

    主机名

    用途

    Broker角色

    192.168.1.201

    broker-a

    NameServer,Broker

    Master

    192.168.1.202

    broker-b

    NameServer, Broker

    Master

    192.168.1.203

    broker-a-s

    NameServer, Broker

    Slave

    192.168.1.204

    broker-b-s

    NameServer, Broker

    Slave

    安装步骤:【两台机器同样操作  以201为例】

    步骤一:解压安装文件alibaba-rocketmq-3.2.6.tar.gz

    [root@201 rocketmq]# tar -zxvf alibaba-rocketmq-3.2.6.tar.gz -C /usr/local
    [root@201 rocketmq]# mv alibaba-rocketmq rocketmq

    步骤二:修改配置

      配置一:创建存储路径 用于存储队列 索引 提交日志等信息

    [root@201 rocketmq]# mkdir -p /usr/local/rocketmq/store
    [root@201 rocketmq]# mkdir -p /usr/local/rocketmq/store/commitlog
    [root@201 rocketmq]# mkdir -p /usr/local/rocketmq/store/consumequeue
    [root@201 rocketmq]# mkdir -p /usr/local/rocketmq/store/index

    配置二:Hosts添加信息

    192.168.1.201 rocketmq-nameserver1
    192.168.1.202 rocketmq-nameserver2
    192.168.1.203 rocketmq-nameserver3
    192.168.1.204 rocketmq-nameserver4
    192.168.1.201 rocketmq-master1
    192.168.1.202 rocketmq-master2
    192.168.1.203 rocketmq-slave1
    192.168.1.204 rocketmq-slave2

    重启网卡:service network restart

    相互ping一下,在201机器上ping 192.168.1.202   ping  rocketmq-nameserver2   ping  rocketmq-master2 。 202 203 204机器上也一样。

    配置三:RocketMQ配置文件:

    同步双写,配置目录:2m-2s-async

    异步刷盘,配置目录:2m-2s-sync

    #201
    vim /usr/local/rocketmq/conf/2m-2s-sync/broker-a.properties
    #202
    vim /usr/local/rocketmq/conf/2m-2s-sync/broker-b.properties
    #203
    vim /usr/local/rocketmq/conf/2m-2s-sync/broker-a-s.properties
    #204
    vim /usr/local/rocketmq/conf/2m-2s-sync/broker-b-s.properties
    #所属集群名字
    brokerClusterName=rocketmq-cluster
    #broker名字  broker-a.properties填broker-a  broker-b.properties填broker-b
    brokerName=broker-a
    #0 表示 Master,>0 表示 Slave
    brokerId=0
    #nameServer地址,分号分割
    namesrvAddr=rocketmq-nameserver1:9876 rocketmq-nameserver2:9876 rocketmq-nameserver3:9876 rocketmq-nameserver4: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/rocketmq/store
    #commitLog 存储路径
    storePathCommitLog=/usr/local/rocketmq/store/commitlog
    #消费队列存储路径存储路径
    storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
    #消息索引存储路径
    storePathIndex=/usr/local/rocketmq/store/index
    #checkpoint 文件存储路径
    storeCheckpoint=/usr/local/rocketmq/store/checkpoint
    #abort 文件存储路径
    abortFile=/usr/local/rocketmq/store/abort
    #限制的消息大小
    maxMessageSize=65536
    #flushCommitLogLeastPages=4
    #flushConsumeQueueLeastPages=2
    #flushCommitLogThoroughInterval=10000
    #flushConsumeQueueThoroughInterval=60000
    #Broker 的角色
    #- ASYNC_MASTER  异步复制Master
    #- SYNC_MASTER  同步双写Master
    #- SLAVE
    brokerRole=SYNC_MASTER
    #刷盘方式
    #- ASYNC_FLUSH  异步刷盘
    #- SYNC_FLUSH  同步刷盘
    flushDiskType=ASYNC_FLUSH
    #checkTransactionMessageEnable=false
    #发消息线程池数量
    #sendMessageThreadPoolNums=128
    #拉消息线程池数量
    #pullMessageThreadPoolNums=128
    注意:
    brokerName:
    201 broker-a
    202 broker-b
    203 broker-a-s
    204 broker-b-s
    brokerId
    201 202 是master 配置brokerId=0
    203 204 是slave  配置brokerId=1

    brokerRole
    201 202是master 配置 brokerRole=SYNC_MASTER
    203 204是slave配置 brokerRole=SLAVE
    配置四:修改日志配置文件
    [root@201 conf]# mkdir -p /usr/local/rocketmq/logs
    [root@201 conf]# cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml

    配置五:修改启动脚本参数 Xms和Xmx至少是1G  否则启动不起来  Xmn一般是前者的一半

    vim /usr/local/rocketmq/bin/runbroker.sh
    JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"
    
    vim /usr/local/rocketmq/bin/runserver.sh
    JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"

    步骤三:启动:先启动两台机器的NameServer,再启动两台机器的Borker,关机的时候顺序相反,先关闭两台机器的Broker,再关闭两台机器的Nameserver。在启动 BrokerServer 之前先关闭防火墙.

    启动一:NameServer  201 202 203 204
    cd /usr/local/rocketmq/bin
    nohup sh mqnamesrv &
    #查看进程
    jps
    #查看日志
    tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
    
    #启动二:BrokerServer A 192.168.1.201 
    cd /usr/local/rocketmq/bin 
    nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 & 
    netstat -ntlp 
    jps 
    tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log 
    tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log 
    
    #启动三:BrokerServer B 192.168.1.202 
    cd /usr/local/rocketmq/bin 
    nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 & 
    netstat -ntlp 
    jps 
    tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log 
    tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
    
    #启动四:BrokerServer B 192.168.1.203 
    cd /usr/local/rocketmq/bin 
    nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a-s.properties >/dev/null 2>&1 & 
    netstat -ntlp 
    jps 
    tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log 
    tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
    
    #启动五:BrokerServer B 192.168.1.204 
    cd /usr/local/rocketmq/bin 
    nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b-s.properties >/dev/null 2>&1 & 
    netstat -ntlp 
    jps 
    tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log 
    tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
    
    
    
  • 相关阅读:
    python(5)python安装for Mac
    jmeter(16)安装jmeter插件jar包 pluginsmanager.jar
    jmeter(17)参数化之csv随机参数化【Random CSV Data Set Config】
    jmeter(14)参数化之csv文件设置
    jmeter(11)jdbc请求及请求后的响应结果如何提取
    pku2192(并查集+枚举)
    stl中的next_permutation算法
    pku1204 Word Puzzles
    hdu1075 What Are You Talking About
    pku1733 Parity game(离散化+并查集拓展应用)
  • 原文地址:https://www.cnblogs.com/cac2020/p/9480430.html
Copyright © 2011-2022 走看看