Puncte:0

Există vreo altă tehnică de distribuire a traficului între instrumentele de echilibrare a sarcinii în afară de DNS?

drapel it

În primul rând, am citit deja asta: Disponibilitate ridicată a echilibratoarelor de încărcare în sine

Dar această întrebare nu merge suficient de departe.

Se pare că echilibrarea încărcării DNS este numai modalitate de a distribui traficul între echilibratorii de încărcare. (Pe lângă utilizarea unui echilibrator de încărcare, care, evident, nu face nimic pentru a distribui încărcarea dacă totul trebuie să treacă printr-un singur server în cele din urmă)

Acesta pare a fi un abuz al protocolului DNS. Înțeleg că DNS a fost conceput pentru rezoluția numelui, nu pentru echilibrarea încărcăturii. Ce se întâmplă dacă vreau un algoritm de echilibrare a sarcinii mai complex în afară de round robin? Acesta este singurul mod de a distribui traficul între instrumentele de echilibrare a încărcăturii? Dacă nu este singura metodă, ce alte metode există?

Desigur, se pare că funcționează bine și este standardul actual pentru toate companiile importante, este corect?

Patrick Mevzek avatar
drapel cn
Această întrebare legată ar trebui să fie de interes și pentru dvs.: https://serverfault.com/questions/774385/do-clients-typically-implement-failover-load-balancing-on-multiple-a-records?rq=1
Puncte:3
drapel cn

Înțeleg că DNS a fost conceput pentru rezoluția numelui, nu pentru echilibrarea încărcăturii.

Pentru ambele, deoarece (aproape) toate înregistrările pot fi setate, prin urmare, pentru o anumită întrebare, un client poate obține mai multe răspunsuri și apoi este liber să aleagă orice articol preferă.

De aceea, un tipar frecvent este round-robin printre răspunsuri, astfel încât clientul alege „primul” articol, dar acesta va fi diferit de fiecare dată.

Desigur, un client poate implementa un algoritm mai inteligent, special pentru trecerea la IPv6 cu A și aaaa înregistrări, vezi RFC 8305 „Happy Eyeballs Version 2: Better Connectivity Using Concurrency”, dar acesta nu mai este echilibrul de încărcare.

Deci totul depinde de ce cantitate de „inteligență” există din partea clientului.

SRV înregistrările permit codificarea atât a unei priorități (fail over) cât și a unei greutăți (echilibru de încărcare) pentru orice protocol prin TCP sau UDP și permite să nu mai fie nevoie să codificați numerele de port. Din păcate, browserele nu l-au implementat niciodată. Iterația mai nouă sunt SVCB și HTTPS înregistrări care permit cam același lucru.

Rețineți acest lucru de fapt în proiectul actual:

Înregistrările SRV specifică o „greutate” pentru echilibrarea sarcinii randomizate dezechilibrate. SVCB acceptă doar echilibrarea de încărcare aleatorie echilibrată, deși ponderile ar putea fi adăugate printr-un viitor SvcParam.

Ca urmare a:

Ce se întâmplă dacă vreau un algoritm de echilibrare a sarcinii mai complex în afară de round robin?

Astăzi, asta înseamnă SRV înregistrări și ceva inteligență în aplicație (partea client). Sau un server de nume mai inteligent care își schimbă răspunsurile pe baza factorului dinamic extern (ceea ce fac CDN-urile, de exemplu).

Problema de bază cu care se confruntă echilibrarea încărcăturii la nivel DNS este adaptată la TTL-uri și pentru că unii rezolutori nu vor respecta valori prea mici pentru aceasta.

Trebuie să vă amintiți, de asemenea, că serverul de nume autorizat care are datele vede doar serverul de nume recursiv pe care clientul îl folosește de cele mai multe ori, nu clientul însuși. Deci, alegerile sale sunt limitate și de asta.

Puncte:3
drapel cn

Nu, DNS nu este singura modalitate de a comuta între instrumentele de echilibrare a încărcăturii.

Gandeste-te la asta design de echilibrare a sarcinii pe mai multe niveluri. Scalabil și rezistent.

Diagrama de laborator cu trei niveluri

  • Nivelul 7 are multe instanțe care furnizează proxy pentru aplicații backend. Termină conexiunea TCP și, eventual, TLS. HAProxy, de exemplu.
  • Nivelul 4 în fața acestuia, care direcționează pachetele în mod constant. păstrați-vă cu IPVS, de exemplu. Poate fi chiar apatrid, cu un algoritm de hashing coerent adecvat.
  • Routerele ECMP oferă căi redundante și scalare orizontală a legăturilor.
  • Și, în sfârșit, DNS pentru ca utilizatorii să poată căuta adresele de servicii.

A fi inteligent în ceea ce privește returnarea rezultatelor se încadrează în specificațiile DNS, astfel încât este posibil să implementați verificări de sănătate, rezultate bazate pe IP geografic și alte caracteristici dinamice. gdnsd este un server DNS exclusiv autorizat care poate face astfel de lucruri.

Cu toate acestea, DNS-ul este foarte stocat în cache, așa că se schimbă lent. Comportamentul ciudat inconsecvent al clientului face, de asemenea, ca DNS round-robin să nu fie practic.Deci, DNS ar putea fi limitat la găsirea ușii din față, regiunea corectă în care se află gazdele de echilibrare a încărcăturii. Activarea mediului de recuperare în caz de dezastru ar fi perturbatoare, dar schimbarea DNS poate trece la o infrastructură complet separată.

Puncte:1
drapel cn
Bob

Cea mai de bază soluție în DNS este, într-adevăr, pur și simplu setarea mai multor înregistrări de același tip cu valori diferite și ca serverul de nume să le returneze pe toate clienților atunci când aceștia solicită acea înregistrare a resursei.
Efectul acestui lucru este de obicei numit DNS round robin și, deși vine cu mai multe dezavantaje, este bine susținut atât de serverele DNS, cât și de clienți. Problemele legate de utilizarea acestei tehnici se aplică probabil tuturor soluțiilor de echilibrare a sarcinii DNS.

În plus față de Răspunsul lui Patrick unele servere DNS au mai multă inteligență încorporată sau fixată. În loc să returneze setul complet al tuturor înregistrărilor, răspunsul este reglat. Unii algoritmi sunt:

  • O verificare a stării de sănătate poate asigura fail-over-ul prin eliminarea înregistrărilor nodurilor eșuate dintr-un răspuns și/sau utilizând în schimb înregistrările serverelor de așteptare.

  • Mai multe servere de nume au o implementare pentru a furniza seturi diferite de informații DNS, de obicei selectate de adresa sursă a cererii DNS.

    • Cazul de utilizare mai banal al celui numit este de obicei „DNS cu orizont divizat” unde solicitarea clienților din campus sau din cadrul rețelei corporative va declanșa un răspuns diferit față de alții.
    • Cazul de utilizare mai avansat ar fi „GeoDNS” sau asemănător. De exemplu, un site web poate avea 2 servere (sau clustere în spatele unui IP de echilibrare a încărcării), unul situat în Franța și unul în SUA.Cu GeoDNS este posibil să se creeze o înregistrare DNS pentru care clienții din Europa să obțină adresa IP a serverului francez și clienții din SUA să obțină cea americană.

Dar multe alte abordări există în afara soluțiilor bazate pe DNS.

  • "Anycast" unde o singură adresă IP de destinație este partajată de servere/echilibratoare de încărcare în mai multe locații și routerele direcționează pachetele adresate acestei destinații către locația cea mai apropiată de expeditor.

  • logica încorporată în aplicațiile cu descoperire de servicii și fail-over

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.