2010-06-07 3 views
0

При создании приложения ASP.NET MVC с целью обеспечения высокой доступности рекомендуется ли сохранять состояние сеанса на SQL Server, если нет доступного состояния сервера?Высокая доступность ASP.NET MVC

ответ

0

Дело в том, что у вас есть 2-3 веб-сервера, как вы упомянули в комментарии к Craigs.

Один из способов - использовать сеансовое состояние SQL-сервера, которое имеет свои проблемы http://idunno.org/articles/277.aspx.

Если у вас есть этот SQL-сервер, я был бы осторожен, потому что DB для sessionstate будет загружать на него большую нагрузку. Каждый запрос будет записываться в db.

Мы используем 2 webservers и Loadbalancer, у которых есть липкие сессии. Если ваш первый запрос заканчивается на сервере 1, то все ваши запросы обрабатываются сервером 1. (Его немного сложнее, но вы получаете идею.)

Это может быть не всегда наилучшим решением, но по крайней мере на нашем сайт (его магазин, где пользователь обычно остается 20-30 минут), он работает хорошо. Мы используем только немного SessionState и располагаем большинством продуктов, специфичных для пользователей, которые хранятся в системе ProfileSystem. Но я думаю, что ProfileSystem также потерпит неудачу, если запросы перейдут на разные серверы.

0

Вместо этого я предлагаю AppFabric Caching (f.k.a. Velocity).

+0

Мне нужно работать с существующей платформой 2-3 веб-серверов и сервером sql. – Jay

+0

Возможно, вам следует обновить свой вопрос, чтобы включить все ваши требования. –

+0

Кстати, AppFabric Caching предназначен для работы с несколькими веб-серверами, и он быстрее, чем SQL-кэширование и липкие сеансы, поэтому я не уверен, что вижу ваше возражение. –

Смежные вопросы