Как я могу балансировать нагрузку балансировщика нагрузки?

11

Я собираюсь преобразовать веб-приложение с одной базой данных с одним сервером в физически распределенную высокодоступную конфигурацию с серверами в двух физических местах (на данный момент). Теперь, очевидно, мне нужен балансировщик нагрузки (в данном случае он больше похож на обратный прокси-сервер, но я для простоты назову его «балансировщик нагрузки»), который будет перенаправлять запросы mywebsiteлибо в, node1.mywebsiteлибо в node2.mywebsite. Тем не менее, я предполагаю, что высокодоступные серверы бесполезны, если мой балансировщик нагрузки выходит из строя. Поэтому, так что мой ход мыслей, мне на самом деле нужно два балансировщика нагрузки, по одному на каждом месте. Тем не менее, я все еще хотел бы иметь одну внешнюю точку доступа, поэтому мне нужен балансировщик нагрузки для балансировщиков нагрузки, который, в свою очередь, должен был бы быть сбалансирован в разных местах ... это продолжается и продолжается.

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

PS : я осознаю тот факт, что мое понимание различия между HA и балансировкой нагрузки в лучшем случае посредственно. То, что я хочу, - это доступный сервер, даже когда питание в одном месте отключается. Спасибо за Ваше понимание.

Николай Прокощенко
источник
1
Вы исследовали отказоустойчивость IP? Если оба центра обработки данных являются одним и тем же провайдером, это должно быть достаточно прямым
Smudge
Вы должны иметь свои узлы в отдельных сетях? - Когда он находится в той же локальной сети, HA проще в настройке.
Sandman4
Какова ваша главная цель - вы хотите, чтобы балансировка нагрузки означала, что вы хотите обрабатывать нагрузки выше, чем те, которые подходят для одного сервера, или вы хотите, чтобы HA означала, что вы хотите, чтобы ваш сайт работал, даже если один узел вышел из строя?
Sandman4

Ответы:

4

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

adaptr
источник
2

Двух балансировщиков нагрузки должно быть достаточно. Вы будете использовать только один балансировщик нагрузки одновременно. Имя mywebsite должно соответствовать VIP, назначенному одному из балансировщиков нагрузки.

Халед
источник
VIP = виртуальный IP? Какая часть инфраструктуры будет обслуживать VIP-маршрутизацию, то есть обнаруживать, что один LB не работает, и направлять к другому? Если он находится на одной из локаций, он тоже может быть отключен ...
Николай Прокощенко
С VIP запросы идут к обоим LB, и один из них решает ответить на основании того, считает ли он, что другой работает. Это предполагает, что они не разделены географически, хотя это совершенно другой уровень доступности.
JamesRyan
2

Вы можете выполнить грубую HA и балансировку с помощью круглого робота, прикрепив его к балансировщику нагрузки.

JamesRyan
источник
Round robin сделает балансировку нагрузки, а что касается HA - НЕТ. В основном браузер выберет один из узлов и будет придерживаться его. У него есть 50% шансов ударить хорошего или плохого.
Sandman4
Нет, это не то, что происходит. Большинство современных браузеров принимают все IP-адреса, включая плохие, и прозрачно повторяют попытки получения хороших. Это не надежно, но будет работать для подавляющего большинства пользователей.
JamesRyan
что заставляет вас думать так ? Я тоже на это надеялся, пока сам не попробовал. И Firefox, и Chrome попробуют 1-й IP-адрес в течение 180 секунд , а затем переключатся на следующий IP-адрес. Как только вы перейдете на следующую страницу, они снова начнут с 1-го (не отвечающего) IP-адреса и будут ждать еще 180 секунд и так далее. ( serverfault.com/questions/327708/… )
Sandman4
Да, у вас есть 50% -ная вероятность того, что самый первый запрос будет прерван, но как только он будет выполнен или вы обновите его, он перейдет к хорошему ip и получит нормально. Начиная со 2-го запроса, он больше не возвращается к плохому IP, а остается на хорошем.
JamesRyan
Тьфу. Мы можем продолжать говорить "это делает" или "это не делает". Просто попробуйте и посмотрите. А нажатие кнопки «Обновить» ничего не меняет (по крайней мере, в Chrome) - вы ждете 180 секунд, даже если вы нажмете «Стоп» и снова откроете страницу.
Sandman4