Heim > Backend-Entwicklung > PHP-Problem > Wie geht PHP mit Problemen mit hoher Parallelität um?

Wie geht PHP mit Problemen mit hoher Parallelität um?

青灯夜游
Freigeben: 2023-02-28 15:24:02
Original
4281 Leute haben es durchsucht

Aufgrund des Aufkommens verteilter Systeme bezieht sich hohe Parallelität (hohe Parallelität) normalerweise darauf, sicherzustellen, dass das System durch Design viele Anforderungen gleichzeitig parallel verarbeiten kann. Für Laien bedeutet hohe Parallelität, dass viele Benutzer gleichzeitig auf dieselbe API-Schnittstelle oder URL-Adresse zugreifen. Es tritt häufig in Geschäftsszenarien mit einer großen Anzahl aktiver Benutzer und einer hohen Benutzerkonzentration auf.

Wie geht PHP mit Problemen mit hoher Parallelität um?

Die Geschäftslogik für den Umgang mit hoher Parallelität ist:

Front-End: asynchrone Anfrage + Ressourcenstatik + CDN

Backend: Anforderungswarteschlange + Abfrageverteilung + Lastausgleich + gemeinsam genutzter Cache

Datenschicht: Redis-Cache + Daten-Sharding + Schreibwarteschlange

Speicher: RAID-Array + Hot-Standby

Netzwerk: DNS-Abfrage + DDOS-Angriffsschutz

Videokursempfehlung →: "Zehn-Millionen-Ebenen-Datenparallelitätslösung (Theorie + Praxis)"

PHPs Methode zum Umgang mit Problemen mit hoher Parallelität

1. Separate Anwendungen und statische Ressourcen

Separate statische Ressourcen (JS, CSS, Bilder usw.) auf einen dedizierten Server.

2. Seiten-Caching

Das Caching der von der Anwendung generierten Seiten kann viele CPU-Ressourcen einsparen. Für einige Seiten, auf denen sich häufig Daten ändern, können Sie diese mit Ajax verarbeiten.

3. Cluster und verteilt

Cluster, mehrere Server haben die gleichen Funktionen und spielen hauptsächlich die Rolle der Umleitung. Verteilt, wodurch verschiedene Unternehmen auf verschiedenen Servern untergebracht werden können, um eine Anfrage zu verarbeiten, wodurch die Verarbeitungsgeschwindigkeit einer Anfrage erhöht wird. Es ist weiter in statische Ressourcencluster und Anwendungscluster unterteilt. Letzteres ist komplizierter und häufig müssen Probleme wie die Sitzungssynchronisierung berücksichtigt werden.

4. Reverse-Proxy

Der Server, auf den der Client direkt zugreift, ist nicht der Server, der direkt Dienste von anderen Servern erhält und die Ergebnisse dann an den Benutzer zurückgibt.

Proxyserver und Reverse-Proxyserver:

Der Proxyserver greift in unserem Namen auf Ressourcen zu und gibt dann die Ergebnisse zurück. Greifen Sie beispielsweise auf den Proxyserver des externen Netzwerks zu. Wenn wir normalerweise auf einen Server zugreifen, ruft der Server selbst einen anderen Server auf.

Wir nutzen den Proxy-Server aktiv für uns und benötigen keinen eigenen Domänennamen. Der Reverse-Proxy wird vom Server selbst verwendet und wir wissen nicht, dass er einen eigenen Domänennamen hat.

5. CDN

CDN ist ein spezieller Cluster-Seiten-Cache-Server. Im Vergleich zu mehreren Seiten-Cache-Servern in einem gewöhnlichen Cluster besteht der Hauptunterschied darin, dass sein Speicherort und die Zuweisungsanforderungsmethode unterschiedlich sind. .

CDN-Server sind über das ganze Land verteilt. Nach Eingang einer Anfrage wird diese dem am besten geeigneten CDN-Serverknoten zugewiesen, um die Daten zu erhalten. Jeder seiner CDN-Knoten ist ein Seiten-Caching-Server.

Verteilungsmethode:

ist kein gewöhnlicher Lastausgleich, sondern wird bei der Auflösung des Domänennamens von einem speziellen CDN-Domänennamenauflösungsserver zugewiesen.

Der allgemeine Ansatz ist: Der ISP verwendet CNAME, um den Domänennamen in einen bestimmten Domänennamen aufzulösen, und verwendet dann einen dedizierten CDN-Server, um den aufgelösten Domänennamen aufzulösen (kehren Sie zum Browser zurück und greifen Sie dann darauf zu). an den entsprechenden CDN-Knoten. Jeder Knoten kann auch mit mehreren Servern geclustert werden.

Empfohlenes Lernen: PHP-Tutorial

Das obige ist der detaillierte Inhalt vonWie geht PHP mit Problemen mit hoher Parallelität um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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