roketmq-4.x公式ドキュメント-運営維持管理(operation)-上

4520 ワード

運行維持管理(operation)


出典:公式ドキュメント

1クラスタ構築


1.1シングルマスターモード


この方法はリスクが高く、Brokerが再起動したりダウンタイムしたりすると、サービス全体が使用できなくなります.オンライン環境では推奨されず、ローカルテストに使用できます.
1)NameServerの起動
###  Name Server
$ nohup sh mqnamesrv &
 
###  Name Server  
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

2)Brokerの起動
###  Broker
$ nohup sh bin/mqbroker -n localhost:9876 &

###  Name Server  , Broker IP :192.168.1.2, broker-a
$ tail -f ~/logs/rocketmqlogs/Broker.log 
The broker[broker-a, 192.169.1.2:10911] boot success...

1.2マルチマスターモード


1つのクラスタはSlaveがなく、すべてMaster、例えば2つのMasterまたは3つのMasterであり、このモードの長所と短所は以下の通りである.
  • の利点:構成が簡単で、単一のMasterがダウンタイムしたり、メンテナンスを再開したりすることはアプリケーションに影響がなく、ディスクがRAID 10に構成されている場合、機械がダウンタイムしても回復できない場合でも、RAID 10ディスクが非常に信頼できるため、メッセージも失われない(非同期ディスクは少量のメッセージを失い、同期ディスクは1本も失わない)、性能が最も高い.
  • の欠点:単一のマシンがダウンタイムしている間、このマシンで消費されていないメッセージは、マシンが回復する前に購読できず、メッセージのリアルタイム性に影響を与えます.

  • 1)NameServerの起動
    NameServerはBrokerより先に起動する必要があり、本番環境で使用する場合、高可用性を保証するために、一般的な規模のクラスタで3つのNameServerを起動することを推奨します.各ノードの起動コマンドは次のように同じです.
    ###  Name Server
    $ nohup sh mqnamesrv &
     
    ###  Name Server  
    $ tail -f ~/logs/rocketmqlogs/namesrv.log
    The Name Server boot success...
    

    2)Brokerクラスタの起動
    ###  A, Master, NameServer IP :192.168.1.1
    $ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-a.properties &
     
    ###  B, Master, NameServer IP :192.168.1.1
    $ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-b.properties &
    
    ...
    

    上記の起動コマンドは、1つのNameServerの場合に使用されます.複数のNameServerのクラスタについては、Broker起動コマンドの-nの後のアドレスリストをセミコロンで区切ることができます.たとえば、192.168.1.1:9876;192.161.2:9876です.

    1.3マルチMasterマルチSlaveモード-非同期レプリケーション


    各Masterは1つのSlaveを構成し、複数対のMaster-Slaveがあり、HAは非同期レプリケーション方式を採用し、主に短いメッセージ遅延(ミリ秒レベル)を備えている.このモードの長所と短所は以下の通りである.
  • の利点:ディスクが破損しても、メッセージの損失が非常に少なく、メッセージのリアルタイム性に影響を与えないと同時に、Masterがダウンタイムした後も、消費者はSlaveから消費することができ、このプロセスはアプリケーションに対して透明で、人工的な介入を必要とせず、性能はマルチMasterモードとほぼ同じである.
  • の欠点:Masterがダウンタイムし、ディスクが破損した場合に少量のメッセージが失われます.

  • 1)NameServerの起動
    ###  Name Server
    $ nohup sh mqnamesrv &
     
    ###  Name Server  
    $ tail -f ~/logs/rocketmqlogs/namesrv.log
    The Name Server boot success...
    

    2)Brokerクラスタの起動
    ###  A, Master, NameServer IP :192.168.1.1
    $ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a.properties &
     
    ###  B, Master, NameServer IP :192.168.1.1
    $ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b.properties &
     
    ###  C, Slave, NameServer IP :192.168.1.1
    $ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a-s.properties &
     
    ###  D, Slave, NameServer IP :192.168.1.1
    $ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b-s.properties &
    

    1.4マルチMasterマルチSlaveモード-同期デュアルライト


    各Masterは1つのSlaveを構成し、複数対のMaster-Slaveがあり、HAは同期二重書き込み方式を採用している.すなわち、マスタがすべて書き込みに成功してこそ、アプリケーションに成功を返すことができる.このモードの長所と短所は以下の通りである.
  • の利点:データもサービスも単一の障害がなく、Masterがダウンタイムした場合、メッセージに遅延がなく、サービスの可用性とデータの可用性が非常に高い.
  • の欠点:非同期レプリケーションモードよりも性能がやや低く(約10%程度低い)、単一メッセージを送信するRTがやや高く、現在のバージョンではプライマリノードがダウンタイムした後、スペアが自動的にホストに切り替えることができない.

  • 1)NameServerの起動
    ###  Name Server
    $ nohup sh mqnamesrv &
     
    ###  Name Server  
    $ tail -f ~/logs/rocketmqlogs/namesrv.log
    The Name Server boot success...
    

    2)Brokerクラスタの起動
    ###  A, Master, NameServer IP :192.168.1.1
    $ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties &
     
    ###  B, Master, NameServer IP :192.168.1.1
    $ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties &
     
    ###  C, Slave, NameServer IP :192.168.1.1
    $ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties &
     
    ###  D, Slave, NameServer IP :192.168.1.1
    $ 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より大きい数でなければならない.もう1つのMasterの下には複数のSlaveがマウントされ、同じMasterの下にある複数のSlaveは異なるBrokeIdを指定することによって区別される.$ROCKETMQ_HOMEとはRocketMQインストールディレクトリのことで、ユーザー自身がこの環境変数を設定する必要がある.