Maison >cadre php >Workerman >Introduction aux fonctionnalités de WorkerMan

Introduction aux fonctionnalités de WorkerMan

尚
avant
2020-02-04 17:58:252931parcourir

Workerman est un framework de messagerie instantanée de socket PHP asynchrone open source hautes performances. Cet article vous présentera certaines fonctionnalités de Workerman. J'espère qu'il sera utile à tout le monde.

Introduction aux fonctionnalités de WorkerMan

Recommandations associées : "Tutoriel Workerman"

Introduction aux fonctionnalités WorkerMan :

1. 🎜>

Les applications développées à l'aide de WorkerMan peuvent s'exécuter de manière indépendante sans recourir à des conteneurs tels que php-fpm, Apache et nginx. Cela rend très pratique pour les développeurs PHP le développement, le déploiement et le débogage d’applications.

2. Prise en charge du multi-processus PHP

Afin de tirer pleinement parti des performances du multi-CPU du serveur, WorkerMan prend en charge le multi-processus et le multi-tâches par défaut. WorkerMan démarre un processus principal et plusieurs sous-processus pour fournir des services au monde extérieur. Le processus principal est responsable de la surveillance des sous-processus. Les sous-processus surveillent indépendamment les connexions réseau et reçoivent et traitent les données. , WorkerMan est plus stable et efficace.

3. Prise en charge de TCP et UDP

WorkerMan prend en charge deux protocoles de transmission TCP et UDP. Il vous suffit de modifier un attribut pour modifier le protocole de couche de transport, et le code métier n'a pas besoin de l'être. modifié.

4. Prise en charge des connexions longues

Souvent, les applications PHP doivent maintenir de longues connexions avec les clients, tels que les salons de discussion, les jeux, etc., mais les conteneurs PHP traditionnels (apache, nginx, php- fpm) est difficile à faire.

En utilisant WorkerMan, tant que l'activité côté serveur n'appelle pas activement l'interface de connexion étroite, vous pouvez utiliser des connexions longues PHP. Un seul processus WorkerMan peut prendre en charge des dizaines de milliers de connexions simultanées, et plusieurs processus peuvent prendre en charge des centaines de milliers, voire des millions de connexions simultanées.

5. Prend en charge divers protocoles de couche d'application

L'interface WorkerMan prend en charge divers protocoles de couche d'application, y compris les protocoles personnalisés. Changer le protocole dans WorkerMan est également très simple. Il suffit de configurer un champ et le protocole est automatiquement commuté sans aucune modification du code métier. Vous pouvez même ouvrir plusieurs ports avec différents protocoles pour répondre aux différents besoins des clients.

6. Prise en charge de la simultanéité élevée.

WorkerMan prend en charge la bibliothèque d'interrogation d'événements Libevent (l'extension Libevent doit être installée). L'utilisation de Libevent offre d'excellentes performances en cas de simultanéité élevée. Appels système liés à Select intégrés, les performances sont également très puissantes.

7. Prise en charge du redémarrage en douceur des services

Lorsqu'un service doit être redémarré (comme une version release), nous ne voulons pas que le processus qui traite les demandes des utilisateurs soit terminé immédiatement, sans parler du moment du redémarrage, la communication client a échoué.

WorkerMan fournit une fonction de redémarrage en douceur, qui peut garantir une mise à niveau fluide des services sans affecter l'utilisation des clients.

8. Prise en charge de la détection des mises à jour des fichiers et du chargement automatique

Pendant le processus de développement, nous espérons que lorsque nous modifierons le code, il prendra effet immédiatement afin que nous puissions voir les résultats. WorkerMan fournit le composant de surveillance des fichiers FileMonitor Tant que le fichier est mis à jour, WorkerMan exécutera automatiquement le rechargement pour charger le nouveau fichier et le rendre efficace.

9. Prend en charge l'exécution de sous-processus en tant qu'utilisateurs spécifiés

Étant donné que le sous-processus est le processus qui gère réellement les demandes des utilisateurs, pour des raisons de sécurité, le sous-processus ne peut pas avoir des autorisations trop élevées, Ainsi, WorkerMan prend en charge la définition de sous-processus. Exécutez les processus en tant que même utilisateur, ce qui rend votre serveur plus sécurisé.

10. Supporter les objets ou les ressources à maintenir en permanence

WorkerMan ne chargera et n'analysera le fichier PHP qu'une seule fois pendant le processus en cours, puis il résidera dans la mémoire, ce qui rend la classe et la déclaration de fonction, l'environnement d'exécution PHP, les tables de symboles, etc. ne seront pas créés et détruits à plusieurs reprises, ce qui est complètement différent du mécanisme PHP exécuté sous le conteneur Web.

Dans WorkerMan, les membres statiques ou les variables globales sont conservés en permanence pendant le cycle de vie d'un processus sans être activement détruits, c'est-à-dire si des ressources telles que des objets ou des connexions sont placées dans des variables globales ou des membres statiques de classe. les demandes tout au long du cycle de vie du processus actuel peuvent être réutilisées.

Par exemple, tant qu'une connexion à la base de données est initialisée une fois dans un seul processus, toutes les requêtes ultérieures de ce processus peuvent réutiliser cette connexion à la base de données, évitant ainsi la négociation à trois voies TCP, la vérification des autorisations de la base de données et la déconnexion pendant connexions fréquentes à la base de données. Le processus de négociation à quatre voies TCP améliore considérablement l'efficacité des applications.

11. Hautes performances

Étant donné que le fichier php est lu et analysé une fois à partir du disque, il résidera dans la mémoire la prochaine fois qu'il sera utilisé, l'opcode dans la mémoire. être utilisé directement, ce qui réduit considérablement les E/S disque et de nombreux processus fastidieux en PHP tels que l'initialisation des requêtes, la création de l'environnement d'exécution, l'analyse lexicale, l'analyse syntaxique, la compilation de l'opcode, la fermeture des requêtes, etc., et ne repose pas sur des conteneurs. comme nginx et apache. Cela réduit la surcharge de communication entre nginx et d'autres conteneurs et PHP. La chose la plus importante est que les ressources peuvent être maintenues en permanence et qu'il n'est pas nécessaire d'initialiser la connexion à la base de données à chaque fois, donc utiliser WorkerMan pour développer. les applications ont des performances très élevées.

12. Prise en charge de HHVM

Prise en charge de l'exécution sur la machine virtuelle HHVM, qui peut doubler les performances de PHP. Surtout dans les activités informatiques gourmandes en ressources CPU, les performances sont très excellentes. Grâce à une comparaison de tests de résistance réels, lorsqu'il n'y a pas de charge, le débit réseau de WorkerMan exécuté sous HHVM est environ 30 à 80 % plus élevé que celui exécuté sous Zend PHP5.6

Document de référence

http ://doc.workerman.net/principle.html

Lien original : https://blog.csdn.net/u012164509/article/details/90749646

Pour plus de connaissances sur Workerman, veuillez prêter attention à la colonne du didacticiel du site Web PHP chinois workerman framework .

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer