Michael Cain
0
2220
430
Društveno umrežavanje umjetnost je povezivanja s onima koji imaju zajedničke interese. vaš “˜mreža 'je zajednica koja vam pomaže da stojite ujedinjeni s drugima i nudi brojne prednosti. Umrežavanje putem web lokacija društvenih medija promijenilo je način na koji koristimo internet i na čelu je onoga što danas nazivamo Web 2.0.
Facebook je društvene mreže. Ljudi su bili “facebooking”?? jedni druge već oko 6 godina, čineći Facebook najkorištenijom društvenom mrežom s preko 350 milijuna korisnika širom svijeta. Ali kako funkcionira Facebook?
U ovom ću članku raspravljati o unutarnjem djelovanju Facebooka, pokrivajući njegovu arhitekturu i frontend / backkend infrastrukturu””matice i vijci koji drže Facebook zajedno.
Kako funkcionira Facebook?””Prednji kraj
Facebook koristi razne usluge, alate i programske jezike za sastavljanje svoje osnovne infrastrukture. Na prednjem kraju njihovi poslužitelji pokreću LAMP (Linux, Apache, MySQL i PHP) skup sa Memcacheom. Nije stručnjak za informatiku? Pogledajmo točno što to znači.
Linux i Apache
Ovaj je dio prilično sam razumljiv. Linux je jezgro operacijskog sustava računala nalik Unixu. To je otvoreni izvor, vrlo prilagodljiv i dobar za sigurnost. Facebook pokreće Linux operativni sustav na Apache HTTP poslužiteljima. Apache je također besplatan i najpopularniji je otvoreni izvorni web poslužitelj.
MySQL
Za bazu podataka, Facebook koristi MySQL zbog njegove brzine i pouzdanosti. MySQL se prvenstveno koristi kao pohrana ključ-vrijednost, jer se podaci nasumično raspodjeljuju među velikim nizom logičkih instanci. Te se logičke instance šire na fizičke čvorove, a uravnoteženje opterećenja vrši se na razini fizičkog čvora.
Što se tiče prilagođavanja, Facebook je razvio shemu prilagođene particije u kojoj je svim podacima dodijeljen globalni ID. Oni također imaju prilagođenu shemu arhiviranja koja se temelji na učestalosti i nedavnih podataka o korisniku. Većina podataka distribuira se nasumično.
PHP
Facebook koristi PHP jer je dobar web programski jezik s opsežnom podrškom i aktivnom zajednicom programera te je dobar za brzu iteraciju. PHP je dinamički tipkani / interpretirani skriptni jezik.
predmemorija
Memcache je memorijski sustav za spremanje memorija koji se koristi za ubrzavanje dinamičnih web stranica vođenih baza podataka (poput Facebooka) keširanjem podataka i objekata u RAM-u radi smanjenja vremena za čitanje. Memcache je glavni oblik Facebooka predmemoriranja i pomaže u ublažavanju opterećenja baze podataka.
Postojanje sustava za predmemoriranje omogućava Facebooku da bude brz kao i prilikom opoziva vaših podataka. Ako ne mora ići u bazu podataka, samo će dohvatiti vaše podatke iz predmemorije na temelju vašeg korisničkog ID-a.
Nedostaci korištenja LAMP-a
Facebook je shvatio da postoje nedostaci korištenja LAMP staka. Značajno je da PHP nije nužno optimiziran za velike web stranice i stoga ih je teško mjeriti. Također, to nije najbrži izvršni jezik, a okvir za proširenje je teško koristiti.
Mike Schroepfer, Facebook potpredsjednik strojarstva, nedavno je održao intervju na EmTech @ MIT-u u vezi s tim. “Skaliranje bilo koje web stranice predstavlja izazov,” Rekao je Schroepfer, “ali skaliranje društvene mreže ima jedinstvene izazove.”
Nastavio je da za razliku od drugih web stranica ne možete jednostavno dodati više poslužitelja da biste riješili problem zbog Facebooka “ogroman međusobno povezanih podataka.” Stalno se stvaraju nove veze zbog aktivnosti korisnika.
Facebook je tako brzo porastao da su često suočeni s pitanjima u vezi s upitima u bazama podataka, spremanjem podataka i pohranom podataka. Njihova je baza podataka ogromna i uglavnom složena. Da bi to objasnio, Facebook je pokrenuo mnoštvo projekata otvorenog koda i sigurnosnih usluga.
Kako funkcionira Facebook?””Stražnji kraj
Facebook pomoćne usluge napisane su u raznim programskim jezicima, uključujući C ++, Java, Python i Erlang. Njihova filozofija za stvaranje usluga je sljedeća:
1. Stvorite uslugu Ako je potrebno
2. Stvorite okvir / skup alata za lakše stvaranje usluga
3. Za zadatak koristite pravi programski jezik
Popis cjelokupnog razvoja Facebooka s otvorenim kodom možete pronaći ovdje. Raspravljat ću o nekoliko bitnih alata koje je Facebook razvio.
Isplativost (protokol)
Thrift je lagan okvir za daljinsko pozivanje za razvoj skalabilnih usluga na više jezika. Thrift podržava C ++, PHP, Python, Perl, Java, Ruby, Erlang i druge. To je brzo, štedi vrijeme razvoja i omogućuje podjelu rada na visoko performansnim poslužiteljima i aplikacijama.
Scribe (dnevnik poslužitelja)
Scribe je poslužitelj za objedinjavanje podataka dnevnika koji se u stvarnom vremenu struji s mnogih drugih poslužitelja. To je skalabilan okvir koristan za bilježenje širokog niza podataka. Izgrađen je na vrhu Thrifta.
Cassandra (baza podataka)
Cassandra je sustav za upravljanje bazama podataka koji je dizajniran za obradu velikih količina podataka raspoređenih na mnogim poslužiteljima. Omogućuje Facebookovu značajku pristigle pošte i nudi strukturiranu trgovinu ključeva i vrijednosti s mogućom dosljednošću.
HipHop za PHP
HipHop za PHP transformator je izvornog koda za PHP skript kod i stvoren je za spremanje resursa poslužitelja. HipHop pretvara PHP izvorni kod u optimizirani C ++. Nakon što to učini, koristi g ++ za sastavljanje u strojni kod.
Zaključak
Ukratko, to je Facebook. Ovaj članak bi lako mogao biti duži za 37 stranica ako bih htio detaljnije detaljnije odgovoriti na pitanje “Kako funkcionira Facebook?”?? Mislim da će ovo biti dovoljno. Ako proučite sve značajke i inovacije, glavna ideja koja stoji iza Facebooka je zaista vrlo osnovna””držeći ljude povezane. Facebook shvaća snagu društvenih mreža i stalno inovira kako bi njihovu uslugu održao najboljom u poslu.
Je li vam ovaj članak bio koristan? Ostavite svoje misli, komentare i ideje u nastavku!