zoukankan      html  css  js  c++  java
  • 5分钟搭建rocketmq 4.8集群

    5分钟搭建rocketmq 4.8集群


    前言

    该文档主要介绍如何部署自动容灾切换的 RocketMQ-on-DLedger Group。

    RocketMQ-on-DLedger Group 是指一组相同名称的 Broker,至少需要 3 个节点,通过 Raft 自动选举出一个 Leader,其余节点 作为 Follower,并在 Leader 和 Follower 之间复制数据以保证高可用。
    RocketMQ-on-DLedger Group 能自动容灾切换,并保证数据一致。
    RocketMQ-on-DLedger Group 是可以水平扩展的,也即可以部署任意多个 RocketMQ-on-DLedger Group 同时对外提供服务。

    具体原理看这:

    https://blog.csdn.net/trntaken/article/details/105694384

    1. 新集群部署

    1.1 编写配置

    每个 RocketMQ-on-DLedger Group 至少准备三台机器(本文假设为 3)。

    ip 主机名 操作系统
    10.16.100.60 mq1 CentOS 7
    10.16.100.62 mq2 CentOS 7
    10.16.100.63 mq3 CentOS 7

    编写 3 个配置文件,建议参考 conf/dledger 目录下的配置文件样例。
    关键配置介绍:

    name 含义 举例
    enableDLegerCommitLog 是否启动 DLedger true
    dLegerGroup DLedger Raft Group的名字,建议和 brokerName 保持一致 RaftNode00
    dLegerPeers DLedger Group 内各节点的端口信息,同一个 Group 内的各个节点配置必须要保证一致 n0-127.0.0.1:40911;n1-127.0.0.1:40912;n2-127.0.0.1:40913
    dLegerSelfId 节点 id, 必须属于 dLegerPeers 中的一个;同 Group 内各个节点要唯一 n0
    sendMessageThreadPoolNums 发送线程个数,建议配置成 Cpu 核数 16

    mq1的配置 conf/dledger/broker-n0.conf

    brokerClusterName = RaftCluster
    brokerName=RaftNode00
    listenPort=30911
    namesrvAddr=10.16.100.60:9876;10.16.100.62:9876;10.16.100.63:9876
    storePathRootDir=/tmp/rmqstore/node00
    storePathCommitLog=/tmp/rmqstore/node00/commitlog
    enableDLegerCommitLog=true
    dLegerGroup=RaftNode00
    dLegerPeers=n0-10.16.100.60:40911;n1-10.16.100.62:40912;n2-10.16.100.63:40913
    ## must be unique
    dLegerSelfId=n0
    sendMessageThreadPoolNums=4
    brokerIP1=10.16.100.60
    

    mq2的配置 conf/dledger/broker-n1.conf

    brokerClusterName = RaftCluster
    brokerName=RaftNode00
    listenPort=30921
    namesrvAddr=10.16.100.60:9876;10.16.100.62:9876;10.16.100.63:9876
    storePathRootDir=/tmp/rmqstore/node01
    storePathCommitLog=/tmp/rmqstore/node01/commitlog
    enableDLegerCommitLog=true
    dLegerGroup=RaftNode00
    dLegerPeers=n0-10.16.100.60:40911;n1-10.16.100.62:40912;n2-10.16.100.63:40913
    ## must be unique
    dLegerSelfId=n1
    sendMessageThreadPoolNums=4
    brokerIP2=10.16.100.62
    

    mq3的配置 conf/dledger/broker-n2.conf

    brokerClusterName = RaftCluster
    brokerName=RaftNode00
    listenPort=30931
    namesrvAddr=10.16.100.60:9876;10.16.100.62:9876;10.16.100.63:9876
    storePathRootDir=/tmp/rmqstore/node02
    storePathCommitLog=/tmp/rmqstore/node02/commitlog
    enableDLegerCommitLog=true
    dLegerGroup=RaftNode00
    dLegerPeers=n0-10.16.100.60:40911;n1-10.16.100.62:40912;n2-10.16.100.63:40913
    ## must be unique
    dLegerSelfId=n2
    sendMessageThreadPoolNums=4
    brokerIP3=10.16.100.63
    

    1.2 启动

    1.2.1 启动nameserver

    3台机器都执行

    nohup sh mqnamesrv &
    

    1.2.1 启动Broker

    mq1

    nohup sh bin/mqbroker -c conf/dledger/broker-n0.conf &
    

    mq2

    nohup sh bin/mqbroker -c conf/dledger/broker-n1.conf &
    

    mq3

    nohup sh bin/mqbroker -c conf/dledger/broker-n2.conf &
    
  • 相关阅读:
    数据结构:关于重建二叉树的三种思路
    操作系统:进程调度算法详解之FCFS和SPF篇
    Java反射机制浅析
    数据挖掘:基于TF-IDF算法的数据集选取优化
    RC隔离 更新where条件列 没有索引的情况
    RR区间锁 不是唯一索引,即使区间内没值,也锁
    If one session has a shared or exclusive lock on record R in an index, another session cannot insert
    RR模式下利用区间锁防止幻读,RC模式没有区间锁会出现幻读
    使用next-key locks 用于搜索和索引扫描,可以防止幻读
    Gap Locks 区间锁
  • 原文地址:https://www.cnblogs.com/fsckzy/p/15061528.html
Copyright © 2011-2022 走看看