Heim > Artikel > Backend-Entwicklung > Apache-Cluster
Nach der Lösung des Leistungsproblems besteht der nächste Schritt darin, die Sitzung zu lösen Synchronisierungsproblem
Nachdem Sie einen Webcluster erstellt haben, werden Sie auf jeden Fall zuerst das Problem der Sitzungssynchronisierung berücksichtigen, da nach dem Lastausgleich dieselbe IP-Adresse, die auf dieselbe Seite zugreift, verschiedenen Servern zugewiesen wird. a login Der Benutzer ist eine Zeit lang angemeldet und eine Zeit lang nicht angemeldet. Daher stellt dieser Artikel drei verschiedene Methoden zur Lösung dieses Problems basierend auf dieser Situation vor:
1. Datenbanksynchronisierungssitzung verwenden
Ich habe diese Methode nicht verwendet, wenn ich diese Methode verwenden muss:
1. Verwenden Sie einen niedrigen Build Eine Datenbank auf dem Endcomputer, um speziell die Sitzung des Webservers zu speichern, oder diese spezielle Datenbank auf dem Dateiserver erstellen. Wenn der Benutzer auf den Webserver zugreift, greift er auf diese spezielle Datenbank zu, um den Sitzungsstatus zu überprüfen, um den Zweck zu erreichen der Sitzungssynchronisierung.
2. Bei dieser Methode wird die Tabelle, in der die Sitzung gespeichert ist, mit anderen Datenbanktabellen zusammengefügt. Wenn MySQL ebenfalls geclustert ist, muss jeder MySQL-Knoten über diese Tabelle verfügen und die Datentabelle dieser Sitzungstabelle in Echtzeit synchronisieren.
Hinweis: Die Verwendung einer Datenbank zum Synchronisieren von Sitzungen erhöht die Belastung der Datenbank. Datenbanken sind von Natur aus anfällig für Engpässe. Wenn Sie Sitzungen in die Datenbank einfügen, wird dies zweifellos die Situation verschlimmern. Von den beiden oben genannten Methoden ist die erste Methode besser. Sie trennt die Sitzungstabelle und verringert die Belastung der realen Datenbank.
2. Verwenden Sie Cookies, um Sitzungen zu synchronisieren.
Sitzung ist ein Dateiformat, das auf der Serverseite gespeichert wird, und Cookie ist ein Dateiformat, das auf der Clientseite gespeichert wird. Die Methode ist sehr einfach. Sie besteht darin, die durch den Zugriff des Benutzers auf die Seite generierte Sitzung in das Cookie einzufügen und das Cookie als Übertragungsstation zu verwenden. Wenn Sie Webserver A besuchen, wird eine Sitzung generiert und in einem Cookie abgelegt. Zu diesem Zeitpunkt stellt Webserver B zunächst fest, ob der Server die Sitzung hat Ist diese Sitzung darin enthalten? Wenn nicht, bedeutet dies, dass die Sitzung tatsächlich nicht vorhanden ist. Wenn sie im Cookie enthalten ist, synchronisieren Sie die Sitzung im Cookie, damit die Sitzung synchronisiert werden kann.
Hinweis: Diese Methode ist einfach und bequem zu implementieren und erhöht die Belastung der Datenbank nicht. Wenn der Client jedoch Cookies deaktiviert, wird die Sitzung nicht synchronisiert, was zu Verlusten bei der Cookie-Sicherheit führt ist nicht hoch, obwohl es verschlüsselt wurde, kann es dennoch gefälscht werden.
3. Verwenden Sie Memcache, um Sitzungen zu synchronisieren.
Memcache kann nicht für die Sitzungssynchronisierung verwendet werden. Er kann den Speicher im Webserver zu einem „Speicherpool“ zusammenfassen. Unabhängig davon, welcher Server Sitzungen generiert, kann er in diesem „Speicherpool“ abgelegt und andere verwendet werden.
Vorteile: Die Synchronisierung von Sitzungen auf diese Weise erhöht die Belastung der Datenbank nicht und die Sicherheit wird im Vergleich zur Verwendung von Cookies erheblich verbessert. Das Speichern der Sitzung im Speicher erfolgt viel schneller als das Lesen aus der Datei.
Nachteile: Memcache unterteilt den Speicher in Speicherblöcke mit vielen Spezifikationen. Diese Methode bestimmt, dass Memcache den Speicher nicht vollständig nutzen kann und Speicherfragmente generiert . Überlauf.
4. Zusammenfassung
Die oben genannten drei Methoden sind alle machbar
Die erste Methode wirkt sich am meisten auf die Systemgeschwindigkeit aus und wird nicht empfohlen
Die zweite Methode ist effektiv, aber sicher Das gleiche versteckt Es bestehen Gefahren;
Die dritte Methode, ich persönlich halte die dritte Methode für die beste, ich empfehle jedem, sie zu verwenden
Das Obige hat den Apache-Cluster und seine Aspekte vorgestellt. Ich hoffe, dass er Freunden, die sich für PHP-Tutorials interessieren, hilfreich sein wird.