У меня есть приложение MVC и WebAPI, которое должно регистрировать действия, выполняемые пользователями, обратно в мою базу данных. Это почти всегда одна вставка в таблицу, которая имеет менее 5 столбцов (т. Е. Очень мало данных пересекает провод). Интерфейс данных, который я использую в настоящее время, является Entity Framework 6ASP.NET + Entity Framework - обработка прерывистых трафик трафика
Время от времени я получаю большое количество пользователей, которым необходимо зарегистрировать, что они выполнили одно действие. В этом случае «Большой номер» может составлять пару сотен запросов каждую секунду. Обычно это будет продолжаться всего несколько минут. В остальное время я вижу очень управляемый трафик на сайт.
При скачках трафика Некоторые из моих клиентов получают ошибки таймаута, потому что страница не заканчивает загрузку, пока сервер не вставил данные в базу данных. Теперь фактическая вставка данных в базу данных не требуется, чтобы пользователь продолжал использовать приложение, поэтому я могу кэшировать эти запросы где-то локально, а затем вставлять их позже.
Есть ли хорошие решения для ASP.NET MVC для буферизации входящих данных запроса, а затем их вставки в базу данных каждые несколько секунд?
Что касается моей среды, у меня есть несколько серверов, на которых работает сервер 2012 R2 в балансировке нагрузки Web Farm. Я бы предпочел остаться без гражданства, если это вообще возможно, потому что пользователи могут поражать разные серверы за запрос.
Каким-то образом я думаю, что «это похоже на отслеживание аналитики (события и т. Д.)», Поэтому мой мозг идет в этом направлении - что-то препятствует приближению клиентской стороны? Собирать данные и сохраняться на клиенте до тех пор, пока «какое-то время» вы не определите «пакет»? Вид «бедной (wo) мужской/мужской очереди сообщений» :) Или, если вы думаете об этом, это как «корзина покупок на стороне клиента» (добавьте, удалите, при необходимости промойте). – EdSF