Joseph Goodman
0
3307
642
Sociale netværk er kunsten at forbinde med dem, der deler fælles interesser. Dine “˜netværk 'er et samfund, der hjælper med at holde dig forenet med andre og giver mange fordele. Netværk via sociale mediesider har revolutioneret, hvordan vi bruger Internettet og er på forkant med det, vi nu kalder Web 2.0.
Facebook er sociale netværk. Folk har været “Facebooking”?? hinanden i ca. 6 år nu, hvilket gør Facebook til det mest anvendte sociale netværk med over 350 millioner brugere over hele verden. Men hvordan fungerer Facebook?
I denne artikel vil jeg diskutere Facebooks indre funktion og dække dens arkitektur og frontend / backend infrastruktur””møtrikker og bolte, der holder Facebook sammen.
Hvordan fungerer Facebook?””Forenden
Facebook bruger en række forskellige tjenester, værktøjer og programmeringssprog til at udgøre sin kerneinfrastruktur. I frontend kører deres servere en LAMP (Linux, Apache, MySQL og PHP) stak med Memcache. Ikke en computer videnskab ekspert? Lad os se på nøjagtigt, hvad det betyder.
Linux & Apache
Denne del er ret selvforklarende. Linux er en Unix-lignende computer-operativsystemkerne. Det er open source, meget tilpasselig og godt for sikkerhed. Facebook kører Linux-operativsystemet på Apache HTTP-servere. Apache er også gratis og er den mest populære open source-webserver, der er i brug.
MySQL
For databasen bruger Facebook MySQL på grund af dens hastighed og pålidelighed. MySQL bruges primært som en nøgleværdilager, da data distribueres tilfældigt mellem et stort sæt logiske forekomster. Disse logiske tilfælde er spredt ud over fysiske knuder, og belastningsbalancering udføres på det fysiske knudepunktniveau.
For så vidt angår tilpasninger, har Facebook udviklet en brugerdefineret partitioneringsplan, hvor en global ID er tildelt alle data. De har også et brugerdefineret arkiveringsskema, der er baseret på, hvor hyppige og nylige data er pr. Bruger. De fleste data distribueres tilfældigt.
PHP
Facebook bruger PHP, fordi det er et godt webprogrammeringssprog med omfattende support og et aktivt udviklerfællesskab, og det er godt til hurtig iteration. PHP er et dynamisk indtastet / tolket scriptingssprog.
memcache
Memcache er et hukommelsescache-system, der bruges til at fremskynde dynamiske databasestyrede websteder (som Facebook) ved at cache data og objekter i RAM for at reducere læsetiden. Memcache er Facebooks primære form for cache og hjælper med at lindre databasebelastningen.
At have et cache-system giver Facebook mulighed for at være så hurtig, som det er ved at huske dine data. Hvis det ikke behøver at gå til databasen, henter det bare dine data fra cachen baseret på dit bruger-ID.
Ulemper ved brug af LAMP
Facebook har indset, at der er ulemper ved at bruge LAMP-stakken. Navnlig er PHP ikke nødvendigvis optimeret til store websteder og derfor svær at skalere. Det er heller ikke det hurtigste eksekverende sprog, og udvidelsesrammen er vanskelig at bruge.
Mike Schroepfer, Facebooks vicepræsident for teknik, foretog for nylig et interview på EmTech @ MIT om dette. “Skalering af ethvert websted er en udfordring,” Sagde Schroepfer, “men skalering af et socialt netværk har unikke udfordringer.”
Han fortsatte med at sige, at i modsætning til andre websteder, kan du ikke bare tilføje flere servere til at løse problemet på grund af Facebooks “kæmpe sammenkoblet datasæt.” Nye forbindelser oprettes hele tiden på grund af brugeraktivitet.
Facebook er vokset så hurtigt, at de ofte står over for problemer vedrørende databasespørgsmål, cache og opbevaring af data. Deres database er enorm og stort set kompleks. For at redegøre for dette har Facebook startet en masse open source-projekter og backend-tjenester.
Hvordan fungerer Facebook?””Bagenden
Facebooks backend-tjenester er skrevet på en række forskellige programmeringssprog, herunder C ++, Java, Python og Erlang. Deres filosofi for oprettelse af tjenester er som følger:
1. Opret en service hvis det er nødvendigt
2. Opret et ramme / værktøjssæt for lettere oprettelse af tjenester
3. Brug det rigtige programmeringssprog til opgaven
En liste over alle Facebooks open source-udviklinger kan findes her. Jeg vil diskutere et par af de væsentlige værktøjer, som Facebook har udviklet.
Sparsomhed (protokol)
Thrift er en letvægtsopkaldsramme til fjernprocedurer til skalerbar udvikling af tværsprogede tjenester. Thrift understøtter C ++, PHP, Python, Perl, Java, Ruby, Erlang og andre. Det er hurtigt, sparer udviklingstid og giver en arbejdsdeling på højtydende servere og applikationer.
Scribe (log-server)
Scribe er en server til sammenlægning af logdata, der streames i realtid fra mange andre servere. Det er en skalerbar ramme, der er nyttig til at logge en lang række data. Det er bygget oven på sparsommeligt.
Cassandra (database)
Cassandra er et databasestyringssystem designet til at håndtere store mængder data spredt på mange servere. Det styrker Facebooks Inbox Search-funktion og giver en struktureret butik med nøgleværdier med eventuel konsistens.
HipHop til PHP
HipHop for PHP er en kildekodetransformator til PHP-scriptkode og blev oprettet for at gemme serverressourcer. HipHop omdanner PHP-kildekode til optimeret C ++. Efter at have gjort dette bruger den g ++ til at kompilere den til maskinkode.
Konklusion
Kort sagt, det er Facebook. Denne artikel kunne let være 37 sider længere, hvis jeg skulle gå nærmere ind på, men for at besvare spørgsmålet “Hvordan fungerer Facebook?”?? Jeg tror, det er tilstrækkeligt. Hvis du ser forbi alle de funktioner og innovationer, er hovedideen bag Facebook virkelig meget grundlæggende””holde folk forbundet. Facebook er klar over kraften i det sociale netværk og innoverer konstant for at holde deres service bedst i branchen.
Synes du denne artikel var nyttig? Efterlad dine tanker, kommentarer og ideer nedenfor!