


PHP Master | Amazon DynamoDB: PHP -Sitzungen mit Laderebalancer speichern
Dieser Artikel wird von einer unserer Schwester -Sites, Cloudspring, geteilt. Wenn Sie es hilfreich finden, sollten Sie sie unbedingt besuchen!
In diesem Tutorial wird Ihnen angezeigt, wie Sie Amazon DynamoDB als Lagereinrichtung für PHP -Sitzungen verwenden. Diese Methode wird sehr nützlich, wenn Ihre Anwendungen die elastischen Lastausgleichs- und Autoscaling -Dienste nutzen. Sie benötigen das Amazon AWS -Konto für die Verwendung von EC2, Elastic Last Balancer und DynamoDB als Voraussetzung, um entlang des Tutorials zu spielen.Key Takeaways
- Amazon DynamoDB kann als Lagereinrichtung für PHP -Sitzungen verwendet werden. Elastic Last Balancer fungiert als Frontend für einen oder viele virtuelle Server und verteilt Anfragen unter ihnen. Durch das AutoScaling kann das System mehr Klone der Webserver starten, wenn ein hoher Verkehr vorhanden ist, und einiges abzubauen, wenn der Verkehr sinkt.
- PHP -Sitzungsdaten sollten außerhalb des virtuellen Servers gespeichert werden. Eine Option besteht darin, Sitzungen in einer Datenbank wie DynamoDB zu speichern, eine leistungsstarke und schnelle NoSQL -Datenbank, die von Amazon verwaltet wird.
- Die Amazondynamodb -Klasse des offiziellen PHP -SDK ist so ausgestattet, sich als Sitzungsmanager zu registrieren. Das AWS SDK für PHP erleichtert Entwicklern, Anwendungen zu erstellen, die die kostengünstige, skalierbare und zuverlässige AWS-Cloud aufnehmen.
Elastic Last Balancer fungiert als Frontend für einen oder viele Ihrer virtuellen Server. Es akzeptiert Anfragen und verteilt sie auf virtuelle Server. Virtuelle Server können durch Klonen einer Maschinenvorlage (AMI) erstellt werden oder bei Bedarf zerstört werden. Verarbeitungsleistung Wenn Ihre Anwendung variiert werden kann, indem die virtuellen Server dynamisch addiert oder reduziert werden.
und autoscaling?Wenn sich das Autoscaling dem Spiel anschließt, kann das System auch:
- Starten Sie mehr Klone der Webserver, wenn es einen hohen Datenverkehr gibt
- STALLEN EINIGE DER EINIGEN, WENN DER VERFAHREN UNTER VON EINE DEFEFIKATIVE Schwellenwert
- fällt
- Beenden Sie ungesunde Instanzen und ersetzen Sie sie bei Bedarf
wie mache ich das?
Kann eine Ihrer Anwendungen in dieser Umgebung funktionieren? Ja, wenn es zwei kritische Anforderungen erfüllt:- Da virtuelle Server dynamisch erstellt werden, sollten die Server nur den Anwendungscode und keine Daten enthalten. Dies kann mit einem DB -Dienst leicht machbar sind.
- Jeder Benutzersitzstatus sollte außerhalb des virtuellen Servers bestehen bleiben. Dies ist etwas schwieriger, da das PHP -Modul diese Daten standardmäßig in das Dateisystem des CHE -Webservers speichert.
Was nicht zu tun: Sticky Sessions
Die Sticky Session ist eine Funktion des elastischen Last -Balancer -Dienstes, der die Sitzung eines Benutzers an eine bestimmte Anwendungsinstanz bindet, sodass alle Anfragen des Benutzers während der Sitzung an denselben virtuellen Server gesendet werden. Das Sitzungs -Cookie kann entweder vom Lastausgleich oder der Anwendung generiert werden. Dies wird jedoch als schlechte Praxis angesehen. Das Ideal wäre, die Anwendung als staatenlos zu entwerfen, aber dies ist nicht immer möglich.Speichern Sie Ihre Sitzungen in einer Datenbank
Eine weitere Option ist: Speichern Sie unsere Sitzungen in einer Datenbank. Es könnte dieselbe externe SQL -Datenbank sein, die von der Anwendung oder einer Memcache -Instanz oder einer anderen NoSQL -Datenbank verwendet wird. In diesem Fall scheint DynamoDB sehr interessant zu sein, da es sich um eine leistungsstarke und schnelle NoSQL -Datenbank handelt. Sie wird von Amazon selbst verwaltet und ist auch von unseren virtuellen Servern einfach zugänglich. Außerdem ist die Amazondynamodb -Klasse des offiziellen PHP -SDK bereits ausgestattet, sich als Sitzungsmanager zu registrieren. Wenn Sie noch nie von DynamoDB gehört haben, empfehle ich Ihnen, dieses einleitende Video anzusehen.Die Demo -Anwendung
Ich habe eine einfache Anwendung zusammengestellt, um den gesamten Mechanismus zu testen. Sie können den Quellcode aus unserem GitHub -Repository herunterladen. Wir werden diese Anwendung mit einem elastischen Lastausgleich und mindestens zwei Instanzen ausführen. Wir werden vorerst keine Autoscaling verwenden.
<span>require_once 'lib/session.php'; </span><span>try { </span> <span>// Engine can be PHP or AmazonDynamoDB </span> <span>$session = new Session($config['session']['engine'], $config['session']['params']); </span><span>} catch (Exception $e) { </span> <span>exit($e->getMessage()); </span><span>} // end try</span>
<span>switch ($engine) { </span><span>case 'AmazonDynamoDB': </span><span>// Load AWS SDK </span><span>require_once 'AWSSDKforPHP/sdk.class.php'; </span><span>// Create a list of credential sets that can be used with the SDK. </span><span>CFCredentials<span>::</span>set($params['credentials']); </span><span>// Instantiate a DynamoDB client </span><span>$dynamodb = new AmazonDynamoDB(); </span><span>$dynamodb->set_region($params['region']); </span><span>// Instantiate, configure, and register the session handler </span><span>$this->handler = $dynamodb->register_session_handler(array( </span><span>'table_name' => $params['table_name'], </span><span>'lifetime' => $params['lifetime'], </span><span>)); </span><span>break;</span>
<span>function getServerName() { </span> <span>$host = $_SERVER['SERVER_NAME']; </span> <span>if ('localhost' != $host) { </span> <span>// Maybe we are on EC2, trying to catch the current instance ID </span> <span>$ch = curl_init('http://169.254.169.254/latest/meta-data/instance-id'); </span> <span>curl_setopt($ch, CURLOPT_FAILONERROR, true); </span> <span>curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); </span> <span>curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); </span> <span>if ($ret = curl_exec($ch)) { </span> <span>$host .= ' (instance ' . $ret . ')'; </span> <span>} // end if </span> <span>curl_close($ch); </span> <span>} // end if </span> <span>return $host; </span><span>} // end function</span>
- Der Apache -Webserver
- php 5.3 (sowohl Befehlszeile als auch Apache -Modul),
- Das Curl -Programm und die PHP -Erweiterung
- Der Pear -Paket -Manager (erforderlich, um das SDK einfach zu installieren),
- Der AWS SDK für PHP (ich schlage die Installation durch Birne vor).
Initialisieren Sie den Sitzungsspeicher
Gehen Sie zu Ihrer AWS -Konsole, wählen Sie den DynamoDB -Service und Ihre Lieblingsregion (meine ist EU West - Irland). Klicken Sie auf die Schaltfläche "Tabelle erstellen".
Starten und Konfigurieren der Server
Einrichten des Lastausgleichs
Mit der Datenbank und allen vorhandenen Instanzen können wir jetzt den Frontend Load Balancer einrichten. Wählen Sie im Menü EC2 -Navigation unter "Netzwerk & Sicherheit" "Balancer" und klicken Sie auf die Schaltfläche "Lade Balancer laden".
Zusammenfassung
Und das ist alles vorerst. Wir haben ein wichtiges Thema im AWS -Ökosystem behandelt, aber dies ist nur der Anfang. All dieses Zeug ist vollständig programmierbar, zum Beispiel: Sie können Autoscaling hinzufügen und Ihre Instanzen so konfigurierbar und AWS-Anmeldeinformationen und andere Daten von einem vertrauenswürdigen Ort herunterladen. Oder Sie können die Cloud -Formation verwenden, um eine wiederverwendbare Vorlage für die gesamte Infrastruktur zu erstellen. Der Ausgangspunkt ist die AWS -Homepage. Und jetzt, wenn Sie das Testen fertig haben, vergessen Sie nicht, alle Ihre Sachen zu beenden, wenn nicht glücklich, Codierung! Bild über Fotolienhäufig gestellte Fragen (FAQs) auf Amazon DynamoDB und PHP -Sitzungen
Wie kann ich Lastausgleich mit Amazon DynamoDB- und PHP -Sitzungen implementieren? Mit Amazon DynamoDB- und PHP -Sitzungen können Sie dies erreichen, indem Sie den ELB -Service (Elastic Last Balancing) von Amazon verwenden. ELB verteilt den eingehenden Anwendungsverkehr automatisch über mehrere Ziele hinweg wie Amazon EC2 -Instanzen, Container und IP -Adressen. Es kann die unterschiedliche Last Ihres Anwendungsverkehrs in einer einzelnen Verfügbarkeitszone oder über mehrere Verfügbarkeitszonen hinweg verarbeiten. Für PHP -Sitzungen. Es bietet eine schnelle und vorhersehbare Leistung mit nahtloser Skalierbarkeit. Sie können Ihre Tabellen nach oben oder unten skalieren, um den Verkehr ohne Ausfallzeiten oder Leistungsverschlechterung anzupassen. DynamoDB bietet auch integrierte Sicherheits-, Sicherungs- und Wiederherstellungs- und In-Memory-Caching für Anwendungen im Internet. Für PHP erleichtert es Entwicklern, Anwendungen zu erstellen, die die kostengünstige, skalierbare und zuverlässige AWS-Cloud aufnehmen. In der SDK sind die AWS -PHP -Bibliothek und Code -Beispiele enthalten, die zeigen, wie die AWS SDK für PHP verwendet werden, um alle Funktionen zu nutzen, die von AWS -Diensten wie Amazon S3, Amazon EC2 und DynamoDB bereitgestellt werden. Sind einige gemeinsame DynamoDB mit PHP -Code -Beispielen? Dazu gehört das Erstellen einer Tabelle, das Schreiben von Elementen in eine Tabelle, das Lesen von Elementen aus einer Tabelle, das Aktualisieren von Elementen in einer Tabelle und das Löschen von Elementen aus einer Tabelle. Jeder dieser Operationen kann mit dem AWS SDK für Php.
durchgeführt werdenWo finde ich PHP -Skripte für Amazon Store? Mit diesen Skripten können Sie die Dienste von Amazon in Ihre PHP -Anwendungen integrieren und Funktionen wie Produktsuche und Anzeige, Einkaufswagenverwaltung und Bestellverarbeitung bereitstellen. Ja, es gibt vollständige Beispiele für die Verwendung von DynamoDB mit PHP. Diese Beispiele enthalten typischerweise Code zum Erstellen einer Tabelle, das Schreiben von Elementen in die Tabelle, das Lesen von Elementen aus der Tabelle, das Aktualisieren von Elementen in der Tabelle und das Löschen von Elementen aus der Tabelle. Sie enthalten auch häufig Beispiele für den Umgang mit Fehlern und Ausnahmen. Verwenden von Try-Catch-Blöcken. Der AWS SDK für PHP löst Ausnahmen aus, wenn Operationen ausfällt, und Sie können diese Ausnahmen erfassen, um sie auf eine Weise zu verarbeiten, die zu Ihrer Anwendung passt. Es gibt verschiedene Möglichkeiten, die Leistung mit DynamoDB und PHP zu optimieren. Dazu gehören die Verwendung des vorgesehenen Durchsatzes zur Verwaltung der Kapazität, die Verwendung globaler sekundärer Indizes zur Beschleunigung von Abfragen und die Verwendung von DynamoDB Accelerator (DAX), um in einzeitiges Caching zu liefern.
dynamoDB bietet mehrere Sicherheitsfunktionen zum Schutz Ihrer Daten. Dazu gehören die Verschlüsselung in Ruhe, die Ihre Daten vor dem unbefugten Zugriff auf den zugrunde liegenden Speicher und die Verschlüsselung im Transit schützt, wodurch Ihre Daten zwischen Ihrer Anwendung und Dynamodb geschützt werden. DynamoDB?DynamoDB bietet integrierte Unterstützung für Datensicherungen und Wiederherstellungen. Sie können jederzeit On-Demand-Backups erstellen und Ihre Tabellendaten bei Bedarf von diesen Sicherungen wiederherstellen. Auf diese Weise können Sie Ihre Daten vor versehentlicher Löschung oder Änderung schützen und Ihre Anwendung auch im Falle eines Fehlers reibungslos verlaufen.
Das obige ist der detaillierte Inhalt vonPHP Master | Amazon DynamoDB: PHP -Sitzungen mit Laderebalancer speichern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Alipay PHP ...

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

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.

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...
