Michael Cain
0
1029
185
Sosyal ağ, ortak çıkarları paylaşanlar ile bağlantı kurma sanatıdır. Sizin “˜ağ 'sizi başkalarıyla bir arada tutmanıza yardımcı olan ve birçok fayda sağlayan bir topluluktur. Sosyal medya siteleri üzerinden ağ kurmak, İnterneti nasıl kullandığımız konusunda devrim yarattı ve şimdi Web 2.0 dediğimiz şeyin ön saflarında yer alıyor..
Facebook olduğu sosyal ağ İnsanlar olmuştur “Facebooking”?? Yaklaşık 6 yıl boyunca birbirimizi izleyerek, Facebook'u dünya çapında 350 milyondan fazla kullanıcısı olan en çok kullanılan sosyal ağ haline getiriyor. Peki Facebook nasıl çalışır??
Bu yazıda Facebook'un iç çalışmalarını ele alacağım, mimarisini ve ön uç / arka uç altyapısını kapsayan””Facebook'u bir arada tutan somun ve civata.
Facebook Nasıl Çalışıyor??””Ön Uç
Facebook, temel altyapısını oluşturmak için çeşitli hizmetler, araçlar ve programlama dilleri kullanmaktadır. Ön uçta, sunucuları Memcache ile bir LAMP (Linux, Apache, MySQL ve PHP) yığını çalıştırıyor. Bir bilgisayar bilimi uzmanı değil misiniz? Tam olarak ne anlama geldiğine bir göz atalım.
Linux ve Apache
Bu kısım oldukça açıklayıcı. Linux, Unix benzeri bir bilgisayar işletim sistemi çekirdeğidir. Açık kaynak kodlu, özelleştirilebilir ve güvenlik açısından iyi. Facebook, Linux işletim sistemini Apache HTTP Sunucularında çalıştırmaktadır. Apache de ücretsizdir ve kullanılan en popüler açık kaynaklı web sunucusudur..
MySQL
Veri tabanı için Facebook, hızı ve güvenilirliği nedeniyle MySQL kullanıyor. MySQL, veriler büyük bir mantıksal örnek kümesi arasında rastgele dağıtıldığından, öncelikle bir anahtar-değer deposu olarak kullanılır. Bu mantıksal durumlar fiziksel düğümler arasında yayılır ve fiziksel dengeleme seviyesinde yük dengelemesi yapılır..
Özelleştirmeler söz konusu olduğunda, Facebook, tüm verilere atanan bir genel kimliğin atandığı bir özel bölümlendirme şeması geliştirmiştir. Ayrıca kullanıcı bazında ne sıklıkta ve en son verinin olduğuna bağlı olarak özel bir arşivleme şeması vardır. Çoğu veri rastgele dağıtılır.
PHP
Facebook PHP kullanıyor, çünkü geniş bir destek ve aktif bir geliştirici topluluğu ile iyi bir web programlama dili ve hızlı yineleme için iyi. PHP, dinamik olarak yazılmış / yorumlanmış bir betik dilidir.
memcache
Memcache, okuma süresini azaltmak için RAM'deki verileri ve nesneleri önbelleğe alarak dinamik veritabanı tabanlı web sitelerini (Facebook gibi) hızlandırmak için kullanılan bir bellek önbellekleme sistemidir. Memcache, Facebook'un birincil önbelleğe alma şeklidir ve veritabanı yükünü hafifletmeye yardımcı olur.
Bir önbellekleme sistemine sahip olmak, Facebook'un verilerinizi geri çağırırken olduğu kadar hızlı olmasını sağlar. Veritabanına gitmek zorunda kalmazsa, kullanıcı kimliğinizi temel alarak verilerinizi önbellekten alır..
LAMP Kullanmanın Dezavantajları
Facebook, LAMP yığını kullanmanın olumsuz tarafları olduğunu fark etti. Özellikle PHP, büyük web siteleri için mutlaka optimize edilmemeli ve bu nedenle ölçeklendirilmeleri zor. Ayrıca, en hızlı çalıştırma dili değildir ve uzantı çerçevesini kullanmak zordur.
Facebook'un Mühendislik Başkan Yardımcısı Mike Schroepfer, yakın zamanda EmTech @ MIT’de bununla ilgili bir röportaj yaptı.. “Herhangi bir web sitesini ölçeklendirmek zorlu bir iştir,” Schroepfer dedi ki:, “fakat bir sosyal ağı ölçeklendirmenin kendine has zorlukları var.”
Diğer web sitelerinden farklı olarak, sorunu çözmek için daha fazla sunucu ekleyemeyeceğinizi söylemeye devam etti. “birbirine bağlı büyük veri kümesi.” Kullanıcı etkinliği nedeniyle her zaman yeni bağlantılar kuruluyor.
Facebook o kadar hızlı büyüdü ki, genellikle veri tabanı sorgulamaları, önbelleklenmesi ve verilerin depolanması ile ilgili sorunlarla karşı karşıya kaldı. Veritabanları büyük ve büyük oranda karmaşık. Bunu hesaba katmak için, Facebook bir çok açık kaynaklı proje ve arka uç hizmeti başlattı.
Facebook Nasıl Çalışıyor??””Arka ucu
Facebook'un arka uç hizmetleri, C ++, Java, Python ve Erlang dahil olmak üzere çeşitli programlama dillerinde yazılmıştır. Hizmet yaratma felsefeleri şöyledir:
1. Bir hizmet oluşturun gerekirse
2. Hizmetlerin daha kolay oluşturulması için bir çerçeve / araç seti oluşturun
3. Görev için doğru programlama dilini kullanın
Facebook'un tüm açık kaynaklı gelişmelerinin bir listesini burada bulabilirsiniz. Facebook'un geliştirdiği temel araçlardan birkaçını tartışacağım..
Tasarruf (protokol)
Thrift, ölçeklenebilir çapraz dil hizmetleri gelişimi için hafif bir uzaktan prosedür çağrısı çerçevesidir. Tasarruf, C ++, PHP, Python, Perl, Java, Ruby, Erlang ve diğerlerini destekler. Hızlıdır, geliştirme zamanından tasarruf sağlar ve yüksek performanslı sunucular ve uygulamalar üzerinde iş bölümü yaratır.
Yazma (günlük sunucusu)
Scribe, diğer birçok sunucudan gerçek zamanlı olarak yayınlanan günlük verilerini toplamak için kullanılan bir sunucudur. Geniş bir veri dizisini kaydetmek için yararlı olan ölçeklenebilir bir çerçevedir. Thrift üzerine inşa edilmiştir.
Cassandra (veritabanı)
Cassandra, birçok sunucuya yayılmış büyük miktarda veriyi işlemek için tasarlanmış bir veritabanı yönetim sistemidir. Facebook'un Gelen Kutusu Arama özelliğini güçlendirir ve nihai tutarlılık ile yapılandırılmış bir anahtar-değer deposu sağlar.
PHP için HipHop
PHP için HipHop, PHP script kodu için bir kaynak kod transformatörüdür ve sunucu kaynaklarını korumak için yaratılmıştır. HipHop, PHP kaynak kodunu optimize edilmiş C ++ 'ya dönüştürür. Bunu yaptıktan sonra, makine koduna derlemek için g ++ kullanır..
Sonuç
Özetle, bu Facebook. Daha fazla ayrıntıya girmem ancak soruyu yanıtlamam durumunda bu makale kolayca 37 sayfa daha uzun olabilirdi “Facebook nasıl çalışır??”?? Bunun yeterli olacağını düşünüyorum. Tüm özellik ve yeniliklerin geçmişine bakarsanız, Facebook'un arkasındaki ana fikir gerçekten çok temel””insanları bağlı tutmak. Facebook sosyal ağların gücünü anlıyor ve hizmetlerini işinde en iyi tutmak için sürekli yenilik yapıyor.
Bu makaleyi yararlı buldunuz mu? Düşüncelerinizi, yorumlarınızı ve fikirlerinizi aşağıda bırakın!