


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>Der Standard -Motorwert ist PHP, der keine Parameter benötigt. Wenn wir die Engine "Amazondynamodb" auswählen, führt der Sitzungskonstruktor einen zusätzlichen Code aus:
<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>Zuerst laden wir das AWS -SDK, das bereits installiert und erreichbar sein muss, und dann werden unsere Anmeldeinformationen in die AWS -Umgebung geladen. Ab diesem Zeitpunkt können wir AWS -Klassen verwenden, sodass eine neue Instanz von Amazondynamodb erstellt und mit der richtigen Region eingerichtet wird, in der sich unsere Tabelle befindet. Schließlich sagen wir unser DynamoDB -Objekt, sich als Sitzungsmanager zu registrieren, das den Namen der Tabelle überholt, und das ist wirklich das, was wir brauchen. In der Datei config.Php mitteilen wir die Anwendung, welche Engine wir verwenden möchten, auch unsere AWS -Anmeldeinformationen und DynamoDB -Einstellungen werden hier gespeichert. Im Index.php habe ich auch eine kleine Nutzungsfunktion aufgenommen, die, wenn wir nicht auf dem lokalen Server sind, den Namen der Instanz abholt, in der derzeit ausgeführt wird. Dies ist nützlich zu überprüfen, ob die Sitzung auf unseren Servern konsistent gehalten wird.
<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>Die Funktion getServerName () verwendet die EC2 -Metadaten -API, um den Namen der Instanz zu finden. Führen Sie die App auf Ihrer Flotte aus Um diese Anwendung zu testen, benötigen wir eine Flotte von mindestens zwei Webservern hinter einem Lastausgleich. Der von mir verwendete Server ist eine Ubuntu GNU/Linux -Instanz mit:
- 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!

PHP wird in E-Commerce, Content Management Systems und API-Entwicklung häufig verwendet. 1) E-Commerce: Wird für die Einkaufswagenfunktion und Zahlungsabwicklung verwendet. 2) Content -Management -System: Wird für die Erzeugung der dynamischen Inhalte und die Benutzerverwaltung verwendet. 3) API -Entwicklung: Wird für die erholsame API -Entwicklung und die API -Sicherheit verwendet. Durch Leistungsoptimierung und Best Practices werden die Effizienz und Wartbarkeit von PHP -Anwendungen verbessert.

PHP erleichtert es einfach, interaktive Webinhalte zu erstellen. 1) Generieren Sie Inhalte dynamisch, indem Sie HTML einbetten und in Echtzeit basierend auf Benutzereingaben oder Datenbankdaten anzeigen. 2) Verarbeitungsformularübermittlung und dynamische Ausgabe erzeugen, um sicherzustellen, dass HTMLSpecialChars zur Vorbeugung von XSS verwendet wird. 3) Verwenden Sie MySQL, um ein Benutzerregistrierungssystem zu erstellen und Anweisungen von Password_hash und Preprocessing vorzubereiten, um die Sicherheit zu verbessern. Durch die Beherrschung dieser Techniken wird die Effizienz der Webentwicklung verbessert.

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

PHP ist immer noch dynamisch und nimmt immer noch eine wichtige Position im Bereich der modernen Programmierung ein. 1) Einfachheit und leistungsstarke Unterstützung von PHP machen es in der Webentwicklung weit verbreitet. 2) Seine Flexibilität und Stabilität machen es ausstehend bei der Behandlung von Webformularen, Datenbankoperationen und Dateiverarbeitung; 3) PHP entwickelt sich ständig weiter und optimiert, geeignet für Anfänger und erfahrene Entwickler.

PHP bleibt in der modernen Webentwicklung wichtig, insbesondere in Content-Management- und E-Commerce-Plattformen. 1) PHP hat ein reichhaltiges Ökosystem und eine starke Rahmenunterstützung wie Laravel und Symfony. 2) Die Leistungsoptimierung kann durch OPCACHE und NGINX erreicht werden. 3) Php8.0 führt den JIT -Compiler ein, um die Leistung zu verbessern. 4) Cloud-native Anwendungen werden über Docker und Kubernetes bereitgestellt, um die Flexibilität und Skalierbarkeit zu verbessern.

PHP eignet sich für die Webentwicklung, insbesondere für die schnelle Entwicklung und Verarbeitung dynamischer Inhalte, ist jedoch nicht gut in Anwendungen auf Datenwissenschaft und Unternehmensebene. Im Vergleich zu Python hat PHP mehr Vorteile in der Webentwicklung, ist aber nicht so gut wie Python im Bereich der Datenwissenschaft. Im Vergleich zu Java wird PHP in Anwendungen auf Unternehmensebene schlechter, ist jedoch flexibler in der Webentwicklung. Im Vergleich zu JavaScript ist PHP in der Back-End-Entwicklung präziser, ist jedoch in der Front-End-Entwicklung nicht so gut wie JavaScript.

PHP und Python haben jeweils ihre eigenen Vorteile und eignen sich für verschiedene Szenarien. 1.PHP ist für die Webentwicklung geeignet und bietet integrierte Webserver und reichhaltige Funktionsbibliotheken. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit prägnanter Syntax und einer leistungsstarken Standardbibliothek. Bei der Auswahl sollte anhand der Projektanforderungen festgelegt werden.

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7


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

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

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