グーグルで答えが見つからないのは、正解がないからです。アプリケーションのニーズに基づいて、これらの問題へのアプローチは人それぞれ異なります。あなたの質問のいくつかに答えるために、私は実際には一般的な提案しか提供できません.
私の質問は、Web サービスが常に稼働していることを確認する方法です。
稼働時間を最大化することは重要であり、慎重な設計が必要になる場合があります。エラー状態を適切に処理し、スローされた入力を処理できる必要があります。これに関する 1 つの注意点は、アップタイムが重要である一方で、データの精度がより重要になる可能性があることです。この場合、Web サービスは稼働しているように見えるよりも停止している方が良いかもしれませんが、データが破損しています。
Web サーバーが数日間ダウンした場合、どのような注意が必要ですか?
データを適切にキューに入れ、サービスがバックアップされたときに送信できるように、クライアント アプリケーションをコーディングする必要があります。また、サービスを賢く行う必要があります (つまり、データのアップロード == データの日付であると想定しないでください)。クライアント アプリケーションが何日もダウンする可能性があることも忘れないでください (自然災害、停電、メンテナンスのためのダウンタイム、週末のクラッシュなど)。
複数のサーバーを維持する必要がありますか?
これを実現するには、wpf Windows アプリケーションで両方のサーバーの IP アドレスを指定する必要がありますか?`
それは間違いなくオプションです。冗長性により、ダウンタイムを最小限に抑えながら、サーバーのメンテナンスやアップグレードを実行できます。これにアプローチする方法はたくさんあります。おそらく複数の FQDN を使用します。したがってserver1.example.com
、server2.example.com
それぞれが別のサーバー (理想的には別のデータ センター内) を指しています。また、これらのサーバーの DNS エントリの TTL を非常に低くして、サーバーがダウンし始めた場合にサーバーを新しい IP に交換できるようにします。
次に、クライアント アプリで、2 つのサーバー間でラウンド ロビンを行うか、メイン サーバーを使用してもう一方をバックアップとして機能させることができます。
そうは言っても、このようなものを設定するときに多くの人が忘れているのはテストです。1 台のサーバーのダウン、両方のサーバーのダウン、DNS の切り替え、および考えられるその他の順列をテストして、冗長ソリューションが機能し、スケーラブルであり、他の問題が発生しないことを確認する必要があります。