Решения для обработки пиков нагрузки

Рубрика:

При обеспечении способности приложения обрабатывать пики нагрузки важнее всего удержаться от траты излишних ресурсов, которые большую часть времени простаивают, ожидая очередной пик. Существуют виды приложений, для типичны такие варианты использования:

1. Приложение, содержащее блоги, может испытывать пики при каждом опубликованном посте.

2. Сайты скидок и купонов, как Groupon или Biglion, испытывает ОГРОМНЫЕ пики каждый раз, как появляется новый продукт.

Возьмем для нашего примера сайт скидок, так как эта проблема для них очень характерна.  

Решение №1: Применение избыточных ресурсов

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

Решение №2: Отключение некоторых опций во время высоких загрузок

Когда происходят пики трафика и текущие ресурсы не могут обработать его, отключите функции или имейте "легкую" резервную версию приложения. Такое решение для сайтов предлагает Google, также этот способ пришлось использовать Groupon. Это работает, потому что это существенно уменьшает загрузку. Но при этом урезается значительная часть функционала приложения, поэтому это не самый вариант.

Решение №3: Автоматическое масштабирование

Во время скачков трафика, быстро и автоматически запустите новые серверы для их обработки.  Звучит отлично! Но сказать легче, чем сделать. Прежде всего, нужно проделать серьезную работу, чтобы установить автоматическую систему масштабирования. Во-вторых, она должна уметь очень быстро включать дополнительные ресурсы; небольшое промедление – и ваша система может выйти из строя. Возможны также небольшие потери, пока ваша автоматическая система не решит, что пора включить дополнительные экземпляры. И если пики происходят в случайные моменты времени, это может привести к постоянному масштабированию  вверх и вниз вашей системы.

Решение №4: Использование очередей сообщений

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

Преимущество этого метода - вы не тратите впустую ресурсы и деньги (как с №1), и не должны отключать опции сайта/приложения (№2). 

Таким образом, наиболее приемлемый способ обработки скачкового типа нагрузки являются очереди сообщений, которые имеют множество опций и применений. 

Источник: 
http://blog.iron.io/2012/06/spikability-applications-ability-to.html

Рекомендуем просмотреть раздел Все новости нашего сайта