


Traitement de la file d'attente PHP : principe de mise en œuvre de la file d'attente de messages PHP (image et texte)
Que signifie la file d'attente php ? Comment y parvient-on ? Quels sont les scénarios d’application ? Ce qui suit explique en détail le principe de mise en œuvre de la file d'attente de messages PHP grâce à l'utilisation de MySQL pour réaliser le découplage et à l'utilisation de Redis pour réduire le trafic.
Le concept de file d'attente :
1. C'est le middleware de la structure de file d'attente
2. 🎜>n'a pas besoin d'être traité immédiatement
3est traité dans l'ordre par les abonnés /consommateurs
File d'attente. principe :
Écrivez simplement dans la file d'attente et écrivez , ne vous inquiétez de rien d'autre, peu importe que vous puissiez finir de lire ou non
Même chose,il suffit de lire hors de la file d'attente , de faire le travail quand vous venez, de vous reposer quand il n'y a pas de travail
Scénarios d'application :Redondance :
Stockage persistant dans la file d'attente, qui est ensuite obtenu par le programme de traitement des commandes. Une fois le traitement terminé, l'enregistrement est suppriméDécouplage : Oui Ces deux-là.
les systèmes (traitement des affaires et des files d'attente) sont ce que nous faisons habituellement. Il n'y a pas de relation directe entre les systèmes d'entrée et de sortie de la file d'attenteSi un système tombe en panne, l'autre système ne sera pas affecté car il y a une file d'attente au milieu Le trafic est réduit en Edge : ventes flash et ventes rush. Le trafic a considérablement augmenté,
utilisez la file d'attente des messages en conjonction avec le cache(c'est-à-dire que sous la limite, si seulement 10 sont autorisés, une fois que 10 sont stockés dans la file d'attente, ils ne seront plus stockés, et vous serez informé que la vente flash est terminée) Communication asynchrone :
Parce que le message lui-même peut provoquer le retour direct du système en file d'attente, on dit que le fonctionnement asynchrone du programme est réalisé
Évolutivité du scénario : tel queMaintenant, il n'y a que le système de commande et le système financier. Je souhaite ajouter un système de distribution à l'avenir Laissez simplement la distribution. système abonnez-vous directement à cette file d'attente.
Garantie de tri : quelques scénarios Par exemple,L'ordre de traitement des données bancaires est très important , parce que la file d'attente elle-même peut être transformée en un système à thread unique, à entrée unique et à sortie unique
Support de mise en œuvre :1. Utilisation de MySQL : haute fiabilité, facile à mettre en œuvre, vitesse lente
2. Utilisation de Redis : paquet de messages rapide et unique Faible efficacité
3. Utiliser des bibliothèques tierces plus professionnelles : hautement professionnelles, coût d'apprentissage fiable et élevé.
Mécanisme de déclenchement du traitement des messages :1. Lecture en boucle sans fin : facile à mettre en œuvre, incapable de répondre à temps en cas de panne (
convient pour de courtes périodes telles que les ventes flash) 2. Tâches planifiées : la pression est uniformément répartie et a une limite supérieure de traitement (peu importe à quel point la valeur de pointe du système devant votre file d'attente est instable,
le système derrière la file d'attente sera toujours exécuté régulièrement)
Remarque : le temps de synchronisation est la clé : ne terminez pas la tâche planifiée précédente avant le début de la tâche planifiée suivanteCas : Système de commande, passer une commande Après avoir écrit les informations de commande dans la file d'attente, il indique immédiatement que la commande a été passée avec succès. Le système de distribution lit la file d'attente régulièrement toutes les quelques minutes
et résume les commandes3. Processus démon : similaire à php-fpm et cgi, nécessite les bases du shell (utilisez ce processus pour vérifier s'il y a du contenu dans la file d'attente. S'il y a du contenu, démarrez le système de retrait de la file d'attente pour le traitement)
Utilisez MySQL pour implémenter le cas de découplage :
Pourquoi découplage : Si l'architecture est ensemble. Le système de commande est soumis à une forte pression et les informations logistiques n'ont pas besoin d'être renvoyées immédiatement. Lorsque les commandes s'effondrent, la logistique s'effondre également, nous devons donc découpler la conception de la table :
Le système de commande écrit le code dans la file d'attente :
Exécuter les tâches planifiéesCrontab -e
Remarque : ce fichier journal doit être créé par vous-même
1. le navigateur Visitez order.phpAjouter une commande
2 Allez dans la base de données pour voir les résultats et regardez dans le journal shell Résultat ( n'a pas été exécuté avec succès. Il se peut que le fichier sh doive être placé dans un certain répertoire et sera exécuté une fois l'examen terminé )
Utilisation de Redis pour un cas de réduction du trafic
Le navigateur accède directement à user.php
en cours d'utilisation php -f savetodb.php dans shell
Accédez à la base de données pour afficher Recommandations associées :Service de file d'attente de messages PHP
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds





Alipay Php ...

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...
