Опции балансировки нагрузки [закрыто]

25

Я смотрю на ряд возможных вариантов балансировки нагрузки.

Пока что я ограничен следующими вариантами:

  • Балансировщик нагрузки DNS-сервера, балансирующий на кластер серверов Tomcat, с терракотой для репликации сеансов. Плюсы - не нужно покупать новый комплект. Минусы - DNS фунт может продолжать направлять на сломанный сервер.

  • Аппаратный балансировщик нагрузки, напрямую к кластеру серверов Tomcat. Плюсы - мог быть второй ящик для отработки отказа, фунт. Минусы - расход.

  • Балансировщик нагрузки сервера Apache. Плюсы - lb-опросы Apache для неработающих серверов. Минусы - сервер Apache является единственной точкой отказа, плюс необходимо купить другой сервер.

Есть ли другие варианты, которые я должен рассмотреть?

Спасибо.

Обновление: Спасибо за все ответы, пока +1 со всех сторон. Пока не принимаю ответ, чтобы больше идей приходило.

Инструментарий
источник
Какая платформа ОС?
Спулсон
Для балансировщиков нагрузки S / W это будет Linux
инструментарий
Windows, встроенная в балансировку сетевой нагрузки, неплоха для дешевой балансировки нагрузки. Но лично я бы сказал, стоит ли это вам денег, купите F5.
Sclarson
Если вы не занимаетесь терракотой, какой тип сессионной близости вам нужен? Основанный на куки, основанный на заголовке, IP?
sh-beta
@ ш-бета - я думаю, это зависит от реализации?
инструментарий

Ответы:

7

я бы не стал использовать lb на основе DNS - именно по той причине, которую вы перечислили.

nginx или лак могут быть вашей другой опцией lb / fail-over, которая находится перед appservs и действует как обратный прокси. они требуют большего ухода, чем аппаратная коробка, но сэкономят вам немало денег. не забудьте также поместить эти балансировщики в какой-то кластер [активно-пассивный с биением сердца поможет вам].

PQD
источник
11

Если вы смотрите на устройства балансировки нагрузки, вы действительно не ошибетесь с F5 Big-IP

редактировать: причина, по которой я говорю, просто пойти с Big-IP, потому что это хорошее устройство для администраторов серверов, которые не имеют большого опыта работы с сетевыми устройствами. У этого есть хороший веб-интерфейс с почти безграничными вариантами конфигурации и отчетности. Они являются наиболее надежными и наименее дорогими из всех «корпоративных» вариантов балансировки нагрузки.

Вот ссылка на исследование по вариантам доставки приложений в 2007 году: Результаты Gartner

sclarson
источник
1
Мне нравятся F5 Big-IP. Также здорово справиться с ускорением SSL, чтобы веб-серверы могли работать только с обычным HTTP.
Крис В. Ри
Я бы согласился, хотя, если вы выполняете большую операцию, лучше держаться подальше от последних обновлений, которые я найду.
mryan1
У нас есть большая организация, и я не совсем уверен, что последние обновления связаны с использованием F5.
Sclarson
+1 для Big-IP. Они просто работают. Когда вы помещаете что-то между вашими пользователями и вашими серверами, это должно быть пуленепробиваемым.
Брент Озар
6

Я предлагаю использовать HAProxy . Это очень быстро. И вы также можете избежать единой точки отказа, используя два балансировщика нагрузки с CARP (* BSD) или UCARP / LVS (Linux)

SaveTheRbtz
источник
4

Мы годами использовали Coyote Point Equalizer (аппаратные балансировщики нагрузки) и были им очень довольны. Они могут иметь не все функции F5, но у них все еще много функций, и они стоят гораздо дешевле. Производительность и надежность были превосходны.


источник
+1 за это. У нас здесь есть пара койотов, они работают уже несколько лет и до сих пор гудят.
Сет
3

Я склоняюсь к аппаратным LB, так как они часто могут обрабатывать огромную часть трафика, часто «проще», поэтому более способны к упрочнению лучше / проще и иногда могут также управлять другими проблемами безопасности, такими как атаки SYN-floud на оборудовании. Я использую Foundry, но есть выбор (F5, Cisco и т. Д.) - хотя бы потратил :(

Chopper3
источник
1

Cisco GSS (Global Site Selector) - это DNS-сервер, который также выполняет проверки работоспособности. Очевидно, это будет более дорогой вариант, чем стандартный DNS-сервер. Веб-страница с более подробной информацией здесь: http://www.cisco.com/en/US/products/hw/contnetw/ps4162/index.html

F5 has similar offerings:  http://www.f5.com/products/ 
Cisco ACE product page: http://www.cisco.com/en/US/products/ps8361/index.html

Как упомянул Chopper3, аппаратная балансировка нагрузки, вероятно, даст более высокую производительность, но вы заплатите за нее.

Возможности, которые вы можете найти: разгрузка SSL, поддержка vlan, контексты, кластеризация, поддержка протоколов маршрутизации и поддержка / взаимодействие с различными приложениями (например, html-файлы cookie и изменение заголовка).

Питер
источник
1

Вы смотрели на ldirectord ?

Он работает на Linux, может работать с heartbeat на тех же машинах, на которых он выполняет балансировку нагрузки (и, следовательно, имеет встроенную избыточность) - или, конечно, на собственной коробке перед ними, прост в настройке, легок и очень эффективен ,

казарка
источник
1

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

Джонатан
источник
0

Я написал программный балансировщик нагрузки, который не требует отдельной машины.

Недостатком является то, что он не готов к работе - но если вы хотите протестировать его в своей тестовой сети, я буду рад.

Пушистый кластер здесь

Это в основном внешне похоже на Microsoft NLB (я думаю) - хотя у меня нет их источника и я точно не знаю, как их работает.

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

РЕДАКТИРОВАТЬ: Вы не сказали, что ОС, кластер Fluffy в настоящее время только для Linux.

MarkR
источник
Выглядит круто. Я хотел бы использовать ClusterIP, но он не готов к производству, и слишком много ошибок. Есть ли у вас планы подготовить кластер Fluffy к производству?
Дик
Если есть интерес, я сделаю это. Для релиза с ограниченными возможностями требуется относительно мало работы.
MarkR
0

keepalived - это еще один Linux-балансировщик нагрузки, который поддерживает несколько алгоритмов балансировки нагрузки (очевидно) и VRRP для создания избыточных экземпляров с автоматическим переключением при сбое при отключении блока балансировки нагрузки.

Сандер Рийкен
источник
0

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

Компания, в которой я работаю, использует Apache для подключения к нашим серверам Tomcat, а балансировщик нагрузки находится в том же окне, что и некоторые tomcats (tomcats используют внутренние порты). Скоро мы перейдем к выделенному блоку балансировки нагрузки. Вскоре мы перейдем к Nginx, но я считаю, что конфигурация проще, и все это намного легче, чем Apache. В зависимости от архитектуры вашей сети, я бы также посоветовал вам использовать внутренний «плавающий IP» для балансировщика нагрузки и запускать что-то вроде пульса, чтобы при необходимости переключить IP на другой блок. Это добавит возможности отработки отказа, не беспокоясь о проблемах распространения DNS.

ahanson
источник
0

Я настроил решение с помощью DNSMadeEasy . У них есть хороший скринкаст о сбое DNS. У них разумные цены. В нашей системе мы реализовали простой сервис, который «пингует» различные компоненты нашей системы (базу данных, очередь JMS, соединение S3) и возвращает OK, который DNSMadeEasy может использовать. Всякий раз, когда возникает исключение, DNSMadeEasy удаляет этот сервер из списка серверов, который отвечает на этот поиск DNS.

tronda
источник
0

Вы смотрели на Perlbal?

www.danga.com/perlbal/

Богатый
источник
0

Здравствуйте, @toolkit. Вы когда-нибудь использовали NGinX / Varnish в своем квесте LoadBalancer (LB)? если да, каковы были ваши результаты? (если вы не против поделиться с остальными из нас ;-)

Просто чтобы подвести итог вышесказанному (и добавить упоминание для ZMQ)

Базовая балансировка нагрузки

Более продвинутый

  • ZeroMQ может справиться с феноменальным параллелизмом и нагрузкой, и при этом не предназначен для LB; Это очередь сообщений - которая по существу распределяет (разрешает) входящие запросы. Если вы чувствуете себя авантюрным, я рекомендую вам изучить его ( 2 часа обучения - высокая рентабельность! ):
nelsonic
источник