zoukankan      html  css  js  c++  java
  • RocketMQ多master多salve集群搭建

    一、RocketMQ集群模式简介

    单Master方式

    风险比较大, 一旦Broker重启或者宕机, 将导致整个环境不可用, 不建议线上使用.

    多Master模式

    一个集群中没有slave, 全是master, 例如2个master或者3个master. 
    优点:配置简单, 性能最好,单个Master宕机或重启对应用无影响, 磁盘配置为RAID10时, 即使机器宕机不可恢复, 由于RAID10磁盘非常可靠, 消息也不会丢(异步刷盘丢失少量信息, 同步刷盘一条不丢) 
    缺点 : 单台机器宕机期间, 这个机器上未被消费消息在机器恢复之前不可订阅, 消息实时性受到影响 .

    多Master多Slave模式, 异步复制

    每个 Master 配置一个 Slave,有多对Master-Slave,采用异步复制方式,主备有短暂消息延迟,毫秒级。 
    优点:即使磁盘损坏,消息丢失的非常少,且消息实时性不会受影响,因为Master 宕机后,消费者仍然可以从 Slave消费,此过程对应用透明。不需要人工干预。性能同Master 模式几乎一样。 
    缺点:Master 宕机,磁盘损坏情况,会丢失少量消息。

    多Master多Slave模式, 同步双写

    每个 Master 配置一个 Slave,有多对Master-Slave,采用同步双写方式,主备都写成功,向应用返回成功。 
    优点:数据与服务都无单点,Master宕机情况下,消息无延迟,服务可用性与数据可用性都非常高 
    缺点:性能比异步复制模式略低,大约低 10%左右,发送单个消息的 RT会略高。目前主宕机后,备机不能自动切换为主机,后续会支持自动切换功能。

    二、环境准备

    1.集群角色及对应IP、主机环境

    2.相关软件版本

    3.部署前环境准备:

    1.关闭防火墙,关闭selinux(生产环境按需关闭或打开)
    2.同步服务器时间,选择公网ntpd服务器或者自建ntpd服务器
      [root@es1 ~]# crontab -l #为了方便直接使用公网服务器
      #update time
      */5 * * * *  /usr/bin/rdate -s time-b.nist.gov &>/dev/null
    3.安装配置Java环境
      可参考此文章Java环境安装部分https://www.cnblogs.com/panwenbin-logs/p/8138787.html
    4.配置hosts(所有服务器)
      172.16.150.131 rocketmq_master_01
      172.16.150.132 rocketmq_master_02
      172.16.150.133 rocketmq_master_03
      172.16.150.134 rocketmq_slave_01
      172.16.150.135 rocketmq_slave_02
      172.16.150.136 rocketmq_slave_03

    三、RocketMQ集群部署

    1.解压RocketMQ到工作目录,并创建数据及日志目录(如果没有特别指定,以下操作均为在集群中所有机器上执行)

    [root@rocketmq_master_01 ~]# tar xf alibaba-rocketmq-3.2.2.tar.gz -C /opt  #解压至/opt目录
    [root@rocketmq_master_01 ~]# cd /opt && ln -sv alibaba-rocketmq-3.2.2  alibaba-rocketmq
    [root@rocketmq_master_01 ~]# mkdir -p /var/alibaba-rocketmq/{commitlog,consumequeue,index,logs,namesrv}  #数据及日志目录
    [root@rocketmq_master_01 ~]# tree /var/alibaba-rocketmq/
    [root@rocketmq_master_01 ~]# ll /opt/

    2.目录解析(根据部署的架构进入对应的目录)

    [root@rocketmq_master_01 ~]# cd /opt/alibaba-rocketmq/conf/
    [root@rocketmq-master1 conf]# ll
    总用量 36
    drwxr-xr-x 2 root root   118 2019-03-28 17:08 2m-2s-async    #多主多从异步刷新参考配置文件
    drwxr-xr-x 2 root root   118 2019-03-28 17:08 2m-2s-sync   #多主多从同步刷新参考配置文件
    drwxr-xr-x 2 root root   118 2019-06-04 10:10 2m-noslave   #多master参考配置文件
    ....
    [root@rocketmq_master_01 conf]# mkdir 3m-3s-sync             #由于我们的架构为3主3从,所以新建一个目录
    [root@rocketmq_master_01 conf]# cd 3m-3s-sync/

    3.创建配置文件

    创建、编辑集群broker配置文件

    #所属集群名字
    brokerClusterName=qgg_rocketmq-cluster
    
    #broker名字,注意此处不同的配置文件填写的不一样,a.properties,就写broker-a,b的就填写b
    brokerName=broker-a
    
    #0 表示 Master,>0 表示 Slave
    brokerId=0
    
    #nameServer地址,分号分割
    namesrvAddr=rocketmq_master_01:9876;rocketmq_master_02:9876;rocketmq_master_03: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
    
    #检测物理文件磁盘空间
    diskMaxUsedSpaceRatio=88
    
    #存储路径
    storePathRootDir=/var/alibaba-rocketmq/
    #commitLog 存储路径
    storePathCommitLog=/var/alibaba-rocketmq/commitlog
    #消费队列存储路径存储路径
    storePathConsumeQueue=/var/alibaba-rocketmq/consumequeue
    #消息索引存储路径
    storePathIndex=/var/alibaba-rocketmq/index
    #checkpoint 文件存储路径
    storeCheckpoint=/var/alibaba-rocketmq/checkpoint
    #abort 文件存储路径
    abortFile=/var/alibaba-rocketmq/abort
    #限制的消息大小
    #maxMessageSize=65536
    
    #刷CommitLog,至少刷几个PAGE
    #flushCommitLogLeastPages=4
    
    #刷ConsumeQueue,至少刷几个PAGE
    #flushConsumeQueueLeastPages=2
    
    #刷CommitLog,彻底刷盘间隔时间
    #flushCommitLogThoroughInterval=10000
    
    #刷ConsumeQueue,彻底刷盘间隔时间
    #flushConsumeQueueThoroughInterval=60000 
    
    #Broker 的角色
    #- ASYNC_MASTER 异步复制Master
    #- SYNC_MASTER 同步双写Master
    #- SLAVE
    brokerRole=SYNC_MASTER
    
    #刷盘方式
    #- ASYNC_FLUSH 异步刷盘
    #- SYNC_FLUSH 同步刷盘
    flushDiskType=SYNC_FLUSH
    
    #检查事务消息,开源版本4.3之前没有事务功能
    checkTransactionMessageEnable=false
    #发消息线程池数量
    #sendMessageThreadPoolNums=128
    
    #拉消息线程池数量
    #pullMessageThreadPoolNums=128
    
    #绑定IP地址,如果有多个网卡接口需要配置,否则报错
    brokerIP1=172.16.150.131
    
    #Netty服务工作线程数量
    serverWorkerThreads = 8
    
    #Netty服务异步回调线程池线程数量
    serverCallbackExecutorThreads = 2
    
    #Netty Selector线程数量
    serverSelectorThreads = 3
    
    #控制单向的信号量 一次请求没有响应
    serverOnewaySemaphoreValue = 256
    
    #控制异步信号量
    serverAsyncSemaphoreValue = 64
    
    #服务空闲心跳检测时间间隔 单位秒
    serverChannelMaxIdleTimeSeconds = 120
    
    #Netty发送缓冲区大小
    serverSocketSndBufSize = 65535
    
    #Netty接受缓冲区大小
    serverSocketRcvBufSize = 65535
    
    #是否使用Netty内存池
    serverPooledByteBufAllocatorEnable = true
    broker-a.properties
    #所属集群名字
    brokerClusterName=qgg_rocketmq-cluster
    #broker名字,注意此处不同的配置文件填写的不一样,a.properties,就写broker-a,b的就填写b
    brokerName=broker-b
    #0 表示 Master,>0 表示 Slave
    brokerId=0
    #nameServer地址,分号分割
    namesrvAddr=rocketmq_master_01:9876;rocketmq_master_02:9876;rocketmq_master_03: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=/var/alibaba-rocketmq/
    #commitLog 存储路径
    storePathCommitLog=/var/alibaba-rocketmq/commitlog
    #消费队列存储路径存储路径
    storePathConsumeQueue=/var/alibaba-rocketmq/consumequeue
    #消息索引存储路径
    storePathIndex=/var/alibaba-rocketmq/index
    #checkpoint 文件存储路径
    storeCheckpoint=/var/alibaba-rocketmq/checkpoint
    #abort 文件存储路径
    abortFile=/var/alibaba-rocketmq/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=SYNC_FLUSH
    #checkTransactionMessageEnable=false
    #发消息线程池数量
    #sendMessageThreadPoolNums=128
    #拉消息线程池数量
    #pullMessageThreadPoolNums=128
    #绑定IP地址,如果有多个网卡接口需要配置,否则报错
    brokerIP1=172.16.150.132
    
    #Netty服务工作线程数量
    serverWorkerThreads = 8
    
    #Netty服务异步回调线程池线程数量
    serverCallbackExecutorThreads = 2
    
    #Netty Selector线程数量
    serverSelectorThreads = 3
    
    #控制单向的信号量 一次请求没有响应
    serverOnewaySemaphoreValue = 256
    
    #控制异步信号量
    serverAsyncSemaphoreValue = 64
    
    #服务空闲心跳检测时间间隔 单位秒
    serverChannelMaxIdleTimeSeconds = 120
    
    #Netty发送缓冲区大小
    serverSocketSndBufSize = 65535
    
    #Netty接受缓冲区大小
    serverSocketRcvBufSize = 65535
    
    #是否使用Netty内存池
    serverPooledByteBufAllocatorEnable = true
    broker-b.properties
    #所属集群名字
    brokerClusterName=qgg_rocketmq-cluster
    #broker名字,注意此处不同的配置文件填写的不一样,a.properties,就写broker-a,b的就填写b
    brokerName=broker-c
    #0 表示 Master,>0 表示 Slave
    brokerId=0
    #nameServer地址,分号分割
    namesrvAddr=rocketmq_master_01:9876;rocketmq_master_02:9876;rocketmq_master_03: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=/var/alibaba-rocketmq/
    #commitLog 存储路径
    storePathCommitLog=/var/alibaba-rocketmq/commitlog
    #消费队列存储路径存储路径
    storePathConsumeQueue=/var/alibaba-rocketmq/consumequeue
    #消息索引存储路径
    storePathIndex=/var/alibaba-rocketmq/index
    #checkpoint 文件存储路径
    storeCheckpoint=/var/alibaba-rocketmq/checkpoint
    #abort 文件存储路径
    abortFile=/var/alibaba-rocketmq/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=SYNC_FLUSH
    #checkTransactionMessageEnable=false
    #发消息线程池数量
    #sendMessageThreadPoolNums=128
    #拉消息线程池数量
    #pullMessageThreadPoolNums=128
    brokerIP1=172.16.150.133
    broker-c.properties
    #所属集群名字
    brokerClusterName=qgg_rocketmq-cluster
    #broker名字,注意此处不同的配置文件填写的不一样,a.properties,就写broker-a,b的就填写b
    brokerName=broker-a
    #0 表示 Master,>0 表示 Slave
    brokerId=1
    #nameServer地址,分号分割
    namesrvAddr=rocketmq_master_01:9876;rocketmq_master_02:9876;rocketmq_master_03: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=/var/alibaba-rocketmq/
    #commitLog 存储路径
    storePathCommitLog=/var/alibaba-rocketmq/commitlog
    #消费队列存储路径存储路径
    storePathConsumeQueue=/var/alibaba-rocketmq/consumequeue
    #消息索引存储路径
    storePathIndex=/var/alibaba-rocketmq/index
    #checkpoint 文件存储路径
    storeCheckpoint=/var/alibaba-rocketmq/checkpoint
    #abort 文件存储路径
    abortFile=/var/alibaba-rocketmq/abort
    #限制的消息大小
    #maxMessageSize=65536
    #flushCommitLogLeastPages=4
    #flushConsumeQueueLeastPages=2
    #flushCommitLogThoroughInterval=10000
    #flushConsumeQueueThoroughInterval=60000 
    #Broker 的角色
    #- ASYNC_MASTER 异步复制Master
    #- SYNC_MASTER 同步双写Master
    #- SLAVE
    brokerRole=SLAVE
    #刷盘方式
    #- ASYNC_FLUSH 异步刷盘
    #- SYNC_FLUSH 同步刷盘
    flushDiskType=SYNC_FLUSH
    #checkTransactionMessageEnable=false
    #发消息线程池数量
    #sendMessageThreadPoolNums=128
    #拉消息线程池数量
    #pullMessageThreadPoolNums=128
    brokerIP1=172.16.150.134
    broker-a-s.properties
    #所属集群名字
    brokerClusterName=qgg_rocketmq-cluster
    #broker名字,注意此处不同的配置文件填写的不一样,a.properties,就写broker-a,b的就填写b
    brokerName=broker-b
    #0 表示 Master,>0 表示 Slave
    brokerId=1
    #nameServer地址,分号分割
    namesrvAddr=rocketmq_master_01:9876;rocketmq_master_02:9876;rocketmq_master_03: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=/var/alibaba-rocketmq/
    #commitLog 存储路径
    storePathCommitLog=/var/alibaba-rocketmq/commitlog
    #消费队列存储路径存储路径
    storePathConsumeQueue=/var/alibaba-rocketmq/consumequeue
    #消息索引存储路径
    storePathIndex=/var/alibaba-rocketmq/index
    #checkpoint 文件存储路径
    storeCheckpoint=/var/alibaba-rocketmq/checkpoint
    #abort 文件存储路径
    abortFile=/var/alibaba-rocketmq/abort
    #限制的消息大小
    #maxMessageSize=65536
    #flushCommitLogLeastPages=4
    #flushConsumeQueueLeastPages=2
    #flushCommitLogThoroughInterval=10000
    #flushConsumeQueueThoroughInterval=60000 
    #Broker 的角色
    #- ASYNC_MASTER 异步复制Master
    #- SYNC_MASTER 同步双写Master
    #- SLAVE
    brokerRole=SLAVE
    #刷盘方式
    #- ASYNC_FLUSH 异步刷盘
    #- SYNC_FLUSH 同步刷盘
    flushDiskType=SYNC_FLUSH
    #checkTransactionMessageEnable=false
    #发消息线程池数量
    #sendMessageThreadPoolNums=128
    #拉消息线程池数量
    #pullMessageThreadPoolNums=128
    brokerIP1=172.16.150.135
    broker-b-s.properties
    #所属集群名字
    brokerClusterName=qgg_rocketmq-cluster
    #broker名字,注意此处不同的配置文件填写的不一样,a.properties,就写broker-a,b的就填写b
    brokerName=broker-c
    #0 表示 Master,>0 表示 Slave
    brokerId=1
    #nameServer地址,分号分割
    namesrvAddr=rocketmq_master_01:9876;rocketmq_master_02:9876;rocketmq_master_03: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=/var/alibaba-rocketmq/
    #commitLog 存储路径
    storePathCommitLog=/var/alibaba-rocketmq/commitlog
    #消费队列存储路径存储路径
    storePathConsumeQueue=/var/alibaba-rocketmq/consumequeue
    #消息索引存储路径
    storePathIndex=/var/alibaba-rocketmq/index
    #checkpoint 文件存储路径
    storeCheckpoint=/var/alibaba-rocketmq/checkpoint
    #abort 文件存储路径
    abortFile=/var/alibaba-rocketmq/abort
    #限制的消息大小
    #maxMessageSize=65536
    #flushCommitLogLeastPages=4
    #flushConsumeQueueLeastPages=2
    #flushCommitLogThoroughInterval=10000
    #flushConsumeQueueThoroughInterval=60000 
    #Broker 的角色
    #- ASYNC_MASTER 异步复制Master
    #- SYNC_MASTER 同步双写Master
    #- SLAVE
    brokerRole=SLAVE
    #刷盘方式
    #- ASYNC_FLUSH 异步刷盘
    #- SYNC_FLUSH 同步刷盘
    flushDiskType=SYNC_FLUSH
    #checkTransactionMessageEnable=false
    #发消息线程池数量
    #sendMessageThreadPoolNums=128
    #拉消息线程池数量
    #pullMessageThreadPoolNums=128
    brokerIP1=172.16.150.136
    broker-c-s.properties

    以上配置文件需要设置不同值的选项为:

    brokerId      #0 表示 Master,>0 表示 Slave
    brokerRole    #Broker 的角色
                       #- ASYNC_MASTER 异步复制Master
                       #- SYNC_MASTER 同步双写Master
                       #- SLAVE
    brokerIP1     #本机提供服务的IP地址   

    补充一个配置:
    slaveReadEnable=true #建议开启,默认关闭

    创建、编辑集群nameserver配置文件

    [root@rocketmq_master_01 conf]# cat namesrv.properties 
    listenPort = 9876
    serverWorkerThreads = 8
    serverCallbackExecutorThreads = 2
    serverSelectorThreads = 3
    serverOnewaySemaphoreValue = 256
    serverAsyncSemaphoreValue = 64
    serverChannelMaxIdleTimeSeconds = 120
    serverSocketSndBufSize = 65535
    serverSocketRcvBufSize = 65535
    serverPooledByteBufAllocatorEnable = true
    kvConfigPath=/var/alibaba-rocketmq/namesrv/

    4.修改log及数据路径

    [root@rocketmq_master_01 3m-3s-sync]# cd /opt/alibaba-rocketmq/conf/
    [root@rocketmq_master_01 conf]# sed -i 's#${user.home}#/var/alibaba-rocketmq#g' *.xml    #默认路径为用户家目录下

    5.修改服务启动脚本参数 

    [root@rocketmq_master_01 conf]# cd ../bin/
    [root@rocketmq_master_01 bin]# pwd
    /opt/alibaba-rocketmq/bin
    [root@rocketmq_master_01]# vim runbroker.sh   #broker的启动脚本

    [root@rocketmq_master_01 bin]# vim runserver.sh  #nameserver启动脚本

    6.先依次启动nameserver服务(必须)

    [root@rocketmq_master_01 bin]# cd /opt/alibaba-rocketmq/bin
    [root@rocketmq_master_01 bin]# nohup sh mqnamesrv &   #启动服务
    [root@rocketmq_master_01 bin]# tailf /var/alibaba-rocketmq/logs/rocketmqlogs/namesrv.log #查看打印日志是否异常

    7.启动broker服务

    [root@rocketmq_master_01 bin]#nohup sh mqbroker -c /opt/alibaba-rocketmq/conf/3m-3s-sync/broker-a.properties &  #注意,每台服务启动时指定的配置文件也要同时改变
    [root@rocketmq_master_01 bin]# tailf /var/alibaba-rocketmq/logs/rocketmqlogs/broker.log

    四、部署rockmq-console

    由于当前rocketmq版本较低,使用最新的rocketmq-console会有部分信息丢失的情况,只能使用较低版本的,这里使用的版本为rocketmq-console-3.2.6,依赖Tomcat容器,具体操作步骤为,:

    1.unzip解压war包 -d指定到某个目录,
    2.进入解压目录下WEB-INF/classes/目录中
    3.修改config.properties配置文件,添加name server地址,格式IP(域名):port  如果有多个,已;为分割
    4.将目录移动到Tomcat docBase目录下,并启动

    资源链接地址:

    链接:https://pan.baidu.com/s/10NeEeBH8eugdYcDn6e02aQ  提取码:aq1t 

    界面展示:

    通过console可以看到,当前共有三个broker,每个broker有两台服务器

    注意事项:

    1.配置文件名称和服务器对应,a:master1 b:master2 ..
    2.注意不同主机配置文件名称不同,brokerNam也不同
    3.每台briker服务启动时,注意要指定正确的配置文件
    4.建议生产每个服务使用screen命令启动,不要使用nohup

    参考文档:

    https://github.com/apache/rocketmq-externals/tree/release-rocketmq-console-1.0.0/rocketmq-console

    https://github.com/apache/rocketmq-externals/blob/master/rocketmq-console/doc/1_0_0/UserGuide_CN.md

    http://rocketmq.apache.org/docs/quick-start/

    https://juejin.im/post/5a911ea16fb9a0633f0e36a1

    https://blog.csdn.net/sybnfkn040601/article/details/64920062

  • 相关阅读:
    SystemTap
    在qemu上运行BusyBox
    Initramfs 原理和实践
    在qemu环境中用gdb调试Linux内核
    [转载] 你所不知道的TIME_WAIT和CLOSE_WAIT
    Linux VXLAN
    :not伪类选择器一些错误的写法
    c# 微软小冰-虚拟女友聊天
    Django使用表单操作数据库
    Django内置过滤器详解附代码附效果图--附全部内置过滤器帮助文档
  • 原文地址:https://www.cnblogs.com/panwenbin-logs/p/11263442.html
Copyright © 2011-2022 走看看