Heim > häufiges Problem > Hauptteil

Was bedeutet Herzschlagmechanismus?

coldplay.xixi
Freigeben: 2020-06-28 15:22:18
Original
3853 Leute haben es durchsucht

Der Heartbeat-Mechanismus ist ein Mechanismus, der regelmäßig eine benutzerdefinierte Struktur [Heartbeat-Paket] sendet, um der anderen Partei mitzuteilen, dass sie noch aktiv ist, um die Gültigkeit der Verbindung sicherzustellen. Sie wird zu jedem festgelegten Zeitpunkt wie ein Heartbeat gesendet .

Was bedeutet Herzschlagmechanismus?

Der Heartbeat-Mechanismus bedeutet:

Das Empfangen und Senden von Daten im Netzwerk erfolgt vollständig im Betriebssystem SOCKET ist implementiert. Wenn diese Buchse jedoch nicht angeschlossen ist, wird es definitiv zu Problemen beim Senden und Empfangen von Daten kommen. Doch wie stellt man fest, ob diese Steckdose noch verwendet werden kann? Dazu muss 心跳机制 im System erstellt werden.

Verwandte Lernempfehlungen: PHP Programmieren vom Anfänger bis zum Experten

Tatsächlich hat TCP bereits einen Mechanismus namens Heartbeat für uns implementiert. Wenn Sie einen Heartbeat festlegen, sendet TCP innerhalb eines bestimmten Zeitraums (z. B. 3 Sekunden) die von Ihnen festgelegte Anzahl von Heartbeats (z. B. 2 Mal) und diese Informationen haben keinen Einfluss auf das von Ihnen definierte Protokoll . . Der sogenannte „Heartbeat“ besteht darin, regelmäßig eine benutzerdefinierte Struktur (Heartbeat-Paket oder Heartbeat-Frame) zu senden, um der anderen Partei mitzuteilen, dass sie „online“ ist. um die Gültigkeit des Links sicherzustellen.

Das sogenannte Heartbeat-Paket besteht darin, dass der Client regelmäßig einfache Informationen an den Server sendet, um ihm mitzuteilen, dass ich noch da bin. Der Code besteht darin, alle paar Minuten eine feste Nachricht an den Server zu senden. Wenn der Server die Client-Nachricht nicht innerhalb weniger Minuten erhält, wird der Client als getrennt betrachtet.

Wenn beispielsweise eine Kommunikationssoftware längere Zeit nicht verwendet wird und Sie wissen möchten, ob der Status online oder offline ist, benötigen Sie ein Heartbeat-Paket und senden und empfangen regelmäßig Pakete. Vertragsaussteller: Dies kann der Client oder der Server sein, je nachdem, was bequemer und sinnvoller ist. Normalerweise der Kunde. Der Server kann auch regelmäßig Heartbeats abfragen und senden.

心跳包Der Grund, warum es Heartbeat-Paket genannt wird, ist, dass es zu einem festen Zeitpunkt wie ein Heartbeat gesendet wird, um dem Server mitzuteilen, dass der Client noch am Leben ist. Tatsächlich dient dies dazu, eine lange Verbindung aufrechtzuerhalten. Für den Inhalt dieses Pakets gibt es keine besonderen Vorschriften, es handelt sich jedoch im Allgemeinen um ein sehr kleines Paket oder ein leeres Paket, das nur den Header enthält.

Im TCP-Mechanismus gibt es einen Heartbeat-Paketmechanismus, der eine TCP-Option ist. Die Standardeinstellung des Systems ist eine Herzschlagfrequenz von 2 Stunden. Es kann jedoch keine Stromausfälle der Maschine, das Herausziehen des Netzwerkkabels oder die Unterbrechung der Firewall erkennen. Darüber hinaus ist die Logikschicht möglicherweise nicht so einfach mit Verbindungsabbrüchen umzugehen.

Im Allgemeinen ist es in Ordnung, wenn es nur dazu dient, dich am Leben zu halten. 心跳包 Im Allgemeinen wird dies durch das Senden leerer Pakete auf der logischen Ebene erreicht. Der nächste Timer sendet in einem bestimmten Zeitintervall ein leeres Paket an den Client, und dann gibt der Client das gleiche leere Paket zurück. Wenn der Server das vom Client gesendete Feedback-Paket nicht innerhalb eines bestimmten Zeitraums erhält, kann er dies nur tun feststellen Sagte, es sei offline. Einfach senden oder empfangen. Wenn das Ergebnis Null ist, bedeutet dies, dass es offline ist.

Allerdings kann es unter 长连接 für längere Zeit zu keinem Datenaustausch kommen. Theoretisch ist diese Verbindung immer verbunden, in der Praxis ist es jedoch schwierig festzustellen, ob auf dem Zwischenknoten ein Fehler vorliegt. Was noch schlimmer ist, ist, dass einige Knoten (Firewalls) Verbindungen, die keine Dateninteraktion haben, innerhalb eines bestimmten Zeitraums automatisch trennen.

In dieser Zeit brauchen wir unser Herzschlagpaket, um lange Verbindungen aufrechtzuerhalten und am Leben zu erhalten. Nachdem die Serverlogik von der Trennung erfahren hat, muss sie möglicherweise einige Dinge tun, z. B. die Daten nach der Trennung bereinigen und die Verbindung wiederherstellen. Dies wird natürlich von der Logikschicht entsprechend den Anforderungen durchgeführt. Im Allgemeinen werden Heartbeat-Pakete hauptsächlich zur Keep-Alive- und Trennungsverarbeitung langer Verbindungen verwendet. Für allgemeine Anwendungen ist eine Beurteilungszeit von 30–40 Sekunden relativ gut. Wenn die Anforderungen wirklich hoch sind, stellen Sie sie auf 6-9 Sekunden ein.

Was bedeutet Herzschlagmechanismus?

Das obige ist der detaillierte Inhalt vonWas bedeutet Herzschlagmechanismus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!