Как избежать единой точки отказа при использовании сервера состояний на веб-сайте ASP.NET

В моем текущем проекте мы должны создать веб-сайт (ASP.NET MVC), который, вероятно, будет иметь достаточную нагрузку, чтобы требовать серверную ферму. Я понимаю, что если используется ферма серверов, состояния сеансов должны храниться где-то еще, например, в базе данных сервера SQL или на сервере состояний.

После некоторых экспериментов мы склонны использовать механизм сервера состояний, но тот факт, что он будет иметь единую точку отказа, заставляет меня нервничать. Есть ли способ, с помощью которого мы можем избежать "единой точки отказа" при использовании сервера состояний?

3 ответа

Решение

Существует нечто, называемое разделением состояния сеанса, которое вы можете использовать, чтобы избежать single point of failure, Если это все еще не устраивает вас, вы можете попробовать проект ASP.NET Velocity, который выглядит многообещающе, даже если он находится только на стадии CTP.

Если вам нужна полная масштабируемость и избыточность, вам, вероятно, следует использовать кластер SQL Server.

В sharedcache ( http://www.sharedcache.com/ или http://sharedcache.codeplex.com/) есть реализация для сессий, пока она не выпущена, но люди ее используют.

Вы можете настроить репликацию SQL Server на другой компьютер или использовать отказоустойчивый кластер. Это может быть дорого, но сделает вашу базу данных более надежной.

Технически, комната вашего веб-сервера - это единственная точка отказа, а также ваша сеть и т. Д. Я бы не стал больше нервничать по поводу состояния сеанса, чем любой из них.

Другие вопросы по тегам