0

ローカル キャッシュを保持する書き込みおよび読み取りデータベース アプリケーションがあります。アプリケーション サーバーに障害が発生した場合、バックアップ サーバーが動作を開始します。

プライマリ アプリケーションとバックアップ アプリケーションは、ローカル キャッシュとデータベースの分離レベルが低いため、排他的にしか実行できません。

私の通信知識に関する限り、両方のサーバーが常に誰が排他的に実行できるかを把握することは不可能です。

データベースを第 3 のエンティティとして使用することで、この通信の競合をどうにか解決できますか? これは非常に典型的な問題であり、100% 安全な方法はないかもしれませんが、他の人がそのような問題を解決するために推奨する方法を知りたいです。または、これに対するベストプラクティスがある場合。

両方のアプリケーションが 30 分程度動作しない場合は問題ありませんが、ベッドから起き上がって問題を解決するのに十分な時間はありません。

4

2 に答える 2

1

両方のアプリケーション サーバーの状態を監視する 3 番目のサーバーをセットアップできますか? このサーバーは、サーバーの 1 つがなくなったように見える場合に適切に判断できます。ホット スタンバイに処理の開始を指示します。

于 2012-04-08T21:13:20.337 に答える
0

画像が正しければ、バックアップサーバーはデータ更新のためにプライマリサーバーを常にポーリングします。ポーリングが失敗したかどうかを確認するのは難しくありません.30秒後に再度スケジュールし、3回失敗するとDNSエントリを動的に更新します.データベース サーバーに送信して、アクティブ サーバーの変更を反映します。Windows DNS と Bind はどちらも、署名付きおよび未署名の動的更新を受け入れます。

于 2012-04-08T21:19:34.297 に答える