毎分サーバーにデータを送信する車両がいくつかあります。サーバーはリッスンし、データをデコードしてデータベースに保存する必要があります。毎分数千のエントリがあります。その問題を解決するための最良のアプローチは何ですか?
3 に答える
私の個人的なお気に入りであるWCFまたはWebServiceファームは、データをMicrosoftメッセージキュー(MSMQ)に送り、アプリケーションサーバー(1つ以上)にデータを変換してDBに配置させます。
深くなるにつれて(必要に応じて)、MSMQの機能を使用して、タイムアウト、ロードバッファリング、「デッドレター」、サーバー障害などを処理できます。 この記事を検討してください。
これのWebに面する側では、ステートレスで薄いため、複雑な負荷分散を考慮することなく、このレイヤーを簡単にスケールアウトできます。DNS負荷分散を使用して開始し、必要に応じてより適切なソリューションに移行できます。
さらに、MSMQを使用すると、キューにあるメッセージの数を確認することで、システムが「遅れている」ことを確認することもできます。その数が0に近い場合は、問題ありません。その数が止まることなく上昇し続ける場合は、パフォーマンスを向上させる必要があります(別のアプリケーションサーバーを追加します)。
各操作にどれくらいの時間がかかると思いますか? あなたが言っていることから、処理後にデータをデータベースに直接書き込むことができるように見えるので、スレッドをまったく同期する必要はありません(データベースはそれを処理する必要があります)。