Explication détaillée du code graphique de l'opération RabbitMQ en Python

黄舟
Libérer: 2017-05-07 10:47:01
original
1455 Les gens l'ont consulté


Préparation des connaissances

RabbitMQ

RabbitMQ est un système de messagerie d'entreprise complet et réutilisable basé sur AMQP.

MQ

MQ signifie Message Queue. Message Queuing (MQ) est une méthode de communication d'application à application.
Explication détaillée du code graphique de lopération RabbitMQ en Python
La file d'attente des messages fonctionne selon le modèle de publication-abonnement. L'expéditeur du message est la source du message. Après avoir traité le message, il l'envoie à la file d'attente des messages distribués. Le destinataire du message obtient le message de la file d'attente des messages distribués et poursuit le traitement. On peut voir qu'il n'y a pas de couplage direct entre l'expéditeur du message et le destinataire du message. L'expéditeur du message termine le traitement du message lorsqu'il envoie le message à la file d'attente des messages distribués, tandis que le destinataire du message n'a besoin que d'obtenir le message de la file d'attente distribuée. file d'attente des messages en cours de traitement sans savoir d'où vient le message.
Grâce à la communication en file d'attente de messages, un faible couplage entre les doigts de service A et B est maintenu pour permettre une expansion flexible de l'entreprise.

pika

pika est la bibliothèque Python AMQP officielle écrite par l'équipe RabbitMQ.

L'installation démarre

$ brew install rabbitmq$ usr/local/sbin/rabbitmq-server
Copier après la connexion

Installer pika

pip install pika
Copier après la connexion

Exemple d'opération

Bonjour tout le monde

expéditeur

# coding: utf-8import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

channel.queue_declare(queue='hello')

channel.basic_publish(exchange='',
                      routing_key='hello',
                      body='Hello, World!')print 'send msg: Hello World!'connection.close()
Copier après la connexion

Récepteur

# coding: utf-8import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

channel.queue_declare(queue='hello')def callback(ch, method, properties, body):
    print 'receive msg: %s' % body

channel.basic_consume(callback,
                      queue='hello',
                      no_ack=False)print 'waiting for msg...'channel.start_consuming()
Copier après la connexion

Résultats de fonctionnement :

# sender.py 运行2次send msg: Hello World!# receiverwaiting for msg...
receive msg: Hello, World!
receive msg: Hello, World!
Copier après la connexion

Une fois que le consommateur a traité le message, il ne quitte pas et peut toujours traiter les messages suivants.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal