Як я можу збалансувати навантаження балансиром?


11

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

Отже, що не так з моїми міркуваннями? Як я можу забезпечити високу доступність моїх балансирів навантаження на практиці, припускаючи, що кожне фізичне місце може бути відключене від живлення протягом тривалого періоду часу?

PS : Я усвідомлюю той факт, що моє розуміння різниці між HA та збалансуванням навантаження в кращому випадку посереднє. Мені хочеться доступний сервер, навіть коли потужність в одному місці падає. Дякую за розуміння.


1
Ви досліджували відмову від IP-адреси? Якщо обидва центри обробки даних є одним і тим самим провайдером, це має бути досить прямо
Smudge

Ви повинні мати свої вузли в окремих мережах? - Коли він знаходиться в одній локальній мережі, HA простіше налаштувати.
Sandman4

Яка ваша основна мета - ви хочете, щоб балансування навантаження означає, що ви хочете обробляти навантаження вище, ніж ті, що нормально для одного сервера, або ви хочете, щоб HA означає, що ви хочете, щоб ваш сайт працював, навіть якщо один вузол вийшов з ладу?
Sandman4

Відповіді:


4

Ви не можете, тому балансування навантаження не має нічого спільного з доступністю .


2

Двох балансирів навантаження повинно вистачити. Ви будете використовувати лише один балансир навантаження одночасно. Назва мій веб-сайт має відповідати VIP, призначеному одному з балансирів навантаження.


VIP = віртуальний IP? У якій частині інфраструктури розміщуватиметься маршрутизація VIP, тобто виявляти, що один LB вниз і рухається до іншого? Якщо це на одній з локацій, це може бути і вниз ...
Микола Прокощенко

З VIP-запитом запити надходять до обох НБ, і один з них вирішує відповісти, виходячи з того, чи вважає він, що інший піднявся. Це дозволяє припустити, що вони географічно не відокремлені, хоча це зовсім інший рівень доступності.
JamesRyan

2

Ви можете робити грубі HA та врівноважувати круглі дроби, наклеюючи його перед балансирами вантажу.


Круглий робін буде робити балансування навантаження, але що стосується HA - НІ. В основному браузер вибере один із вузлів і дотримується його. У нього є 50% шансів вдарити хорошого або поганого.
Sandman4

Ні, це не те, що відбувається. Більшість сучасних веб-переглядачів прийматимуть усі IP-адреси, включаючи поганий та прозоро намагатимуться від хороших. Це не дурно, але працюватиме для переважної більшості користувачів.
JamesRyan

що змушує вас так думати? Я також сподівався на це, поки фактично не перевірив це сам. І Firefox, і хром пробуватимуть 1-й IP-адрес протягом 180 секунд , а потім переходять до наступного IP-адреси. Як тільки ви перейдете на наступну сторінку, вони знову почнуть з 1-го (невідповідального) IP-адреси і зачекають ще 180 секунд тощо. ( serverfault.com/questions/327708/… )
Sandman4

Так, у вас є 50% шансів, що перший запит закінчиться, але як тільки це зробиться або ви оновите, він перейде до хорошого ip і отримає нормально. З 2-го запиту він більше не повертається до поганого IP-адреси, він дотримується хорошого.
JamesRyan

Гидота. Ми можемо продовжувати говорити "це робить" або "це не так". Просто Спробуйте його і подивіться. А натискання кнопки оновлення нічого не змінює (принаймні, в хромі) - ви чекаєте 180 секунд, навіть якщо натиснути кнопку "Зупинити" і відкрити сторінку знову.
Sandman4
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.