Рекомендуемый способ использования сеансов asp.net в Azure
Я прочитал несколько статей, в которых говорится, что рекомендуется использовать кэш фабричных приложений на Azure, в то время как другие говорят, что используют универсальных провайдеров и используют sql azure для хранения состояния сеанса в таблице sql azure. Любые эксперты, пожалуйста, дайте мне знать, что лучше и почему? Требуется "почему", поэтому я изложил свое мнение для рекомендации. Спасибо
2 ответа
Кэш имеет определенные ограничения на количество транзакций / час, пропускную способность / час и количество одновременных подключений. Пороговые значения для транзакции и пропускной способности указаны в часах, поэтому вы должны оставаться в пределах этих ограничений. Поскольку цена не является линейной, вы можете оценить использование сеанса и создать кеш, размер которого больше необходимого, но вам нужно учесть это.
В SQL Azure через универсальных провайдеров такого ограничения не будет. Я не знаю ваших требований к хранилищу кеша, но если кеш меньше 100 МБ, вы сейчас говорите о кеше на 5 долларов в месяц, а не на 45 долларов для сервиса Cache. А если бы вам потребовалось все пространство кэш-памяти объемом 4 ГБ, кэш-память SQL Azure объемом 5 ГБ была бы значительно дешевле.
Сказав все это: у поставщика Cache есть конкретная цель использования. Например: 4 ГБ кэш-памяти поддерживает до 12,8 миллиона транзакций в час, или более 3500 в секунду. Даже 128 МБ кэш-провайдеров осуществляют более 100 транзакций в секунду.
Итак: я бы посмотрел на решение по двум основным критериям:
- Если стоимость является фактором, и вы считаете, что скорость транзакций в кеше и объем данных могут обрабатываться SQL Azure, то SQL Azure, похоже, будет вашим лучшим выбором (и будет масштабироваться до размеров, намного превышающих 4 ГБ службы Cache). В SQL Azure нет опубликованной информации о скорости транзакций, но вы, вероятно, можете провести несколько простых тестов, чтобы увидеть, сколько обращений к сеансу вы можете нажимать в секунду, прежде чем увидите снижение производительности.
- Если вашему приложению требуется очень высокая скорость транзакций, опубликованные в Cache цели транзакций указывают на Cache как на лучшее решение. Примечание: вы, вероятно, не можете генерировать что-то вроде 3500 транзакций в секунду против Cache из одного экземпляра; это скорее сценарий с несколькими экземплярами.
Для получения дополнительной информации о спецификациях кэша см. Здесь.
РЕДАКТИРОВАТЬ Помимо SQL и Shared Cache, теперь вы можете настроить свой собственный выделенный кэш, используя память из существующих ролей (ничего не стоя) или роль кэша в вашем развертывании (стоимостью любой стоимости экземпляров роли). Это самый быстрый вариант, поскольку он связан с вашим развертыванием. Он также поддерживает протокол memcached. Более подробную информацию можно найти здесь.
В этой хорошей статье описываются преимущества и недостатки трех различных режимов управления состояниями сеансов в Azure: сеансы в Azure.