Η κοινωνική δικτύωση είναι η τέχνη της σύνδεσης με όσους έχουν κοινά συμφέροντα. Το "~network" σας είναι μια κοινότητα που σας βοηθά να σας κρατήσουμε ενωμένους με τους άλλους και προσφέρει πολλά οφέλη. Η δικτύωση μέσω ιστότοπων κοινωνικών μέσων έχει φέρει επανάσταση στον τρόπο με τον οποίο χρησιμοποιούμε το Διαδίκτυο και βρισκόμαστε στην πρώτη γραμμή αυτού που τώρα αποκαλούμε Web 2.0.
Το Facebook είναι κοινωνική δικτύωση. Οι άνθρωποι έχουν "facebook" ο ένας τον άλλον για περίπου 6 χρόνια τώρα, κάνοντας το Facebook το πιο χρησιμοποιημένο κοινωνικό δίκτυο με πάνω από 350 εκατομμύρια χρήστες παγκοσμίως. Αλλά πώς λειτουργεί το Facebook;
Σε αυτό το άρθρο, θα συζητήσω τις εσωτερικές λειτουργίες του Facebook, καλύπτοντας την αρχιτεκτονική του και την υποδομή "frontend / backend" "τα καρύδια και τα μπουλόνια που συγκρατούν το Facebook μαζί.
Πώς λειτουργεί το Facebook; "" Το Front End
Το Facebook χρησιμοποιεί μια ποικιλία υπηρεσιών, εργαλείων και γλωσσών προγραμματισμού για να φτιάξει την βασική του υποδομή. Στο μπροστινό μέρος, οι διακομιστές τους χρησιμοποιούν ένα LAMP (Linux, Apache, MySQL και PHP) στοίβα με Memcache. Δεν είναι ειδικός στον τομέα της πληροφορικής; Ας ρίξουμε μια ματιά στο τι ακριβώς αυτό σημαίνει.
Linux & Apache
Αυτό το μέρος είναι αρκετά αυτονόητο. Το Linux είναι ένας πυρήνας του λειτουργικού συστήματος υπολογιστή που μοιάζει με Unix. Είναι ανοικτού κώδικα, πολύ προσαρμόσιμο και καλό για ασφάλεια. Το Facebook εκτελεί το λειτουργικό σύστημα Linux σε διακομιστές HTTP Apache. Το Apache είναι επίσης δωρεάν και είναι το πιο δημοφιλές web server ανοιχτού κώδικα που χρησιμοποιείται.
MySQL
Για τη βάση δεδομένων, το Facebook χρησιμοποιεί MySQL λόγω της ταχύτητας και της αξιοπιστίας του. Η MySQL χρησιμοποιείται κυρίως ως κατάστημα βασικής αξίας καθώς τα δεδομένα κατανέμονται τυχαία σε ένα μεγάλο σύνολο λογικών περιπτώσεων. Αυτές οι λογικές περιπτώσεις διανέμονται σε φυσικούς κόμβους και η εξισορρόπηση φορτίου γίνεται στο επίπεδο του φυσικού κόμβου.
Όσον αφορά τις προσαρμογές, το Facebook έχει αναπτύξει ένα προσαρμοσμένο πρόγραμμα διαμοιρασμού στο οποίο έχει αντιστοιχιστεί ένα παγκόσμιο αναγνωριστικό σε όλα τα δεδομένα. Έχουν επίσης ένα προσαρμοσμένο σύστημα αρχειοθέτησης που βασίζεται στο πόσο συχνά και πρόσφατα δεδομένα είναι ανά χρήστη. Τα περισσότερα δεδομένα κατανέμονται τυχαία.
PHP
Το Facebook χρησιμοποιεί PHP επειδή είναι μια καλή γλώσσα προγραμματισμού ιστού με εκτενή υποστήριξη και μια ενεργή κοινότητα προγραμματιστών και είναι καλό για ταχεία επανάληψη. Η PHP είναι μια δυναμικά πληκτρολογημένη / ερμηνευμένη γλώσσα δέσμης ενεργειών.
Memcache
Το Memcache είναι ένα σύστημα προσωρινής αποθήκευσης μνήμης που χρησιμοποιείται για την επιτάχυνση δυναμικών δικτυακών τόπων που βασίζονται σε βάσεις δεδομένων (όπως το Facebook) με προσωρινή αποθήκευση δεδομένων και αντικειμένων στη μνήμη RAM για μείωση του χρόνου ανάγνωσης. Το Memcache είναι η κύρια μορφή αποθήκευσης του Facebook και βοηθά στην ανακούφιση του φορτίου της βάσης δεδομένων.
Έχοντας ένα σύστημα προσωρινής αποθήκευσης επιτρέπει στο Facebook να είναι τόσο γρήγορο όσο είναι στην ανάκληση των δεδομένων σας. Αν δεν χρειάζεται να μεταβείτε στη βάση δεδομένων, θα αντληθούν τα δεδομένα σας από την προσωρινή μνήμη βάσει του αναγνωριστικού χρήστη σας.
Μειονεκτήματα στη χρήση της λυχνίας LAMP
Το Facebook συνειδητοποίησε ότι υπάρχουν μειονεκτήματα για τη χρήση της στοίβας LAMP. Ειδικότερα, η PHP δεν είναι κατ 'ανάγκη βελτιστοποιημένη για μεγάλες ιστοσελίδες και ως εκ τούτου δύσκολο να κλιμακωθεί. Επίσης, δεν είναι η γρηγορότερη γλώσσα εκτέλεσης και το πλαίσιο επέκτασης είναι δύσκολο να χρησιμοποιηθεί.
Ο Mike Schroepfer, Αντιπρόεδρος του Engineering του Facebook, έκανε πρόσφατα μια συνέντευξη στο EmTech @ MIT σχετικά με αυτό. "Η κλιμάκωση οποιουδήποτε ιστότοπου αποτελεί πρόκληση", δήλωσε ο Schroepfer, "αλλά η κλιμάκωση ενός κοινωνικού δικτύου έχει μοναδικές προκλήσεις."
Συνέχισε να λέει ότι σε αντίθεση με άλλους δικτυακούς τόπους, δεν μπορείτε απλώς να προσθέσετε περισσότερους διακομιστές για να λύσετε το πρόβλημα, λόγω του "τεράστιου διασυνδεδεμένου dataset" του Facebook. Δημιουργούνται νέες συνδέσεις συνεχώς λόγω της δραστηριότητας των χρηστών.
Το Facebook έχει φτάσει τόσο γρήγορα ώστε συχνά αντιμετωπίζουν προβλήματα σχετικά με τα ερωτήματα βάσης δεδομένων, την προσωρινή μνήμη και την αποθήκευση δεδομένων. Η βάση δεδομένων τους είναι τεράστια και σε μεγάλο βαθμό πολύπλοκη. Για να αντιμετωπίσει αυτό, το Facebook έχει ξεκινήσει πολλά έργα ανοιχτού κώδικα και υπηρεσίες backend.
Πώς λειτουργεί το Facebook; "" Το Back End
Οι υπηρεσίες backend του Facebook είναι γραμμένες σε διάφορες γλώσσες προγραμματισμού όπως C ++, Java, Python και Erlang. Η φιλοσοφία τους για τη δημιουργία υπηρεσιών έχει ως εξής:
1. Δημιουργήστε μια υπηρεσία αν χρειαστεί
2. Δημιουργήστε ένα πλαίσιο / εργαλειοθήκη για ευκολότερη δημιουργία υπηρεσιών
3. Χρησιμοποιήστε τη σωστή γλώσσα προγραμματισμού για την εργασία
Μια λίστα με όλες τις εξελίξεις του ανοιχτού κώδικα του Facebook μπορεί να βρεθεί εδώ. Θα συζητήσω μερικά από τα βασικά εργαλεία που έχει αναπτύξει το Facebook.
Χαμένη (πρωτόκολλο)
Το Thrift είναι ένα ελαφρύ πλαίσιο κλήσεων για απομακρυσμένες διαδικασίες για κλιμακούμενες διαγλωσσικές υπηρεσίες ανάπτυξης. Το Thrift υποστηρίζει C ++, PHP, Python, Perl, Java, Ruby, Erlang και άλλα. Είναι γρήγορο, εξοικονομεί χρόνο ανάπτυξης και παρέχει καταμερισμό εργασίας για εργασίες σε διακομιστές και εφαρμογές υψηλής απόδοσης.
Scribe (διακομιστής καταγραφής)
Το Scribe είναι ένας διακομιστής για τη συγκέντρωση δεδομένων καταγραφής σε ροή σε πραγματικό χρόνο από πολλούς άλλους διακομιστές. Είναι ένα κλιμακωτό πλαίσιο χρήσιμο για την καταγραφή μιας ευρείας σειράς δεδομένων. Είναι χτισμένο στην κορυφή του Thrift.
Cassandra (βάση δεδομένων)
Η Cassandra είναι ένα σύστημα διαχείρισης βάσεων δεδομένων που έχει σχεδιαστεί για να χειρίζεται μεγάλα ποσά δεδομένων που διαδίδονται σε πολλούς διακομιστές. Εξασφαλίζει τη δυνατότητα αναζήτησης του Εισερχόμενου Facebook και παρέχει ένα δομημένο κατάστημα βασικής αξίας με τελική συνέπεια.
HipHop για PHP
Το HipHop για PHP είναι ένας μετασχηματιστής πηγαίου κώδικα για κώδικα PHP script και δημιουργήθηκε για να εξοικονομήσει πόρους διακομιστή. Το HipHop μετατρέπει τον πηγαίο κώδικα PHP σε βελτιστοποιημένη C ++. Μετά από αυτό, χρησιμοποιεί το g ++ για να το μεταγλωττίσει στον κώδικα μηχανής.
συμπέρασμα
Με λίγα λόγια, αυτό είναι το Facebook. Αυτό το άρθρο θα μπορούσε να είναι 37 σελίδες μακρύτερα, αν ήθελα να αναφερθώ σε περισσότερες λεπτομέρειες, αλλά να απαντήσω στην ερώτηση "Πώς λειτουργεί το Facebook;" Νομίζω ότι αυτό θα αρκούσε. Αν κοιτάξετε παρελθόν όλα τα χαρακτηριστικά και τις καινοτομίες, η κύρια ιδέα πίσω από το Facebook είναι πραγματικά πολύ βασική "" κρατώντας τους ανθρώπους συνδεδεμένους. Το Facebook συνειδητοποιεί τη δύναμη της κοινωνικής δικτύωσης και συνεχώς καινοτομεί για να διατηρήσει την υπηρεσία του το καλύτερο στην επιχείρηση.
Βρήκατε αυτό το άρθρο χρήσιμο; Αφήστε τις σκέψεις, τα σχόλια και τις ιδέες σας παρακάτω!