Heim > Backend-Entwicklung > PHP-Tutorial > Da JSP für große Websites geeignet ist, warum ist die Homepage von Baidu immer noch in PHP geschrieben?

Da JSP für große Websites geeignet ist, warum ist die Homepage von Baidu immer noch in PHP geschrieben?

PHP中文网
Freigeben: 2016-07-30 14:02:13
Original
4836 Leute haben es durchsucht

Im Allgemeinen übertrifft Java PHP in Bezug auf die Technologie bei weitem. Unabhängig von der Kostenfrage (die für große Unternehmen erschwinglich sein sollte): Warum ist die Homepage von Baidu nicht in JSP geschrieben? Muss die Echtzeitsuche nicht verteilt werden? Und einige Ergebnisse werden beim Tippen automatisch geladen.

Inhalt der Antwort:

Können Sie dieses Buch verschicken?
Ich möchte diesen Herausgeber blockieren. Abführmittel.
Lassen Sie uns zunächst sehen, ob die Baidu-Homepage wirklich PHP verwendet, baidu,com/index.php kann zweifellos geöffnet werden, aber wir wissen auch, dass Routing-Einstellungen auf der Ebene der HTTP-Dienstsoftware festgelegt werden können, sodass diese Adresse tatsächlich in andere Inhalte analysiert werden kann, z. B. statische Dateien oder andere CGI-verarbeitete Ressourcen wie Pseudo Die statische Implementierung besteht darin, HTML an andere dynamische Ressourcen wie PHP weiterzuleiten (unter Berücksichtigung des Cachings kann es sich auch um statische Ressourcen handeln), sodass allein anhand dieser Tatsache nicht festgestellt werden kann, ob es sich um PHP handelt.
Also habe ich Baidu mit Chrome geöffnet,

Da JSP für große Websites geeignet ist, warum ist die Homepage von Baidu immer noch in PHP geschrieben?

Da JSP für große Websites geeignet ist, warum ist die Homepage von Baidu immer noch in PHP geschrieben?

Die Informationen, die wir sehen müssen, sind der rot umrahmte Inhalt. Zuerst sehen wir Sever Der Wert ist auf bfe/1.0.8.14 eingestellt. Das Serverfeld im http-Header ist im Allgemeinen der Name des http-Servers. Zum Beispiel:
Da JSP für große Websites geeignet ist, warum ist die Homepage von Baidu immer noch in PHP geschrieben?

Qnginx könnte eine magische Modifikation von Nginx sein. Baidus BFE ist entweder ein eigenes Produkt oder es hat möglicherweise den Quellcode von Nginx oder ähnlichem geändert. Siehe dazu Welcher Server wird auf Baidus Homepage verwendet?
Dann werfen wir einen Blick auf den in setcookie gesetzten Cookie-Inhalt. Wir wissen, dass die von PHP selbst gesetzten Cookies im Allgemeinen Felder haben, die den folgenden ähneln:
Da JSP für große Websites geeignet ist, warum ist die Homepage von Baidu immer noch in PHP geschrieben?

Werfen wir jedoch einen Blick auf Baidus:
Da JSP für große Websites geeignet ist, warum ist die Homepage von Baidu immer noch in PHP geschrieben?

Es gibt viele Das nach Baidu benannte Token-Feld verwendet nicht die Cookies, die mit PHP geliefert werden, und es sieht nicht wie die Cookies aus, die mit vielen Sprachen/Frameworks geliefert werden, worauf später noch eingegangen wird.
Sehen wir uns noch einmal ein Feld in der Anfrage auf Baidus Homepage an:
Da JSP für große Websites geeignet ist, warum ist die Homepage von Baidu immer noch in PHP geschrieben?

HPHP, das ist HHVM

oder in HTTP Wenn Sie den Header oder HHVM auf Serverebene ändern möchten (Baidu wird wahrscheinlich nicht so faul sein, etwas zu ändern, das nicht vertraulich ist), dann sollten Sie PHP verwenden. Erklären wir also, warum wir nicht das Standard-Cookie verwenden (das Standard-Cookie hat das PHPSESSID-Feld)

session_start()
Nach dem Login kopieren

Facebook ist immer noch in PHP geschrieben, ebenso wie Sina Weibo und Tencent. Verwenden Sie immer noch Python auf Zhihu? Unabhängig davon, ob die im Titelbeitrag veröffentlichten Informationen korrekt sind oder nicht
Das PHP auf der Baidu-Homepage dient nur der Darstellung von Ergebnissen und die Suchmaschine selbst sollte nicht auf PHP basieren. Ich werde es abwischen. .
Als ich als Baidu-Mitarbeiter mitten in der Nacht diese Frage sah, wurde ich sofort voller Energie. .
Der eine lächelt und der andere kann nicht anders, als sich tief in seinem Herzen zu beschweren. .
Sind Sie Student? Oder dass ich noch nie mit sehr großen Projekten in Berührung gekommen bin. Wenn Sie die Möglichkeit haben, zu einem großen Unternehmen zu gehen und Kontakt aufzunehmen, werden Sie verstehen, dass diese Frage wirklich dumm ist. .
Das Unternehmen hat in letzter Zeit immer mehr Bösewichte angezogen, deshalb bleibe ich anonym, weil ich zu faul bin, mit Leuten zu streiten.

Zuallererst kann PHP Seiten rendern, aber wenn Sie jemals an einem Framework gearbeitet haben, sollten Sie wissen, dass diese URL-Anfrage verteilt wird und es überall viel Raum für unabhängige Operationen gibt verteilt.

Erstens ist die Zwischenverteilung definitiv nicht so einfach, wie Sie denken. Es gibt jeden Tag Hunderte Millionen Anfragen, und es wird auf jeden Fall verschiedene Caches, Cluster usw. geben, die über das ganze Land verteilt sind.
Außerdem muss die Startseite auf C-Optimierung umgestellt werden, um das Laden zu beschleunigen.

Wenn Sie dann eintreten, wird es an den entsprechenden Abrufcluster verteilt.
Der Code dafür ist C, warum? Weil ich es selbst geändert habe. .
Dies ist in viele Module unterteilt. .

Zum Beispiel ist der Prozess von der Eingabe eines Wortes in das Suchfeld bis zum Abruf der Daten tatsächlich sehr einfach. .

Der Crawler crawlt die Daten und erstellt dann einen Index basierend auf den Daten.
Das Problem besteht darin, dass die Komplexität, bis ins kleinste Detail das Beste zu erreichen, sehr hoch ist.

Wie können Sie bei der Segmentierung von Wörtern genauer sein? Direkt eine Open-Source-Bibliothek nutzen? Willst du mich verarschen? Es ist am besten, ein professionelles Team dafür zu haben, und es ist stärker forschungsorientiert, daher müssen wir dafür viele Doktoranden und Doktoranden rekrutieren.
Okay, jetzt, wo wir die Wörter geteilt haben, müssen wir den Index besorgen.
Wie findet man innerhalb von Millisekunden die entsprechenden Daten unter Hunderten von Milliarden Ergebnissen?
Und sie dann sortieren und die vom Benutzer gewünschten Ergebnisse zurückgeben? Klingt kompliziert?

Eigentlich ist es nicht schwierig, den Reißverschluss nach unten zu schließen und einen guten Cache zu erstellen. Tatsächlich sind 90 % der Suchanfragen 10 % der Wörter.
Die Datenmenge ist jedoch etwas groß, sodass möglicherweise nicht der gesamte Index in den Speicher passt und ein Teil davon auf der Festplatte abgelegt wird. Das Problem ist, dass die Festplatte langsam ist etwas Optimierung?

Wie wählt man dann das für den Benutzer am besten geeignete aus? Es gibt viele Optimierungspunkte in dieser Strategie, und wenn Sie es gut machen, werden Sie eine Gruppe von Leuten gewinnen.

Das ist nur ein Abruf.
Was Crawler betrifft, übersteigen die Daten, die wir jeden Tag durchsuchen, die Vorstellungskraft des Normalbürgers. Durch effizientes Crawlen können zuverlässigere Daten für den Abruf bereitgestellt werden.
Das wird wieder von einer Menge Leuten gemacht.

Aber das Problem kommt wieder. Sie finden, dass die Datenmenge zu groß ist. Wie kommt man besser zurecht?
Dies alles erfordert nicht viel Personal. .

Oh, und Fengchao, dieser wird jeden Tag von dir gehackt.
Weil es um Geld geht, wird viel Manpower in verschiedene Strategien und Datenoptimierung investiert.

Also, ich habe deine Frage gesehen. . . .
Ich denke wirklich, was zum Teufel, lasst uns mit dem nächsten supergroßen Projekt beginnen.
Sie werden feststellen, dass es grundsätzlich eine Sprache gibt, die zu einem bestimmten Zeitpunkt am besten für Sie geeignet ist. Verwenden Sie sie also einfach.
Baidu hat am Anfang nur wenige Leute, und es ist gut, wenn es Hunderttausende von Benutzern hat. Gehen Sie einfach schnell auf eine Website und nutzen Sie sie, ohne an Effizienz zu denken. Back-End-Indizierung: Als es zu Beginn noch kein Hadoop gab, gab es immer Probleme mit der Maschinenwartung, daher habe ich jeden Tag ein paar Leute zur manuellen Wartung geschickt.
Dann stellte ich später fest, dass PHP nicht einfach zu verwenden war, also dachte ich über eine Optimierung nach.
Wie auch immer, das Unternehmen ist etabliert und das Geld ist verdient. Wenn Sie eine Menge talentierter Leute einstellen, die hart arbeiten, werden Sie auf jeden Fall eine Lösung finden.

Natürlich sind Suchmaschinen immer noch sehr anspruchsvoll, da verschiedene Frameworks und Cloud Computing ausgereift sind. Damals gab es tatsächlich große technische Hürden.
Mindestens Dutzende Male schwieriger als der Aufbau einer Website.

Aber die Sprache ist definitiv nicht das größte Problem. .

Sie werden feststellen, dass Sie hier immer noch Probleme mit der Sprache haben. Ist das nicht dumm? Die von PHP bereitgestellte Datenbankschnittstelle ist nicht einheitlich. . . . . . Vor wie vielen Jahren. . . Es wurde gelöst, sobald pdo herauskam. Viele der vom Autor geäußerten Meinungen sind einseitig und veraltet. Generell ist PHP mittlerweile der dominierende Akteur im WEB-Geschäft. Obwohl JSP in großen Unternehmen im Allgemeinen bereits mithalten kann Aspekte. außerdem. . . Wer hat Ihnen gesagt, dass die Suchmaschine von Baidu PHP ist? . . Die Homepage ist nur eine Hautschicht, egal, was Sie zum Schreiben verwenden, es wird keinen großen Unterschied machen. Natürlich ist die Suche verteilt, aber sie wird als Dienst bereitgestellt und hat nichts mit der Homepage zu tun. Für das automatische Laden einiger Ergebnisse sendet JS eine Anfrage und stellt den Hintergrund ebenfalls als Dienst bereit. Was die Backend-Dienste betrifft, weiß ich nicht, wie Baidu sie implementiert. Es stehen verschiedene Sprachen und Lösungen zur Auswahl. Wählen Sie einfach die aus, die zu Ihnen passt. Es gibt zwar viele Suchlösungen, die auf Java basieren, aber das bedeutet nicht, dass es nicht ohne Java geht. Es gibt keine Upgrade- oder Ersatzbeziehung zwischen PHP und JSP. Man kann nur sagen, dass jeder seine eigenen Stärken hat. Der Grund, warum PHP schwach zu sein scheint, ist, dass die meisten Leute, die PHP in China schreiben, schwach sind. Selbst wenn Facebook vor hhvm auf PHP umsteigt, kann es problemlos 1 Milliarde Anfragen pro Tag unterstützen und es werden nicht viele Server verwendet. Es gibt keine spezifischen Daten, aber einige Leute spekulieren, dass die PHP-Standalone-QPS von FB zu dieser Zeit etwa 3000-5000 betrug, was sich nicht um eine Größenordnung von der JSP-Standalone-QPS unterschied. Die Spitzenleistung eines einzelnen PHP-Servers in einem Unternehmen, für das ich arbeite, liegt bei etwa 700 qps. Dies ist hauptsächlich auf das verwirrende Schreiben von Code und die schlechte Leistung zurückzuführen. Die Freigabe von Taobao zeigt, dass die Einzelmaschinen-QPS in einigen PHP-Geschäftsclustern nur 200–300 beträgt. Das kann nur bedeuten, dass es sich um ein menschliches Problem handelt. Abschließend empfiehlt es sich, weitere Artikel zum Thema Architektur zu lesen. Die Antworten auf solche Fragen sind selbstverständlich darin enthalten. Glauben Sie, dass die Baidu-Suchmaschine nur eine Homepage hat? PHP ist die schönste Sprache der Welt Oh mein Gott~

Das Obige ist der Grund, warum die Homepage von Baidu immer noch in PHP geschrieben ist, da JSP für große Websites geeignet ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage