Особенности кодирования ASP.NET MVC с высоким трафиком - PullRequest
5 голосов
/ 30 октября 2011

Мне пару раз задавали следующий вопрос, и я чувствую, что мог бы найти лучший ответ на него, поэтому я передаю его здесь в надежде найти больше ресурсов, блогов или указателей по написанию масштабируемого кода MVC3 C #.Если у вас есть указания по написанию более производительного кода, размещенного на нескольких серверах, я был бы очень признателен.В качестве аргумента давайте предположим, что это будет для кода, который ожидает более 10-20 тыс. Обращений в день.

Вопрос: Какие соображения по кодированию вы принимаете во внимание при написании масштабируемого кода, который распространяется на несколько серверов?

Моя интуиция говорит мне, что ответ лежит в обработке сессии.Последние несколько лет я занимался написанием сервисов и формировал приложения не так много для веб-приложений, поэтому я ищу информацию, которая может помочь мне в разработке конкретных веб-приложений, особенно для C # MVC3.Любые блоги или книги, которые вы предлагаете, я обязательно изучу!

1 Ответ

2 голосов
/ 30 октября 2011

Одним из правил реализации масштабируемых веб-приложений является отсутствие у них состояния. Сессия - это первое, что следует исключить из уравнения, поскольку именно это делает приложение с состоянием. Если у вас есть приложение без сохранения состояния, вы можете выбросить оборудование, когда трафик увеличится, и приложение сможет его обработать. Итак, начните с размещения следующей строки в вашем файле web.config:

<system.web>
    <sessionState mode="Off" />
    ...
</system.web>

Проблема теперь будет лежать на уровне данных, так как именно туда направляется состояние. Поэтому для повышения производительности и ограничения количества запросов к этому узлу следует использовать кеширование. Кэшируйте как можно больше данных. Желательно хранить этот кеш на отдельных машинах, чем на веб-серверах. Выделенные машины для кеширования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...