プライマリ プロセッサがダウンした場合のフェイルオーバーを主な目的として、2 つのプロセッサに分離された Java アプリケーションを展開しています。それらをプロセッサ A と B と呼びましょう。現在、アーキテクチャには一連のプロセスが A で実行されており、Oracle データベースが A と B の両方で実行されており、ストリームが同期を保つように構成されています。A がダウンした場合、B でプロセスが開始され、B のデータベースを引き継いで使用します。
その後、A が復旧したときに、システム全体が A でプロセスが実行されている状態に自動的に復元され、データベースは A がプライマリで、B がフェールオーバー用のスレーブに戻ります。ほとんどの場合、B でデータベースを停止し、基本的に A でデータベースをワイプして B から復元し、ストリームを再確立する独自のロジックを定義した場合に、この作業が行われます。ただし、これは 99% の確率で機能しますが、いまだに同期のバグが散見されます。
ここで車輪を再発明しているように思えますが、そうですか? データベースノードが行き来できるデータベースクラスタリングの標準的な方法が必要だと思いますか? 私は素朴なのか、それともすでに存在しているのでしょうか。また、この種のアーキテクチャを説明する流行語は何ですか? これが「マルチマスター」ですか?マルチマスターは、一方または他方が一定期間ダウンしたときに自動同期しますか?