3

ActiveMqの場合、シェアードナッシングデプロイメントは次のようになります。

ここに画像の説明を入力してください

一言で言えば、マスターが降りると、1人のスレーブがマスターとして昇格します。しかし、私は気づいていません:

1、どのスレーブを昇格させるべきかを決定するために、母校がダウンしているかどうかを決定する責任があるのは誰ですか?マスター自身がすでに降りているので。クライアントは責任がありますか?そしてどうやって?2、どのスレーブをマスターとして昇格させる必要がありますか?誰でも?

4

1 に答える 1

4

共有なし (Pure Master Slave) セットアップの場合、

スレーブからマスターへのマスター接続が確立されます。この接続は、マスター ブローカーの状態を同期します。スレーブからマスターへのネットワーク マスター (同期) 接続が短時間でもダウンすると、スレーブ ブローカーはレプリケーションのリッスンを停止し、独自のコネクタ (ネットワークおよびクライアント コネクタ) を開始します。

その間、クライアントへの接続も切断された場合 (つまり、マスターが実際に失敗した、クラッシュした、ハードウェアが停止した、ネットワークがダウンしたなど)、クライアントはスレーブに再接続し、そこで続行します。

つまり、クライアント セットアップで構成されている場合: failover://(tcp://masterhost:61616,tcp://slavehost:61616)?randomize=false

これはいくつかのことを意味します

  • マスターにアタッチできるスレーブは 1 つだけです
  • スレーブはマスターに「昇格」されません。マスターがダウンした場合、スレーブはスタンドアロンのブローカーとして動作します。
  • 短い停止後にマスターがオンラインに戻った場合、マスターはスレーブと並んでスタンドアロンのブローカーとして動作し続け、セットアップが同期しなくなる可能性があります。回復は少し面倒で手動です。つまり、各ブローカーをシャットダウンし、実行時データをファイルごとに手動でコピーして再起動します。失敗したマスター ブローカーはスレーブに再接続せず、自動的に新しいスレーブになることに注意してください。

そのため、マスターとスレーブの間のネットワーク接続が非常に安定しており、各ノードのダウンタイムが非常に短い場合 (つまり、年に数回程度のハードウェア障害に対する保護) に、ほとんどの場合、シェアード ナッシング ステートを使用できます。

可能であれば、共有ディスク、マスター + マスターなど、他のフェイルオーバー アプローチを使用します。

于 2012-08-10T11:06:58.317 に答える