ユーザーが実行したアクティビティをデータベースに記録する必要がある MVC および WebAPI アプリケーションがあります。これはほとんどの場合、5 列未満のテーブルへの 1 回の挿入です (つまり、ネットワークを通過するデータはほとんどありません)。私が現在使用しているデータ インターフェイスは Entity Framework 6 です
ときどき、多数のユーザーが 1 つのアクティビティを実行したことをログに記録する必要があります。この場合、「大量」は毎秒数百のリクエストになる可能性があります。通常、これはせいぜい数分間しか続きません。残りの時間は、サイトへの非常に管理しやすいトラフィックが見られます。
トラフィックが急増すると、一部のクライアントでタイムアウト エラーが発生します。これは、サーバーがデータをデータベースに挿入するまでページの読み込みが完了しないためです。これで、ユーザーがアプリケーションを使い続けるためにデータベースにデータを実際に挿入する必要がなくなりました。そのため、これらの要求をローカルのどこかにキャッシュし、後でバッチ挿入することができます。
ASP.NET MVC が着信要求データをバッファリングし、数秒ごとにデータベースにバッチ挿入するための適切なソリューションはありますか?
私の環境では、負荷分散された Web ファームで Server 2012 R2 を実行しているサーバーがいくつかあります。ユーザーはリクエストごとに異なるサーバーにアクセスする可能性があるため、可能な限りステートレスのままにしたいと思います。