Я сейчас нахожусь в процессе создания веб-приложения ASP.NET MVC на c #.
Я хочу убедиться, что это приложение построено так, чтобы оно могло масштабироваться в будущем без необходимости значительного ре-факторинга.
Я очень заинтересован в использовании какой-либо очереди для публикации любых записей в моей базе данных и для процесса, который асинхронно опрашивает эту очередь для выполнения обновления. Как только эти данные были отправлены обратно в базу данных, клиент должен быть обновлен с новой информацией. Здесь подразумевается, что процесс записи данных обратно в базу данных может занять некоторое время в зависимости от бизнес-правил, выполняемых на сервере.
Мой вопрос заключается в том, как лучше всего обрабатывать обновление с точки зрения клиента и браузера.
Я думаю о том, чтобы отправить данные обратно на сервер, добавить их в очередь и немедленно отправить ответ клиенту, а затем опрашивать его с определенной частотой, чтобы получить обновленные данные. Любая лучшая практика или шаблоны по этому вопросу будут оценены.
Кроме того, с точки зрения чтения данных из базы данных, вы бы предложили использовать какие-либо конкретные методы или было бы достаточно чтения прямо из базы данных, учитывая мой сценарий.
Обновление
Думал, что я опубликую обновление по этому вопросу, как это было давно. Мы фактически использовали Windows Azure, но решение применимо к другим платформам.
В конечном итоге мы используем очередь Windows Azure для отправки сообщений \ команд. Это очень быстрый процесс и возвращается немедленно. Затем у нас есть рабочая роль, которая обрабатывает эти сообщения в другом потоке. Это позволяет нам минимизировать любые записи / обновления БД в веб-роли в теории, что позволяет нам легче масштабировать.
Мы обрабатываем информирование пользователя по электронной почте или даже молча, в зависимости от типа данных, с которыми мы имеем дело.