


PHP-Warteschlangenverarbeitung: Implementierungsprinzip der PHP-Nachrichtenwarteschlange (Bild und Text)
Was bedeutet PHP-Warteschlange? Wie wird es erreicht? Welche Anwendungsszenarien gibt es? Im Folgenden wird das Implementierungsprinzip der PHP-Nachrichtenwarteschlange durch die Verwendung von MySQL zur Entkopplung und die Verwendung von Redis zur Reduzierung des Datenverkehrs ausführlich erläutert.
Das Konzept der Warteschlange:
Es ist die Middleware der Warteschlangenstruktur
2 🎜>muss nicht sofort verarbeitet werden
3.wird nacheinander von Abonnenten /Verbrauchern
Warteschlange verarbeitet Prinzip:
Schreiben Sie einfach in die Warteschlange und schreiben Sie , machen Sie sich um nichts weiter Sorgen, es spielt keine Rolle, ob Sie zu Ende lesen können oder nicht
Das Gleiche,einfach aus der Warteschlange lesen , die Arbeit erledigen, wenn Sie kommen, ausruhen, wenn keine Arbeit da ist
Anwendungsszenarien:Redundanz:
Persistente Speicherung in der Warteschlange, die anschließend vom Auftragsverarbeitungsprogramm abgerufen wird. Nach Abschluss der Verarbeitung wird der Datensatz gelöschtEntkopplung: Ja Diese beiden
Systeme (Geschäfts- und Warteschlangenverarbeitung) sind das, was wir normalerweise tun. Es besteht keine direkte Beziehung zwischen den Systemen zum Betreten und Verlassen der Warteschlange.Wenn ein System ausfällt, ist das andere System nicht betroffen, da sich in der Mitte eine Warteschlange befindet Der Traffic wird reduziert Edge: Flash-Sales und Rush-Sales. Der Datenverkehr hat dramatisch zugenommen.
Verwenden Sie die Nachrichtenwarteschlange in Verbindung mit dem Cache(d. h. unter Einschränkungen, wenn nur 10 zulässig sind, werden sie nach dem Speichern von 10 in der Warteschlange nicht mehr gespeichert Sie werden darauf hingewiesen, dass der Flash-Verkauf beendet ist.) Asynchrone Kommunikation:
Da die Nachricht selbst dazu führen kann, dass das System in der Warteschlange direkt zurückkehrt, wird davon ausgegangen, dass das Programm asynchron läuft realisiert
Szenario-Skalierbarkeit: wieJetzt gibt es nur noch ein Bestellsystem und ein Finanzsystem. Ich möchte in Zukunft ein Vertriebssystem hinzufügen Abonnieren Sie diese Warteschlange direkt. Sortiergarantie: einige Szenarien Zum Beispiel
Die Reihenfolge der Verarbeitung von Bankdaten ist sehr wichtig , weil die Warteschlange selbst in ein Single-Thread-, Single-In-, Single-Out-System umgewandelt werden kann Implementierungsmedium:
1 MySQL: hohe Zuverlässigkeit, einfach zu implementieren, langsame Geschwindigkeit
2. Verwendung von Redis: schnelles, einzelnes großes Nachrichtenpaket. Geringe Effizienz 3. Verwenden Sie professionellere Bibliotheken von Drittanbietern: hochprofessionell, zuverlässig und hohe Lernkosten.Auslösemechanismus für die Nachrichtenverarbeitung:
1. Endlosschleifenlesen: einfach zu implementieren, im Fehlerfall nicht rechtzeitig zu reagieren ( für kurze Zeiträume geeignet wie Flash-Verkäufe
)2. Geplante Aufgaben: Der Druck ist gleichmäßig verteilt und hat eine Verarbeitungsobergrenze (egal wie instabil der Spitzenwert des Systems vor Ihrer Warteschlange ist, Das System hinter der Warteschlange wird weiterhin regelmäßig ausgeführt 🎜>Fall: Bestellsystem, Bestellung aufgeben Nachdem die Bestellinformationen in die Warteschlange geschrieben wurden, wird sofort zurückgegeben, dass die Bestellung erfolgreich aufgegeben wurde. Das Verteilungssystem liest die Warteschlange regelmäßig alle paar Minuten
und fasst die Bestellungen zusammen3. Daemon-Prozess: ähnlich wie PHP-FPM und CGI, was Shell-Grundlagen erfordert (verwenden Sie diesen Prozess, um zu überprüfen, ob Inhalt vorhanden ist). in der Warteschlange. Wenn Inhalt vorhanden ist, starten Sie das Entkopplungssystem zur Verarbeitung)
Verwenden Sie MySQL, um den Entkopplungsfall zu implementieren:
Warum Entkopplung: Wenn die Architektur zusammenpasst. Das Bestellsystem steht unter großem Druck und Logistikinformationen müssen nicht sofort zurückgegeben werden. Wenn Bestellungen zusammenbrechen, bricht auch die Logistik zusammen, daher müssen wir das Design der Tabelle entkoppeln:
Das Bestellsystem schreibt den Code in die Warteschlange:
Das Verteilungssystem liest den Warteschlangencode:
Geplante Aufgaben ausführenCrontab -e
Hinweis: Diese Protokolldatei muss von Ihnen selbst erstellt werden
1 im Browser Besuchen Sie order.phpBestellung hinzufügen
2 Gehen Sie zur Datenbank, um die Ergebnisse anzuzeigen und schauen Sie im Protokoll nach shell Ergebnis ( wurde nicht erfolgreich ausgeführt. Es kann sein, dass die sh-Datei in einem bestimmten Verzeichnis abgelegt werden muss und nach Abschluss der Überprüfung ausgeführt wird )
Verwendung von Redis zur Verkehrsreduzierung
Idee:
1. Das Flash-Sale-Programm fordert das Schreiben in Redis an.
2. Direkt verwerfen (zurück zum Ende des Flash-Sales)
3. Endlosschleifenverarbeitung von Einzahlungen. Redis-Daten in Datenbank zusammengeführt
Tabellendesign:
Flash-Sale-Code:
Repository-Code:
Browser greift direkt auf user.php
zu. Verwenden Sie php -f savetodb.php in Shell
Gehen Sie zur Datenbank, um
Verwandte Empfehlungen anzuzeigen:
PHP-Nachrichtenwarteschlangendienst
Das obige ist der detaillierte Inhalt vonPHP-Warteschlangenverarbeitung: Implementierungsprinzip der PHP-Nachrichtenwarteschlange (Bild und Text). 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

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

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





Alipay PHP ...

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.

Die Hijacking der Sitzung kann in den folgenden Schritten erreicht werden: 1. Erhalten Sie die Sitzungs -ID, 2. Verwenden Sie die Sitzungs -ID, 3. Halten Sie die Sitzung aktiv. Zu den Methoden zur Verhinderung der Sitzung der Sitzung in PHP gehören: 1. Verwenden Sie die Funktion Session_regenerate_id (), um die Sitzungs -ID zu regenerieren. 2. Store -Sitzungsdaten über die Datenbank, 3. Stellen Sie sicher, dass alle Sitzungsdaten über HTTPS übertragen werden.

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Wie debugge ich den CLI -Modus in PhpStorm? Bei der Entwicklung mit PHPSTORM müssen wir manchmal den PHP im CLI -Modus (COMS -Zeilenschnittstellen) debuggen ...

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.

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 � ...
