Maison >cadre php >Workerman >Caractéristiques de WorkerMan

Caractéristiques de WorkerMan

(*-*)浩
(*-*)浩original
2019-11-22 15:27:032414parcourir

Ce qui suit est la chronique du tutoriel php workerman pour vous présenter les fonctionnalités de WorkerMan. J'espère qu'il sera utile aux amis qui en ont besoin !

Caractéristiques de WorkerMan

Caractéristiques de WorkerMan

1.

Les applications développées à l'aide de WorkerMan peuvent s'exécuter de manière indépendante sans dépendre de 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 faire jouer pleinement les 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, UDP

WorkerMan prend en charge les deux protocoles de couche de transport TCP et UDP. Il vous suffit de modifier un attribut pour modifier le protocole de couche de transport, aucune affaire. le code doit ê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) sont difficiles à réaliser. En utilisant WorkerMan, tant que l'activité côté serveur n'appelle pas activement l'interface de fermeture de connexion, 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. Les performances d'utilisation de Libevent sont très excellentes lors de l'utilisation d'une simultanéité élevée). S'il n'est pas installé, Libevent utilise les appels système intégrés à PHP liés à Select, et ses 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 l'utilisateur les demandes doivent être terminées immédiatement, sans parler du moment où vous souhaitez redémarrer, ce qui entraîne l'échec de la communication client. WorkerMan fournit une fonction de redémarrage en douceur pour garantir des mises à niveau de service fluides 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. Prise en charge de l'exécution des processus enfants en tant qu'utilisateurs spécifiés

Étant donné que le processus enfant est le processus qui gère réellement les demandes des utilisateurs, pour des raisons de sécurité, le processus enfant ne peut pas en avoir également. autorisations élevées, donc WorkerMan prend en charge la configuration de l'utilisateur pour que le processus sous-exécutant s'exécute, ce qui rend votre serveur plus sécurisé.

10. Objets ou ressources de support à 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 le la mémoire, qui fait que les déclarations de classe et de fonction, les environnements 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 un 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 sera utilisé directement, ce qui est extrêmement réduit considérablement de nombreux processus fastidieux tels que l'initialisation des E/S disque et des requêtes PHP, la création de l'environnement d'exécution, l'analyse lexicale, l'analyse syntaxique, la compilation de l'opcode, la fermeture de la requête, etc. Il ne repose pas sur des conteneurs tels que nginx et apache, et il n'est pas nécessaire que des conteneurs tels que nginx communiquent avec PHP. La chose la plus importante concernant la surcharge est que les ressources peuvent être maintenues en permanence et qu'il n'est pas nécessaire de les initialiser. la connexion à la base de données à chaque fois, donc utiliser WorkerMan pour développer des applications offre 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 d'activité de charge, le débit réseau de WorkerMan exécuté sous HHVM est d'environ 30 à 80 % plus élevé que celui exécuté sous Zend PHP5.6

Pour plus d'articles techniques liés à Workerman, veuillez visiter la colonne Tutoriel Workerman pour apprendre !

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:
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
Article précédent:Le concept du cadre WorkermanArticle suivant:Le concept du cadre Workerman