Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Nachrichtenwarteschlange
Die Nachrichtenwarteschlange MQ ist im Wesentlichen eine Warteschlange. Die einfachste Operation besteht darin, der Warteschlange beizutreten und sie zu entfernen. Mit anderen Worten: Wenn Sie auf ein Szenario stoßen, in dem die Geschäftsanforderungen des Enqueuing-Systems und des Dequeuing-Systems inkonsistent sind, können Sie überlegen, ob Sie Nachrichtenwarteschlangen zur Implementierung verwenden. Es gibt viele anwendbare Szenarien. Hier sind einige gängige Szenarien und Erklärungen.
1: Asynchrone Verarbeitung, Anwendungsentkopplung, Verteilung
Szenario: Wenn sich das Hauptunternehmen nicht um die Verarbeitungsergebnisse des Unterunternehmens kümmert Geschäft.
Fall: Die Beziehung zwischen dem Bestellsystem, dem Logistiksystem, dem Finanzsystem und dem Betriebsprotokollaufzeichnungssystem im E-Commerce-System.
Beliebte Erklärung: Xiao Ming ist Konditoreiassistentin. Nachdem er den Kuchen gebacken hatte, stellte er ihn ins Schaufenster, vermerkte auf der entsprechenden Bestellung „abgeschlossen“ und fuhr dann mit dem Backen des nächsten Kuchens fort. Es war ihm egal, wie oder wann der Kuchen verkauft wurde.
Implementierung: Verwenden Sie eine Warteschlangen-Middleware oder ein mittleres System, um die gemeinsamen Teile mehrerer Geschäftssysteme zu speichern und unabhängig voneinander zu verarbeiten. Der Verarbeitungsfortschritt jedes Systems kann über ein eigenes, unabhängiges Tag aufgezeichnet werden. Nachdem alle Systeme ihre Vorgänge abgeschlossen haben, führen Sie Vorgänge zum Entfernen aus der Warteschlange durch oder behalten die Datenspeicherung bei.
Hinweis: Die Katastrophentoleranz von Zwischendaten muss berücksichtigt werden, um sicherzustellen, dass der Geschäftsprozess wiederhergestellt werden kann, wenn ein Fehler auftritt und wiederhergestellt wird. Stellen Sie sicher, dass alle Daten korrekt verarbeitet werden können.
2: Spitzenverarbeitung
Szenario: Der Verkehr ist zu verschiedenen Zeitpunkten unausgeglichen
Fall: Flash Ausverkauf, Ansturm auf den Kauf
Erklärung: Xiao Ming braucht lange, um Kuchen zuzubereiten. Nachdem die Bestellung eingegangen ist, trägt er sie zunächst in eine Liste ein und erstellt sie dann einzeln in der Reihenfolge zu groß ist, wird vorübergehend ein „Ausverkauft“-Schild angezeigt.
Implementierung: Verwenden Sie Single-Threaded-Tools, um Geschäftsanforderungen in die Warteschlange zu stellen. Wenn die Geschäftsanfrage den Schwellenwert erreicht, erfolgt eine freundliche Aufforderung und die Anfrage des Benutzers wird abgelehnt.
Hinweis: Bei Spitzennachfrage können Sie in Spitzenzeiten Aufforderungen wie „Vorübergehend nicht zum Kauf verfügbar, bitte warten“ posten, um zu verhindern, dass der Verkehr das spätere Geschäft beeinträchtigt. Bei Anforderungen wie Flash-Verkäufen, die beendet werden, sobald sie verfügbar sind, muss das Problem der Übervergabe berücksichtigt werden. Sie können einen Kontingentzähler hinzufügen oder eine Flash-Verkaufsabschlussmarkierung ausgeben, wenn die Flash-Verkaufsquote erschöpft ist Das Folgeverarbeitungsprogramm erkennt die Abschlussmarkierung und führt die Folgeverarbeitung durch.
3: Liefergarantie
Szenario: Der Inhalt muss strikt einzeln ausgeführt werden und die Ausführung ist garantiert erfolgreich Wenn die Ausführung fehlschlägt oder unterbrochen wird, können Sie eine Wiederherstellung durchführen
Fall: Banken- und Finanzsysteme, Systeme, die ihre Fähigkeiten zur Notfallwiederherstellung verbessern müssen
Erklärung: Der von Xiao Ming hergestellte Kuchen muss überprüft und überprüft werden vom Kunden unterschrieben, bevor er mit dem Backen der nächsten Torte fortfahren kann.
Implementierung: Nachdem das Warteschlangensystem die Geschäftsanforderungen in die Nachrichtenwarteschlange geschrieben hat, fährt es mit der nächsten Geschäftsverarbeitung fort. Das nachfolgende Verarbeitungsprogramm verarbeitet den Inhalt der Warteschlange nacheinander und erteilt nach Abschluss der Verarbeitung eine „Vollständige Genehmigung“. Der Inhalt in der Nachrichtenwarteschlange kann erst nach Erhalt der „Vollständigen Berechtigung“ aus der Nachrichtenwarteschlange gelöscht werden.
Hinweis: Konzentrieren Sie sich auf Probleme im Zusammenhang mit der Notfallwiederherstellung, z. B. Probleme bei der Geschäftswiederherstellung und wiederholte Verarbeitungsprobleme.
Viertens: Sortiergarantie
Szenario: Der Inhalt in der Nachrichtenwarteschlange hat eine strikte Reihenfolge.
Fall: Warteschlangen- und Wartesystem
Erklärung: Xiao Ming muss sich strikt an die Reihenfolge beim Kuchenbacken halten.
Implementierung: Das Warteschlangensystem schreibt die Inhalte einzeln in die Nachrichtenwarteschlange, ordnet sie in einer einzelnen Zeile an und extrahiert die Daten in der Reihenfolge „First In, First Out“ für die anschließende Verarbeitung.
Hinweis: Sie müssen einen einzelnen Thread verwenden, um sicherzustellen, dass es nur eine Produktionslinie gibt.
Fünf: Skalierbarkeit
Szenario: Neue Abonnenten hinzufügen, wenn der Publish-Subscribe-Modus verwendet wird
Fall: Nach der Registrierung eines Benutzers im Modell zum Senden erfolgreicher Textnachrichten. Fügen Sie eine Funktion zum Senden von E-Mails
hinzu, um Folgendes zu implementieren: Mehrere Verbraucher abonnieren die mittlere Schicht einer Nachricht, und dann veröffentlicht der Herausgeber die Informationen auf der mittleren Schicht. Verbraucher, die diese mittlere Schicht abonnieren, können diese Nachricht empfangen und eine anschließende Verarbeitung durchführen. in dieser Struktur. Wenn Sie eine Nachrichtenverarbeitungskomponente hinzufügen möchten, müssen Sie diese Komponente nur auf der mittleren Ebene abonnieren.
Hinweis: Stellen Sie sicher, dass keine tiefe Kopplung zwischen Unternehmen besteht, um Interferenzen während der Erweiterung zu vermeiden.
Die oben genannten sind mehrere häufig verwendete Szenarien für Nachrichtenwarteschlangen, die die Unterschiede zwischen Systemen ausgleichen und die Systemstabilität verbessern können.
Bei der Auswahl des Nachrichtenwarteschlangenmediums wird empfohlen, dass die Bedingungen und Ziele zu Beginn nicht maximiert werden müssen. Das Programm muss noch langfristig gewartet werden und Optimierungsprozess.
Obwohl der Leistungsabfall von Redis immer noch sehr schwerwiegend ist, wenn der Datenverkehr hoch ist und eine große Menge persistenter Daten erforderlich ist, wird dennoch empfohlen, dass Sie Warteschlangen von Redis lernen Durch die Anwendung von Warteschlangen wird jedes Online-Projekt durch eine Reihe von Videos ständig optimiert und verbessert. Es tut mir leid, dass ich das nicht kann Die Anwendungsszenarien jedes Jobs sind unterschiedlich, daher gibt es unterschiedliche Es wird bei Bedarf entsprechend den spezifischen Anforderungen verbessert.
Bei der Beurteilung der Warteschlangennachfrage müssen Sie bei der Beurteilung der Anwendung der Warteschlangenbedingungen ein Zählerfeld hinzufügen. Bewerten Sie die Länge der aktuellen Warteschlange jedes Mal, wenn sie in die Warteschlange verschoben wird Nummer, es wird nicht in das Warteschlangenprogramm aufgenommen.
Bei der tatsächlichen Verwendung besteht keine Notwendigkeit, gezielt zu verfolgen, wo Nachrichtenwarteschlangen hinzugefügt werden müssen. Stattdessen sollte es entsprechend der tatsächlichen Situation bei der Geschäftstrennung und -entkopplung sowie einigen besonderen Anforderungen angemessen ausgewählt und verwendet werden.
Das obige ist der detaillierte Inhalt vonPHP-Nachrichtenwarteschlange. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!