RocketMQクラスタ構築

4694 ワード

Brokerクラスタ構築
推奨されるいくつかのBrokerクラスタの配置方法は、ここでSlaveは書き込み不可ですが、Mysqlプライマリ・スペアと同様に読み取り可能です.
1.個々のMaster
この方法はリスクが大きく、Brokerが再起動したりダウンタイムしたりすると、サービス全体が利用できなくなり、オンライン環境での使用は推奨されません.
2.マルチマスターモード
1つのクラスタはSlaveがなく、すべてMasterであり、例えば2つのMasterまたは3つのMasterの利点:構成が簡単で、1つのMasterがダウンタイムしたり、メンテナンスを再開したりすることはアプリケーションに影響がなく、ディスクがRAID 10に構成されている場合、マシンがダウンタイムしても回復できない場合でも、RAID 10ディスクは非常に信頼できるため、メッセージも失われません(非同期ディスクは少量のメッセージを失い、同期ディスクは1本も失われません).最高のパフォーマンス欠点:1台のマシンがダウンタイムしている間、このマシンで消費されていないメッセージはマシンが回復する前に購読できず、メッセージのリアルタイム性に影響を与える
###     Name Server,     IP  : 192.168.6.130:9876
nohup sh mqnamesrv &
###     A,      Master
nohup sh mqbroker -n 192.168.6.130:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-a.properties &
###     B,      Master
nohup sh mqbroker -n 192.168.6.131:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-b.properties &

3.マルチMasterマルチSlaveモード、非同期コピー
各MasterはSlaveを構成し、複数対のMaster-Slaveがあり、HAは非同期レプリケーション方式を採用し、プライマリは短いメッセージ遅延、ミリ秒レベルを備えている.利点:ディスクが破損しても、メッセージの損失は非常に少なく、Masterがダウンタイムした後も、消費者はSlaveから消費することができ、このプロセスはアプリケーションに透明であるため、メッセージのリアルタイム性に影響を与えません.人工的な介入は必要ありません.性能はマルチマスターモードとほぼ同じです.欠点:Masterダウンタイム、ディスクの破損状況、少量のメッセージが失われる
    Name Server,     IP  : 192.168.6.130:9876
nohup sh mqnamesrv &
###     A,      Master
nohup sh mqbroker -n 192.168.6.130:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a.properties &
###     B,      Master
nohup sh mqbroker -n 192.168.6.131:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b.properties &
###     C,      Slave
nohup sh mqbroker -n 192.168.6.132:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a-s.properties &
###     D,      Slave
nohup sh mqbroker -n 192.168.6.133:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b-s.properties &

4.マルチマスターマルチSlaveモード、同期デュアルライト
各Masterは1つのSlaveを配置し、複数対のMaster-Slaveがあり、HAは同期二重書き込み方式を採用し、ホストはすべて書き込みに成功し、アプリケーションに成功を返した.利点:データとサービスはすべて単点がなくて、Masterがダウンタイムの情況の下で、メッセージは遅延がなくて、サービスの可用性とデータの可用性はすべて非常に高い欠点があります:性能は非同期の複製モードより少し低くて、約10%ぐらい低くて、単一のメッセージを送信するRTは少し高いです.現在、メインダウンタイム後、スペアは自動的にホストに切り替えることができず、その後、セルフスイッチ機能をサポートします.
###     Name Server,     IP  : 192.168.6.130:9876
nohup sh mqnamesrv &
###     A,      Master
nohup sh mqbroker -n 192.168.6.130:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties &
###     B,      Master
nohup sh mqbroker -n 192.168.6.131:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties &
###     C,      Slave
nohup sh mqbroker -n 192.168.6.132:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties &
###     D,      Slave
nohup sh mqbroker -n 192.168.6.133:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b-s.properties &

以上のBrokerとSlaveのペアリングは同じbrokerNameパラメータを指定することでペアリングされ、MasterのBrokerIdは0でなければならず、SlaveのBrokerIdは0の数でなければならない.もう1つのMasterの下には複数のSlaveがマウントされ、同じMasterの下にある複数のSlaveは異なるBrokeIdを指定することによって区別される.$ROCKETMQ_HOSTはRocketMQインストールディレクトリであり,ユーザ自身がこの環境変数を設定する必要がある.