Heim  >  Artikel  >  Teilen fortschrittlicher PHP-Technologie: Warum benötigen Taobao und Tencent eine große Anzahl von Top-Experten, um Websites zu entwickeln, die nicht sehr komplex erscheinen?

Teilen fortschrittlicher PHP-Technologie: Warum benötigen Taobao und Tencent eine große Anzahl von Top-Experten, um Websites zu entwickeln, die nicht sehr komplex erscheinen?

PHPz
PHPzOriginal
2017-04-12 13:47:134159Durchsuche

Warum benötigen Taobao und Tencent eine große Anzahl von Top-Experten, um Websites zu entwickeln, die nicht sehr kompliziert erscheinen? Nehmen Sie Taobao als Beispiel, um Neulingen etwas Populäres zu vermitteln.


Teilen fortschrittlicher PHP-Technologie: Warum benötigen Taobao und Tencent eine große Anzahl von Top-Experten, um Websites zu entwickeln, die nicht sehr komplex erscheinen?


Beginnen wir mit den wichtigsten auf der Seite, die Sie sehen:


【Nach Produkten suchen】Diese Funktion, If Wenn Sie Tausende von Elementen haben, können Sie „select * from tableXX“ verwenden Wobei Titel wie %XX% auf diese Weise erstellt werden können. Aber wenn Sie 10000000000 (10 Milliarden) Produkte haben, kann keine Datenbank diese speichern. Wie suchen Sie? Hier ist eine verteilte Datenspeicherlösung erforderlich. Außerdem kann diese Suche nicht direkt Daten aus der Datenbank abrufen und es muss eine Suchmaschine verwendet werden (vereinfacht ausgedrückt sind Suchmaschinen schneller). Okay, jetzt, da ich das Produkt gefunden habe, bin ich fertig und kann ich eines kaufen? Es ist noch früh. Wessen Produkte erscheinen auf der ersten Seite? Hier ist ein äußerst komplexer Sortieralgorithmus erforderlich. Wenn wir auf der Grundlage Ihres Kaufverhaltens einige personalisierte Empfehlungen abgeben könnten, würde das ausreichen, damit ein Haufen großartiger Algorithmen-Ingenieure ein Leben lang arbeiten könnte.


【Produktdetails】Wenn Sie nach Abschluss der Suche sehen, woran Sie interessiert sind, klicken Sie, um die Produktseite anzuzeigen. Diese Seite enthält die Produktattribute, eine detaillierte Beschreibung, eine Bewertung usw. Verkäuferinformationen usw. Die Anzahl der täglichen Impressionen dieser Seite beträgt mehr als 3 Milliarden. Wenn Sie jedoch eine Website mit 10 Besuchern pro Tag erstellen, werden Sie den Druck auf dem Server überhaupt nicht spüren Bei 3 Milliarden gibt es viele Probleme, die gelöst werden müssen. Erstens können diese Anforderungen nicht direkt auf die Datenbank übertragen werden, da sie dem Druck von 3 Milliarden pro Tag standhalten und kein Glücksgefühl mehr vorhanden ist In diesem Fall wird ein großflächig verteilter Cache verwendet. Alle Verkäuferinformationen, Bewertungsinformationen und Produktbeschreibungen werden aus dem Cache abgerufen. Noch extremere Informationen wie „die Anzahl der Aufrufe des Produkts“ müssen bei jedem Öffnen der Seite aktualisiert werden . Sie haben vermutet, dass es aus dem Cache erhältlich ist. Taobao hat es geschafft und die gesamten Produktdetails sind im Cache.


[Produktbilder]Ein Produkt hat 5 Bilder, und die Produktbeschreibung enthält weitere Bilder , Taobao hat Wie viele Bilder müssen Sie speichern? Mehr als 10 Milliarden. Wenn sich auf Ihrer Festplatte so viele Bilder befinden, wie finden Sie dann eines davon? Wenn Ihr Klassenkamerad Ihre Bilder kopieren möchte, wie viele Festplatten muss er vorbereiten? Wie viel Bandbreite müssen Sie konfigurieren? Kann Ihre Netzwerkkarte damit umgehen? Wie lange dauert es, bis Sie es ihm kopieren? In dieser Größenordnung gibt es leider keine kommerziellen Lösungen auf dem Markt. Letztendlich müssen wir selbst ein Speichersystem entwickeln. Wenn Sie von Googles GFS gehört haben, nennen wir es TFS. Tencent verfügt übrigens auch über ein solches System, auch TFS genannt.


[Werbesystem]Es gibt viele Werbungen auf Taobao, was, wissen Sie nicht? Das zeigt, dass unsere Werbung ziemlich gut ist, aber viele Leute denken nicht, dass es sich um Werbung handelt. Wie können Verkäufer bieten, um Werbeflächen auf Taobao zu kaufen? Wie werden Anzeigen angezeigt? Wie prüfe ich die Werbewirkung? Dies ist ein weiteres System mit ausgefeilten Algorithmen.


[BOSS-System]Wie verwalten Taobao-Mitarbeiter ein so riesiges System, wie zum Beispiel die plötzliche Ankündigung eines bestimmten Alles funktioniert eines Autors verschwanden aus Taobao. Von der Datenbank über die Suchmaschine bis hin zum Werbesystem verschwanden alle relevanten Daten innerhalb weniger Minuten, was ein hervorragendes Back-End-Supportsystem erforderte.


[Betriebs- und Wartungssystem]Wie viele Server werden Ihrer Meinung nach benötigt, um eine so große Website zu unterstützen? Tausende Einheiten? Das ist ein Bruchteil. Welches Betriebssystem wird bei so vielen Servern darauf bereitgestellt und kann der Kernel des Betriebssystems optimiert werden? Kann die Java Virtual Machine optimiert werden? Gibt es Spielraum, um die Leistung des Kommunikationsmoduls herauszuholen? Wie wird die Software bereitgestellt? Wie kann ich einen Rollback durchführen, wenn etwas schief geht? Haben Sie das Betriebssystem installiert und optimiert? Wurden Sie von 360 ausgetrickst oder sind Sie abgestürzt? Hier gibt es viele Türen.


Zusätzlich zu den oben genannten gibt es natürlich viele, viele Technologien, die umgesetzt werden müssen. Es ist nicht so, dass diese Dinge so komplex sind, dass sie von klein bis groß aufgebaut werden müssen, und es erfordert auch Neulinge voller Neugier. Sie sollten denken, dass ich Hintergedanken habe.



forecho:


Ich habe gerade einen sehr interessanten Artikel gelesen, der es sehr deutlich erklärt - „Du hast es gerade auf Taobao gekauft. Habe etwas.“ 》


Du merkst, dass das chinesische Neujahr bald kommt, also möchtest du einen Pullover für deine Freundin kaufen, also öffnest du http://www.taobao.com. Zu diesem Zeitpunkt fragt Ihr Browser zunächst den DNS-Server ab und wandelt http://www.taobao.com in eine IP-Adresse um. Zunächst werden Sie jedoch feststellen, dass die konvertierte IP-Adresse wahrscheinlich unterschiedlich ist, wenn Sie sich in verschiedenen Regionen oder in unterschiedlichen Netzwerken befinden (Telecom, China Unicom, China Mobile). Dazu gehört zunächst der erste Schritt des Lastausgleichs, nämlich Wenn DNS die Domäne auflöst Namen eingeben, wird Ihr Zugang verschiedenen Eingängen zugewiesen und versucht sicherzustellen, dass der Eingang, den Sie besuchen, der schnellste unter allen Eingängen ist. (Dies unterscheidet sich vom später beschriebenen CDN).


Sie haben über diesen Eingang erfolgreich auf die tatsächliche Eingangs-IP-Adresse von http://www.taobao.com zugegriffen. Zu diesem Zeitpunkt generieren Sie einen PV, nämlich Page View, Seitenbesuch. Das gesamte tägliche PV-Volumen jeder Website ist ein wichtiger Indikator zur Beschreibung der Größe einer Website. Der PV des gesamten Taobao-Netzwerks liegt an Wochentagen (Zeiträumen ohne Werbung) zwischen 1,6 und 2,5 Milliarden. Gleichzeitig werden als unabhängiger Benutzer alle Seiten, die Sie dieses Mal auf Taobao besuchen, als UV (Unique) gezählt Besucher-Benutzerzugang). Das kürzlich berüchtigte http://12306.cn hat ein tägliches Spitzen-PV-Volumen von rund 1 Milliarde, aber sein UV-Volumen ist weit weniger als zehnmal so hoch wie das von Taobao. Ich glaube, jeder wird den Grund dafür kennen.


Da die Anzahl der Personen, die gleichzeitig http://www.taobao.com besuchen, zu groß ist, ist selbst der Server, der das generiert, zu groß Die Taobao-Homepage kann nicht nur eine sein. Möglicherweise gibt es Hunderte oder sogar Tausende von Servern, die nur zum Erstellen der Homepage von http://www.taobao.com verwendet werden. Die Aufgabe, während Ihres Besuchs eine Seite für Sie zu erstellen, wird daher einem der Server zugewiesen. Dieser Prozess muss fair, gerecht und gleichmäßig sein (die Anzahl der Benutzer auf jedem dieser Hunderte oder Tausende von Servern muss ungefähr gleich sein). Dieser sehr komplexe Prozess wird von mehreren Systemen durchgeführt, von denen das kritischste LVS (Linux) ist Virtual Server), eines der beliebtesten Lastausgleichssysteme der Welt, wurde von Dr. Zhang Wensong entwickelt, der derzeit bei Taobao arbeitet.


Nach einer Reihe komplexer logischer Operationen und Datenverarbeitung wurde der HTML-Inhalt für die Taobao-Homepage, die Ihnen dieses Mal angezeigt wird, erfolgreich generiert. Wer sich ein wenig mit dem Web-Frontend auskennt, sollte wissen, dass der Browser im nächsten Schritt die auf der Seite verwendeten CSS-, JS-, Bilder-, Skript- und Ressourcendateien lädt. Relativ wenige Schüler wissen jedoch möglicherweise, dass die Anzahl der Ressourcen, die Ihr Browser gleichzeitig unter demselben Domänennamen laden kann, begrenzt ist. Beispielsweise verfügt IE6-7 über zwei Ressourcen, IE8 über sechs Ressourcen und jede Version von Chrome unterschiedlich. Normalerweise 4-6. Ich habe gerade einen Blick auf die Homepage von Taobao geworfen und muss 126 Ressourcen laden. Das Laden einer so geringen Anzahl gleichzeitiger Verbindungen dauert natürlich lange. Daher verteilen Front-End-Entwickler die oben genannten Ressourcendateien häufig unter mehreren Domänennamen, umgehen diese Browser-Einschränkung getarnt und bereiten sich auch auf die folgende CDN-Arbeit vor.


Unzuverlässigen Nachrichten zufolge erreichte der Zugriffsverkehr von Taobao auf dem Höhepunkt von Double Eleven einen Höchstwert von 871 GB/S. Diese Zahl bedeutet, dass 1,78 Millionen Heimbreitband mit 4 MB Bandbreite erforderlich sind, um es erschwinglich zu machen, und dass es durchaus in der Lage ist, die gesamte Internetbandbreite einer kleinen und mittelgroßen Stadt zu überfordern. Es ist also offensichtlich, dass dieser Zugriffsverkehr nicht zusammen konzentriert werden kann. Und jeder weiß, dass der gegenseitige Zugriff zwischen verschiedenen Netzwerken (Telecom, China Unicom usw.) in verschiedenen Regionen sehr langsam sein wird, aber der Zugriff auf Taobao ist selten langsam. Dies ist CDN (Content Delivery Network), die Rolle des Inhaltsverteilungsnetzwerks. Taobao hat im ganzen Land Dutzende oder Hunderte von CDN-Knoten eingerichtet und stellt mit einigen Mitteln sicher, dass die von Ihnen besuchten Orte (hier hauptsächlich JS, CSS, Bilder usw.) die CDN-Knoten sind, die Ihnen am nächsten sind, und stellt so sicher Dieser große Datenverkehr wird überall verteilt. Greifen Sie auf den Beschleunigungsknoten zu.


Es entsteht ein Problem, das heißt, wenn ein Verkäufer ein neues Baby freigibt und mehrere neue Babybilder hochlädt, wie stellt Taobao dann sicher, dass diese Bilder werden in CDN-Knoten im ganzen Land synchronisiert, damit Benutzer sie nutzen können? Dies erfordert eine große Anzahl von Technologien zur Inhaltsverteilung und -synchronisierung. Um solche Probleme zu lösen, hat Taobao das verteilte Dateisystem TFS (Taobao File System) entwickelt.


Okay, jetzt haben Sie endlich die Taobao-Homepage geladen, also haben Sie wie gewohnt das Wort „Pullover“ in das Suchfeld auf der Homepage eingegeben Drücken Sie die Eingabetaste, dann generieren Sie ein weiteres PV, und dann beginnt das Hauptsuchsystem von Taobao, Sie zu bedienen. Es führt zunächst eine Wortsegmentierungsoperation für den von Ihnen eingegebenen Inhalt auf der Grundlage einer Wortsegmentierungsdatenbank durch. Wie wir alle wissen, basiert Englisch auf Wörtern und Wörter werden durch Leerzeichen getrennt, während Chinesisch auf Wörtern basiert und alle Wörter in einem Satz verbunden werden können, um eine Bedeutung zu beschreiben. Zum Beispiel der englische Satz I bin ein Student, auf Chinesisch bedeutet es: „Ich bin ein Student“. Durch Leerzeichen kann der Computer leicht erkennen, dass „student“ ein Wort ist, aber er kann nicht leicht verstehen, dass die Wörter „learn“ und „生“ zusammen ein Wort darstellen. Das Aufteilen der chinesischen Zeichenfolge in sinnvolle Wörter ist die Segmentierung chinesischer Wörter, die manche auch als Wortsegmentierung bezeichnen. Ich bin Student und das Ergebnis des Partizips lautet: Ich bin Student.


Nach der Wortsegmentierung müssen Sie auch Ihre Einkaufsabsichten anhand der von Ihnen eingegebenen Suchbegriffe analysieren. Benutzer haben bei der Suche häufig die folgenden Arten von Absichten: (1) Browsing-Typ: Es gibt kein klares Einkaufsziel und keine klare Kaufabsicht. Benutzer sind beim Einkaufen eher beiläufig und emotional. Abfrage, zum Beispiel: „Ranking der Top 10 Parfums 2010“, „Beliebte Pullover 2010“, „Wie viele Zippo-Typen gibt es?“ (2) Abfragetyp: Es liegt eine bestimmte Einkaufsabsicht vor, die sich widerspiegelt in den Anforderungen an Attribute. Abfragebeispiel: „Altentaugliches Mobiltelefon“, „500 Yuan „Uhr“; (3) Vergleichstyp: Die Kaufabsicht wurde auf bestimmte Produkte eingegrenzt, zum Beispiel: „Nokia E71 E63“, „akg k450 px200“; Wenn Sie sich auf die Suche nach einem bestimmten Objekt konzentrieren: „Nokia N97“, „IBM T60“, werden bei der Hauptsuche ganz andere Ergebnisse angezeigt Das Hauptsuchsystem listet die Suchergebnisse basierend auf den oben genannten und komplexeren Bedingungen auf, die alle von mehr als tausend Suchservern vervollständigt werden, und dann starten Sie einen nach dem anderen. Klicken Sie, um das gesuchte Produkt anzuzeigen Wer häufig online einkauft, kann die Produktdetailseite zu diesem Zeitpunkt auch dann noch überprüfen, wenn der Händler sie mehrmals geändert hat Ziel ist es, Händler daran zu hindern, ihre Versprechen in den Produktdetails zu verweigern. Offensichtlich ist es nicht einfach, die Produktdetails von Dutzenden Milliarden Transaktionen pro Jahr zu speichern und schnell abzurufen. Dazu gehört auch die Zusammenarbeit mehrerer Systeme, von denen das wichtigere Tair ist, eine von Taobao entwickelte verteilte KV-Speicherlösung.


Unabhängig davon, ob Sie tatsächlich eine Transaktion durchführen, wird Ihr Zugriffsverhalten vom System für die anschließende Geschäftslogik und Datenanalyse zuverlässig aufgezeichnet. Unter diesen Datensätzen sind Zugriffsprotokolldatensätze einer der wichtigsten. Wir haben jedoch zuvor erfahren, dass diese Zugriffe auf viele verschiedene Server in verschiedenen Regionen verteilt sind und diese Protokolldatensätze aufgrund der großen Anzahl von Benutzern sehr umfangreich sind der TB-Wert. Sehr normal. Um diese Protokolldaten schnell und zeitnah zu übertragen und zu synchronisieren, hat Taobao TimeTunnel entwickelt, der für die Echtzeit-Datenübertragung verwendet und zur Berechnung von Berichten und anderen Vorgängen an das Back-End-System übergeben wird.


Ihre Browserdaten, Transaktionsdaten und viele andere Datensätze bleiben erhalten.


Die auf Taobao gespeicherten historischen Daten können leicht zehn oder mehr PB erreichen (1PB=1024TB=1048576GB). Durch die extreme Komprimierung von 1:120 durch das Taobao-System werden solch große Datenmengen im Data Warehouse von Taobao gespeichert. Und es analysiert und extrahiert weiterhin über ein sehr großes Datensystem namens Yunlai, das aus mehr als 2.000 Servern besteht.


Anhand dieser Daten kann Taobao erkennen, wer Sie sind, was Sie mögen, wie alt Ihr Kind ist und ob Sie in einer Beziehung sind. , welche Art von Getränken mögen Leute, die gerne World of Warcraft spielen usw., sowie eine große Menge an Informationen wie die Einzelhandelssituation verschiedener Branchen, den Aufstieg und Fall verschiedener Waren und so weiter.


Nachdem ich so viel gesagt habe, habe ich tatsächlich nur einige der Tausenden von Systemen beschrieben, die auf Taobao laufen. Selbst wenn Sie die Homepage von Taobao nur einmal besuchen, übersteigt die Technologie- und Systemgröße Ihre Vorstellungskraft. Sie sind die Idee von mehr als 2.000 Top-Ingenieuren von Taobao, darunter Yangtze River Scholars und den Gewinnern des National Science and Technology Supreme Award Namen. Ebenso sind die Geschäftssysteme von Baidu, Tencent usw. keineswegs einfacher als Taobao. Was Sie wissen müssen, ist, dass die Internetprodukte, die Sie täglich verwenden, einfach und benutzerfreundlich erscheinen mögen, aber dahinter stecken unvorstellbare Weisheit und Arbeit.

Empfohlene verwandte Artikel:

  1. Praktische Optimierung der Leistung von PHP-Websites: Vorgehensweise zur Optimierung der Ladegeschwindigkeit der Taobao-Homepage

  2. Gibt es ein günstigeres PHP-Video-Tutorial als dieses? PHP-Tutorialreihe für die chinesische Website „Dugu Jiujian“

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn