ActiveMqの場合、シェアードナッシングデプロイメントは次のようになります。
一言で言えば、マスターが降りると、1人のスレーブがマスターとして昇格します。しかし、私は気づいていません:
1、どのスレーブを昇格させるべきかを決定するために、母校がダウンしているかどうかを決定する責任があるのは誰ですか?マスター自身がすでに降りているので。クライアントは責任がありますか?そしてどうやって?2、どのスレーブをマスターとして昇格させる必要がありますか?誰でも?
ActiveMqの場合、シェアードナッシングデプロイメントは次のようになります。
一言で言えば、マスターが降りると、1人のスレーブがマスターとして昇格します。しかし、私は気づいていません:
1、どのスレーブを昇格させるべきかを決定するために、母校がダウンしているかどうかを決定する責任があるのは誰ですか?マスター自身がすでに降りているので。クライアントは責任がありますか?そしてどうやって?2、どのスレーブをマスターとして昇格させる必要がありますか?誰でも?
共有なし (Pure Master Slave) セットアップの場合、
スレーブからマスターへのマスター接続が確立されます。この接続は、マスター ブローカーの状態を同期します。スレーブからマスターへのネットワーク マスター (同期) 接続が短時間でもダウンすると、スレーブ ブローカーはレプリケーションのリッスンを停止し、独自のコネクタ (ネットワークおよびクライアント コネクタ) を開始します。
その間、クライアントへの接続も切断された場合 (つまり、マスターが実際に失敗した、クラッシュした、ハードウェアが停止した、ネットワークがダウンしたなど)、クライアントはスレーブに再接続し、そこで続行します。
つまり、クライアント セットアップで構成されている場合: failover://(tcp://masterhost:61616,tcp://slavehost:61616)?randomize=false
これはいくつかのことを意味します
そのため、マスターとスレーブの間のネットワーク接続が非常に安定しており、各ノードのダウンタイムが非常に短い場合 (つまり、年に数回程度のハードウェア障害に対する保護) に、ほとんどの場合、シェアード ナッシング ステートを使用できます。
可能であれば、共有ディスク、マスター + マスターなど、他のフェイルオーバー アプローチを使用します。