Heim >PHP-Framework >Swoole >Wo werden Swoole verwendet?
Einführung in Anwendungsszenarien
Verbinden und Kommunizieren mit Hardwaregeräten (Positionierungsgeräten)
IM-System (wird für Live-Anwendungen verwendet Broadcast-Seiten Chat-Kommunikation) (Empfohlenes Lernen: Swoole-Video-Tutorial )
Szenario 1 – Echtzeiterfassung von Positionsdaten und Echtzeitausgabe (z. B. Fahrverhalten des Didi-Fahrers). Flugbahn)
Anweisungen:
Es ist notwendig, alle Positionierungsgeräte in Echtzeit zu empfangen und die Echtzeit-Streckenaufzeichnungen auf der Karte anzuzeigen
Hinweis:
Der erste Punkt:
Benutzer 1, 2, 3 sind mit Web1-Server verbunden, Web1 kann nur Benutzer 1 übertragen , 2, 3 beim Senden von Informationen, aber keine Übertragung von Web2. Verbundene Benutzer 4, 5, 6. Gehen Sie davon aus, dass Benutzer 1 eine Nachricht sendet. Alle Benutzer auf dem Web2-Server können sie nicht sehen
Zweiter Punkt: Frequenzkontrolle von Nachrichten, zum Beispiel: 100 Geräte, 100 Benutzer, 100 Geräte laden ein Datenelement pro Sekunde hoch, das gesendet werden muss an jeden Benutzer in Echtzeit, d. h. 100*100 = 1 W Mal pro Sekunde, sodass Daten pro Sekunde zusammengefasst und an alle Benutzer usw. gesendet werden können.
Szenario 2 – Nur Positionierungsgeräte sammeln und speichern Sie sie in der Datenbank
Anleitung: Sie müssen die von allen Positionierungsgeräten hochgeladenen Daten speichern, 7 Geräte, ein Datenelement pro Sekunde, ich persönlich verwende die Aufgabenfunktion von Swoole (liefern). asynchrone Aufgabe zum task_worker-Pool, diese Funktion ist nicht blockierend, die Anzahl der Arbeitsprozesse kann ebenfalls konfiguriert werden) und rufen Sie dann die Schnittstelle auf, um die Bibliothek aufzurufen
Serverspeicheralarmproblem
Grund: Es liegt in der swoole_server->task-Funktion
Offiziell eingeführt, dass die unterste Ebene der Aufgabe die Unix-Socket-Pipe-Kommunikation verwendet, was vollen Speicher und keinen E/A-Verbrauch bedeutet. Die Lese- und Schreibleistung eines einzelnen Prozesses kann 1 Million/s erreichen. Verschiedene Prozesse nutzen unterschiedliche Pipelines für die Kommunikation, wodurch die Nutzung mehrerer Kerne maximiert werden kann.
Wenn die Aufgabe jedoch darin besteht, die Programmschnittstelle aufzurufen, steigt die Speichernutzung aufgrund von Netzwerkverzögerungen weiter an, wenn die hinzugefügten Aufgaben größer sind als die verbrauchten Aufgaben, was dazu führt, dass der Speicher des Servers voll ist.
Lösung: Steuern Sie die Häufigkeit der Nachrichteneingabe in die Aufgabe. Sie können diese Zeit definieren und festlegen, ob sie entsprechend Ihrem eigenen Geschäftsszenario verzögert werden kann, alle Daten innerhalb von 1 Sekunde zusammenfassen und dann die Programmschnittstelle aufrufen (I Ich persönlich verwende Redis beim Zusammenfassen: Swoole Framework Wiki
Vorteile
kapselt die Modellklasse der Datenbank, die ORM-Schnittstelle der Datenbank
Redis-Kapselung , wodurch ein Zugriff auf mehrere Instanzen erreicht werden kann
Das Framework verfügt über einige häufig verwendete Methoden wie Protokoll usw. (Ich habe nur Protokoll verwendet)Webim hat einen offiziellen Dämon, auf den Sie sich beziehen können es
Das obige ist der detaillierte Inhalt vonWo werden Swoole verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!