Додому Internet en IT Hoe grote websites miljoenen bezoekers verwerken zonder te crashen

Hoe grote websites miljoenen bezoekers verwerken zonder te crashen

Het is gemakkelijk om te denken dat het bedienen van een groot publiek een serverruimte ter grootte van een magazijn vereist. Dit is echter niet altijd het geval. Als uw site statisch is, kan een kleine machine honderdduizenden bezoekers verwerken. Stel je een eenvoudige 500MHz Celeron voor met Linux en Apache. Maak verbinding met een T3-lijn (45 miljoen bits per seconde). Deze instelling verwerkt zeer grote hoeveelheden verkeer. ISP’s huren de volledige installatie voor minder dan $ 1.000 per maand.

Maar hier is het probleem. De meest populaire sites zijn niet klein. Ze raakten snel de muur. Eén doos kan niet onbeperkt worden uitgebreid.

“Als je te maken krijgt met miljoenen bezoekers en dynamische content, gaat je machine kapot.”

Grenzen verschijnen wanneer een bepaalde drempel wordt bereikt. Ten eerste moet je misschien elke dag miljoenen bezoekers ondersteunen. Eén enkele CPU heeft beperkingen. De tweede is een hardwarefout. Als een van uw servers uitvalt, wordt uw site donker totdat u deze vervangt door een nieuwe en opnieuw configureert. Ten derde verbruiken grote of complexe pagina’s snel bronnen. Ten vierde: als de pagina voor elke gebruiker dynamisch moet veranderen, moet de server harder werken. Ten slotte zorgt achtergrondverwerking voor latentie. De meeste grote locaties voldoen aan al deze criteria en vereisen daarom een ​​uitgebreide infrastructuur.

De drie belangrijkste schaalstrategieën

Als het budget het toelaat, kunnen monteurs tijdens de spits drie hoofdroutes kiezen.

  1. Koop een enorme machine met onbeperkte stroom en redundantie.
  2. Verdeel de lading over veel kleinere machines.
  3. Combineer de twee methoden.

De gedistribueerde aanpak komt het meest voor bij grote webapplicaties. Misschien heb je dit zelfs in actie gezien zonder het te beseffen. Als de URL elke keer dat u de website bezoekt en vernieuwt enigszins verandert (bijvoorbeeld www1.xyz.com en www2.xyz.com ), is dat een aanwijzing. Deze site maakt gebruik van een reeks onafhankelijke computers. Iedereen gebruikt webserversoftware. Ze gebruiken allemaal dezelfde kopie van de websitepagina.

De echte magie zit in de manier waarop inkomende verzoeken worden gedistribueerd. Dit kan op twee manieren gebeuren.

Op DNS gebaseerde taakverdeling

Het Domain Name System (DNS) vertaalt voor mensen leesbare namen naar IP-adressen. Sommige DNS-configuraties gebruiken een round-robin-aanpak. Elke keer dat er een verzoek wordt ontvangen, doorlopen DNS-servers de lijst met beschikbare IP-adressen.

Hierdoor wordt de belasting op natuurlijke wijze verdeeld. Elke server ontvangt een deel van het verkeer. Ze praten niet met elkaar over de lading. Bied alleen statische of vooraf gegenereerde inhoud aan waartoe zij toegang hebben.

Schakelaar voor belastingsverdeling

Een meer geavanceerde aanpak omvat een load balancer. Al het netwerkverkeer bereikt eerst de centrale switch. Deze machine fungeert als verkeersagent. Stuurt het verzoek door naar een beschikbare server.

De schakelaar raadt niet alleen. Controleer elke server om te zien welke het minst druk is. Dit garandeert een gelijkmatige werkverdeling. HowStuffWorks heeft deze aanpak gevolgd. De load balancer van het bedrijf verdeelt het verkeer tussen drie verschillende webservers. Als een van hen uitvalt, zullen de andere twee de site live houden. Geen downtime voor de gebruiker.

Deze redundante configuratie heeft duidelijke voordelen. Het uitvallen van één machine zorgt er niet voor dat de hele site crasht. Je kunt de capaciteit ook stapsgewijs verhogen. Meer kracht nodig? Voeg nog een doos toe. Het is flexibel.

Er is één nadeel. Deze gedistribueerde machines zijn nog steeds vaak afhankelijk van gecentraliseerde databases voor de verwerking van transacties. Naarmate het verkeer groeide, werd deze database een knelpunt.

Eén enorme machine

Niet iedereen deelt uit. Microsoft’s TerraServer kiest de “enkele grote machine” -route.

TerraServer slaat terabytes aan satellietbeelden op. Het verwerkt miljoenen verzoeken om die gegevens. het maakt gebruik van enorme hardware van ondernemingsklasse. Neem bijvoorbeeld de Digitale AlphaServer 8400. Het heeft acht 440 MHz 64-bit processors. Bevat 10 GB op fouten gecontroleerd en gecorrigeerd RAM-geheugen.

Dat is veel kracht in één chassis. Dit vermijdt de complexiteit van netwerkcoördinatie tussen meerdere servers. Maar het is duur. Als één AlphaServer uitvalt, stopt de service.

De keuze hangt af van uw bedrijfsmodel. Statische inhoud geeft de voorkeur aan eenvoudige instellingen. Dynamische transacties vereisen redundantie. Data-intensieve toepassingen kunnen brute kracht vereisen.

Als je meer wilt weten, zijn er voldoende bronnen. Het W3C stelt de normen vast. Microsoft heeft een whitepaper gepubliceerd over taakverdeling in Windows NT. IBM biedt een rood boek over serverbalancering. Een artikel over gedistribueerde, collaboratieve webservers beschrijft deze theorie.

Maar de kernrealiteit blijft eenvoudig. Verkeersschalen. Hardwarelimieten. Ingenieurs bouwen een brug tussen de twee. Hoe u het bouwt, hangt af van waar uw website daadwerkelijk voor gebruikt gaat worden.

Exit mobile version