Heim Backend-Entwicklung PHP-Tutorial Eine Anleitung zum Lastausgleich mit PHP

Eine Anleitung zum Lastausgleich mit PHP

Dec 04, 2019 am 11:34 AM
php

Früher bedeutete die Ausführung einer großen Webanwendung, dass ein großer Webserver betrieben werden musste. Da Ihre Anwendung eine große Anzahl von Benutzern anzieht, müssen Sie Ihrem Server mehr Speicher und Prozessoren hinzufügen. Heutzutage gibt es das Modell „Großer Server“ nicht mehr, sondern wird durch eine große Anzahl kleiner Server ersetzt, die verschiedene Lastausgleichstechniken nutzen.

Die Vorteile von „mehr kleinen Servern“ gegenüber dem bisherigen „Großserver“-Modell spiegeln sich in zwei Aspekten wider:

 1. Wenn der Server ausfällt, stellt das Lastausgleichssystem die Anfragen ein Der Server fällt aus und verteilt die Last dann auf andere Server, die normal laufen.

 2. Die Skalierung Ihres Servers ist einfacher. Sie müssen lediglich neue Server zum Lastausgleichssystem hinzufügen. Sie müssen Ihre Bewerbung nicht unterbrechen.

Also, nutzen Sie diese Gelegenheit. Der Nachteil besteht natürlich darin, dass dies eine etwas höhere Komplexität Ihrer Anwendungsentwicklung erfordert. Darum geht es in diesem Artikel.

An diesem Punkt fragen Sie sich vielleicht: „Aber woher weiß ich, dass ich Lastausgleich verwende?“ Die ehrlichste Antwort, wenn Sie diese Frage stellen, ist, dass Sie wahrscheinlich kein Lastausgleichssystem verwenden und Ihr System dies nicht berücksichtigen muss. Wenn die Anwendung groß genug wird, muss in den meisten Fällen der Lastausgleich explizit vorgeschlagen und eingerichtet werden. Gelegentlich sehe ich jedoch, dass Webhosting-Unternehmen diesen Lastausgleich für Kundenanwendungen durchführen oder ihn wie unten beschrieben selbst durchführen.

Beachten Sie, dass ich immer wieder „Webanwendungen“ anstelle von Websites erwähne. Dies dient dazu, „Webanwendungen“ von komplexen Websites zu unterscheiden, die häufig serverseitige Programmierung und Datenbanken beinhalten, und nicht von Websites, die nur einfache statische Inhalte anzeigen. .

1. PHP-Datei

Die erste Frage ist: Wenn Sie eine große Anzahl kleiner Server haben, wie laden Sie Ihre PHP-Dateien auf alle Server hoch? Es gibt die folgenden Methoden für Sie :

 ◆ Laden Sie alle Dateien separat auf jeden Server hoch. Das Problem bei dieser Methode ist: Stellen Sie sich vor, Sie haben 20 Server, dann führt dies leicht zu Fehlern beim Hochladen und beim Aktualisieren. Das ist sehr wahrscheinlich Es gibt unterschiedliche Versionen der Dateien auf verschiedenen Servern.

 ◆Verwenden Sie „rsync“ (oder eine ähnliche Software), um Dateien in einem lokalen Verzeichnis und Verzeichnissen auf mehreren Remote-Hosts zu synchronisieren.

 ◆Verwenden Sie Versionskontrollsoftware (z. B. Subversion). Dadurch kann ich meinen Code sehr gut pflegen, und wenn ich meine Anwendung veröffentliche, kann ich den Befehl svn update auf jedem Server ausführen, um ihn zu synchronisieren. Dieser Ansatz erleichtert auch den Serverwechsel auf eine frühere Version des Codes.

 ◆Verwenden Sie einen Dateiserver (Sie finden, dass NFS dafür sehr gut geeignet ist). Wenn Ihr Dateiserver ausfällt, ist dies natürlich der Fall Ihre Websites sind nicht verfügbar. Zu diesem Zeitpunkt müssen Sie mehr Geld für die Wiederherstellung ausgeben.

Welche Methode Sie wählen, hängt von Ihren Bedürfnissen und Ihren Fähigkeiten ab. Wenn Sie ein Versionskontrollsystem verwenden, möchten Sie möglicherweise eine Möglichkeit planen, den Code auf allen Servern zu aktualisieren, indem Sie gleichzeitig einen Aktualisierungsbefehl ausführen. Wenn Sie jedoch einen Dateiserver verwenden, müssen Sie einen Mechanismus zur Wiederherstellung nach Fehlern implementieren, um Anforderungsfehler zu verhindern, falls der Server ausfällt.

  2. Datei-Upload

Wenn nur ein Server vorhanden ist, ist das Hochladen von Dateien kein Problem. Aber wie sollen die hochgeladenen Dateien gespeichert werden, wenn wir mehrere Server haben? Das Problem beim Hochladen von Dateien ähnelt der serverübergreifenden PHP-Dateispeicherung. Hier sind mehrere mögliche Lösungen:

 ◆ Speichern Sie die Datei in der Datenbank. Die meisten Daten ermöglichen die Speicherung binärer Daten. Wenn Sie einen Dateidownload anfordern, gibt access data die Binärdaten sowie den entsprechenden Dateinamen und -typ an den Benutzer aus. Bevor Sie diese Lösung verwenden, sollten Sie überlegen, wie die Datenbank Ihre Dateien speichert. Das Problem bei diesem Ansatz besteht darin, dass die Dateien nicht mehr verfügbar sind, wenn der Datenbankserver ausfällt.

 ◆ Hochgeladene Dateien auf einem Dateiserver speichern. Wie in der vorherigen Einführung müssen Sie alle hochgeladenen Dateien hier hochladen Benutze es. Wenn der Dateiserver jedoch ausfällt, kann es zu Unterbrechungen beim Herunterladen der Bilddateien kommen.

 ◆ Entwerfen Sie Ihren eigenen Upload-Mechanismus, um Dateien auf jeden Server zu übertragen. Diese Methode weist nicht die Nachteile einer einzelnen Dateiserver- oder Datenbanklösung auf, erhöht jedoch die Komplexität Ihres Codes. Wenn beispielsweise der Server beim Hochladen auf mehrere Server ausfällt, wie gehen Sie damit um?

Die Verwendung einer Datenbank zum Speichern hochgeladener Dateien, aber die Entwicklung eines Datei-Caching-Mechanismus ist eine gute Lösung. Wenn der Server eine Datei-Download-Anfrage erhält, prüft er zunächst, ob die Datei im Cache-System vorhanden ist. Wenn sie gefunden wird, lädt er sie aus der Datenbank herunter und speichert sie im Dateisystem.

 3. Sitzungen

Wenn Sie mit der Sitzungsverarbeitung von PHP vertraut sind, wissen Sie wahrscheinlich, dass es Sitzungsdaten standardmäßig in temporären Dateien auf dem Server speichert. Darüber hinaus befindet sich diese Datei nur auf dem Server, auf dem Sie sie angefordert haben. Nachfolgende Anforderungen können jedoch von einem anderen Server verarbeitet werden, wodurch eine neue Sitzung auf dem anderen Server generiert wird. Dies führt dazu, dass Sitzungen häufig nicht erkannt werden, z. B. dass angemeldete Benutzer immer wieder aufgefordert werden, sich erneut anzumelden.

Meine empfohlene Lösung besteht darin, entweder den in PHP integrierten Sitzungsverarbeitungsmechanismus wiederherzustellen, um Sitzungsdaten in der Datenbank zu speichern, oder einen eigenen Mechanismus zu implementieren, um sicherzustellen, dass die Anfrage eines Benutzers an denselben Server gesendet wird.

4. Konfiguration

Obwohl dieses Thema nicht besonders mit PHP zu tun hat, halte ich es dennoch für notwendig, es zu erwähnen. Beim Betrieb geclusterter Server ist es sinnvoll, die Konfigurationsdateien zwischen den Servern auf irgendeine Weise synchron zu halten. Wenn die Konfigurationsdateien inkonsistent sind, kann dies zu einem sehr seltsamen, zeitweise auftretenden Verhalten führen, das schwierig zu beheben sein kann.

Ich empfehle die Verwendung eines Versionskontrollsystems, um sie einzeln zu verwalten. Auf diese Weise können Sie verschiedene PHP-Konfigurationsdateien für verschiedene Projektinstallationen speichern und außerdem alle Serverkonfigurationsdateien synchron halten.

 5. Protokollierung

Wie Konfigurationsprobleme hängt auch die Protokollierung nicht nur mit PHP zusammen. Dennoch ist es sehr wichtig, dass Ihr Server fehlerfrei läuft. Wie würden Sie ohne ein ordnungsgemäßes Protokollierungssystem feststellen, ob Ihr PHP-Code anfängt, Fehler zu generieren (Sie schalten die display_errors-Einstellung immer aus, wenn das System läuft, nicht wahr?)

Es gibt mehrere Möglichkeiten, wie Sie dies tun können Protokollierung implementieren:

 1. Protokolle auf jedem Server aufzeichnen. Dies ist der einfachste Weg. Jede Maschine zeichnet nur eine Datei auf. Der Vorteil besteht darin, dass es einfach ist und möglicherweise nur sehr wenig Konfiguration erfordert. Mit zunehmender Serveranzahl wird die Überwachung der Protokolldateien auf jedem Server jedoch sehr schwierig.

2. Auf einer Freigabe protokollieren Bei dieser Methode liegen die Protokolldateien immer noch auf jedem Server, sie werden jedoch über den Freigabemechanismus auf einem zentralen Dateiserver gespeichert, was die Überwachung der Protokolle erleichtert. Das Problem bei dieser Lösung besteht darin, dass bei Nichtverfügbarkeit des Dateiservers ein einfaches Protokollschreibproblem schließlich zum Absturz der gesamten Anwendung führt.

 3. Protokolle auf dem Protokollierungsserver aufzeichnen Sie können eine Protokollierungssoftware wie Syslog verwenden, um alle Protokolle auf einen zentralen Server zu schreiben. Obwohl diese Methode mehr Konfiguration erfordert, bietet sie auch die robusteste Lösung.

Das obige ist der detaillierte Inhalt vonEine Anleitung zum Lastausgleich mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

7 PHP-Funktionen, die ich leider vorher nicht kannte 7 PHP-Funktionen, die ich leider vorher nicht kannte Nov 13, 2024 am 09:42 AM

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

See all articles