Maison cadre php Swoole Comment swoole détermine-t-il si fd est connecté ?

Comment swoole détermine-t-il si fd est connecté ?

Dec 16, 2019 pm 01:57 PM
swoole

Comment swoole détermine-t-il si fd est connecté ?

Qu'est-ce qu'un battement de coeur ?

Comme son nom l'indique, le battement de coeur est un critère pour juger si une chose est vivante ou morte. En swoole, le battement de coeur est utilisé pour juger si une connexion est normale ou déconnectée.

Parlant du protocole TCP (Apprentissage recommandé : Tutoriel vidéo SWOOLE )

Nous savons tous qu'un logo de groupe de cinq yuans est une connexion réseau , create Il y a trois poignées de main pour une connexion et quatre poignées de main pour déconnecter une connexion. Que le serveur ou le client initie la fermeture de la connexion, il terminera le processus en quatre vagues. De cette façon, tout est parfait, le système recycle ce fd et la couche application peut également gérer les questions associées via onClose. rappel.

Qu'est-ce que fd ?

Le nom scientifique de fd est un descripteur de fichier. Dans la philosophie Unix selon laquelle tout est un fichier, ce fd est l'identifiant exposé par la couche système à la couche métier pour représenter une connexion réseau à cinq tuples. .

Vous pouvez simplement le comprendre comme un index. En exploitant ce fd, la couche système peut trouver la connexion correspondante et effectuer une série d'opérations, telles que l'envoi de données à l'élève du réseau, la fermeture de la connexion, etc.

Pourquoi le cœur bat-il ?

Comme mentionné tout à l'heure, si nous voulons fermer une connexion, nous pouvons lancer une opération de fermeture de connexion sur fd au niveau de la couche métier. Prenons swoole comme exemple :

$server->close($fd);
Copier après la connexion

Sous. Dans des circonstances normales, il terminera les quatre vagues (swoole aura un rappel onClose) et le système recyclera le fd pour l'allouer à d'autres connexions.

Alors pourquoi le système recycle-t-il les fd ? Parce que les ressources fd sont limitées, elles doivent donc être réutilisées.

Mais dans certains cas, comme le débranchement soudain du câble réseau ou le débranchement du câble optique lors des exercices de Lanxiang, le serveur ne peut pas détecter l'anomalie de cette connexion, mais en fait la connexion a échoué s'il n'y en a pas. Mécanisme de recyclage, ce type de connexion utilisera tout le fd, ce qui empêchera le système d'accepter de nouvelles demandes de connexion, il existe donc un mécanisme de battement de cœur.

Quel est le mécanisme du rythme cardiaque ?

Le mécanisme de battement de cœur est une méthode fournie par la couche métier pour déterminer si une connexion est active, permettant au système de déterminer si une connexion a échoué. Il existe généralement deux méthodes d'implémentation :

1 :

Le client envoie régulièrement un paquet de battements de cœur pour indiquer au serveur que je suis toujours en vie. Le serveur vérifie régulièrement la liste de tous les clients pour voir si l'heure est venue. leur dernier paquet de battements de cœur est passé. S'il est trop long, il sera considéré qu'il n'y a pas de battement de cœur, cela sera considéré comme une connexion morte et la connexion sera fermée activement.

2 : Le serveur demande régulièrement à tous les clients, êtes-vous toujours en vie ? Si vous êtes en vie, donnez-moi un feedback. Les clients qui ne recevront pas de feedback seront tués sans pitié.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser la coroutine Swoole dans Laravel Comment utiliser la coroutine Swoole dans Laravel Apr 09, 2024 pm 06:48 PM

L'utilisation des coroutines Swoole dans Laravel peut traiter un grand nombre de requêtes simultanément. Les avantages incluent : Traitement simultané : permet de traiter plusieurs requêtes en même temps. Hautes performances : Basé sur le mécanisme d’événements Linux epoll, il traite efficacement les requêtes. Faible consommation de ressources : nécessite moins de ressources serveur. Facile à intégrer : intégration transparente avec le framework Laravel, simple à utiliser.

Comment utiliser Swoole pour implémenter un serveur proxy inverse HTTP hautes performances Comment utiliser Swoole pour implémenter un serveur proxy inverse HTTP hautes performances Nov 07, 2023 am 08:18 AM

Comment utiliser Swoole pour implémenter un serveur proxy inverse HTTP hautes performances Swoole est un framework de communication réseau hautes performances, asynchrone et simultané basé sur le langage PHP. Il fournit une série de fonctions réseau et peut être utilisé pour implémenter des serveurs HTTP, des serveurs WebSocket, etc. Dans cet article, nous présenterons comment utiliser Swoole pour implémenter un serveur proxy inverse HTTP hautes performances et fournirons des exemples de code spécifiques. Configuration de l'environnement Tout d'abord, nous devons installer l'extension Swoole sur le serveur

Lequel est le meilleur, Swoole ou Workerman ? Lequel est le meilleur, Swoole ou Workerman ? Apr 09, 2024 pm 07:00 PM

Swoole et Workerman sont tous deux des frameworks de serveur PHP hautes performances. Connu pour son traitement asynchrone, ses excellentes performances et son évolutivité, Swoole convient aux projets qui doivent gérer un grand nombre de requêtes simultanées et un débit élevé. Workerman offre la flexibilité des modes asynchrone et synchrone, avec une API intuitive mieux adaptée à la facilité d'utilisation et aux projets gérant des volumes de concurrence inférieurs.

Comment swoole_process permet-il aux utilisateurs de changer ? Comment swoole_process permet-il aux utilisateurs de changer ? Apr 09, 2024 pm 06:21 PM

Swoole Process permet aux utilisateurs de changer. Les étapes spécifiques sont les suivantes : créer un processus ; définir l'utilisateur du processus pour démarrer le processus ;

Comment redémarrer le service dans le framework swoole Comment redémarrer le service dans le framework swoole Apr 09, 2024 pm 06:15 PM

Pour redémarrer le service Swoole, procédez comme suit : Vérifiez l'état du service et obtenez le PID. Utilisez "kill -15 PID" pour arrêter le service. Redémarrez le service en utilisant la même commande que celle utilisée pour démarrer le service.

Lequel a les meilleures performances, swoole ou java ? Lequel a les meilleures performances, swoole ou java ? Apr 09, 2024 pm 07:03 PM

Comparaison des performances : Débit : Swoole a un débit plus élevé grâce à son mécanisme de coroutine. Latence : la commutation de contexte de coroutine de Swoole a une surcharge et une latence plus faibles. Consommation de mémoire : les coroutines de Swoole occupent moins de mémoire. Facilité d'utilisation : Swoole fournit une API de programmation simultanée plus facile à utiliser.

Swoole en action : Comment utiliser les coroutines pour le traitement de tâches simultanées Swoole en action : Comment utiliser les coroutines pour le traitement de tâches simultanées Nov 07, 2023 pm 02:55 PM

Swoole en action : Comment utiliser les coroutines pour le traitement de tâches simultanées Introduction Dans le développement quotidien, nous rencontrons souvent des situations où nous devons gérer plusieurs tâches en même temps. La méthode de traitement traditionnelle consiste à utiliser plusieurs threads ou multi-processus pour réaliser un traitement simultané, mais cette méthode présente certains problèmes de performances et de consommation de ressources. En tant que langage de script, PHP ne peut généralement pas utiliser directement des méthodes multithread ou multi-processus pour gérer les tâches. Cependant, avec l'aide de la bibliothèque de coroutines Swoole, nous pouvons utiliser des coroutines pour obtenir un traitement de tâches simultanées hautes performances. Cet article présentera

Comment est programmée la coroutine swoole ? Comment est programmée la coroutine swoole ? Apr 09, 2024 pm 07:06 PM

Swoole coroutine est une bibliothèque de concurrence légère qui permet aux développeurs d'écrire des programmes simultanés. Le mécanisme de planification des coroutines Swoole est basé sur le modèle de coroutine et la boucle d'événements, utilisant la pile de coroutines pour gérer l'exécution des coroutines et suspendant les coroutines après qu'elles aient perdu le contrôle. La boucle d'événements gère les événements d'E/S et de minuterie. Lorsque la coroutine abandonne le contrôle, elle est suspendue et revient à la boucle d'événements. Lorsqu'un événement se produit, Swoole passe de la boucle d'événements à la coroutine en attente, complétant le changement en enregistrant et en chargeant l'état de la coroutine. La planification des coroutines utilise un mécanisme de priorité et prend en charge les opérations de suspension, de mise en veille et de reprise pour contrôler de manière flexible l'exécution de la coroutine.

See all articles