vaibhav1800 Ответов: 1

Поддержание сеанса между страницами на 1000 обращений пользователей


Suppose 1000 users hit your site simultaneously so
how would you maintain the stability ?
How would you maintian the session between the pages on User Hits ? (In MVC and C#)
Or How would you maintain the scalabilty of site ? 


Что я уже пробовал:

Попробовал погуглить но ничего конкретного не нашел

Sinisa Hajnal

Ты бы не стал. Сеанс есть (или должен быть) у каждого пользователя, так что никаких проблем нет, он должен работать. Масштабируемость и пропускная способность определяются вашим хостом. Если ваш текущий провайдер не может справиться с объемом (или ваш текущий тариф не справляется), вам может потребоваться обновить пакет или сменить провайдера.
Единственное, что вы можете изменить, - это ваш код, поэтому убедитесь, что он работоспособен, найдите любые контрольные точки и разрешите их (есть инструменты для такого тестирования)...в общем, если у вас есть хороший, работоспособный код, единственное, что вы можете изменить, - это ваша инфраструктура.

1 Ответов

Рейтинг:
5

David_Wimbley

Итак, ваш главный вопрос на самом деле заключается в том, как бы вы масштабировались до 1000 пользователей одновременно.

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

Есть много способов решить вашу проблему, но вот, пожалуй, самый распространенный.

Сеансы проводятся пользователем (как упоминала Синиса), поэтому они должны обрабатываться соответствующим образом. Вы можете сохранить информацию о сеансе в БД или через файл cookie (в mvc это, скорее всего, через файл cookie).

Что касается работы с пользователями, то вам следует изучить балансировщики нагрузки. Существует много письменных работ и инструкций по этой теме, но вкратце, балансировщики нагрузки позволяют вам иметь более одного сервера, доступного через один URL-адрес, с возможностью обрабатывать экстремальные нагрузки.

балансировщик нагрузки[^]

Гугл[^]

Базы данных, как правило, являются узким местом. В зависимости от того, что делает ваше приложение, вы, вероятно, захотите изучить параметры кэширования (memcache, redis, amazon elasticache ... много вариантов). Это создает свои собственные проблемы (аннулирование/обновление кэша), но освобождает некоторые из ваших операций с БД от того, чтобы быть узким местом в вашем приложении.

Редис: что и почему? – кодберст[^]

Amazon ElastiCache - хранилище и кэш данных в памяти[^]

Поиск в google о кэшировании в mvc/.net предоставит множество ссылок для чтения.

Здесь есть дополнительные опции, включая сегментацию БД для балансировки нагрузки, но теперь мы переходим к продвинутым темам, выходящим за рамки форума быстрых ответов.

Я бы также предложил сделать поиск по темам расширенного масштабирования/масштабируемости, чтобы прочитать об этом.


vaibhav1800

Скажем так Amazon.com хорошо ? Предположим, что 1000 пользователей вошли в систему Amazon, и все же сайт работает быстро для меня, и он не замедляется. Просто хотите знать, что масштабируемость здесь является основной ?

David_Wimbley

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

vaibhav1800

Давайте представим, что вы даете интервью для Ebay, и интервьюер задает один и тот же вопрос, например, как вы поддерживаете масштабируемость ? Какие концепции вы включаете вкратце здесь, чтобы убедить интервьюера ? Нужны эти понятия друг :)