Maison  >  Article  >  développement back-end  >  Explication détaillée du code graphique de l'opération RabbitMQ en Python

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

黄舟
黄舟original
2017-05-07 10:47:011460parcourir


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

Installer pika

pip install pika

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()

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()

Résultats de fonctionnement :

# sender.py 运行2次send msg: Hello World!# receiverwaiting for msg...
receive msg: Hello, World!
receive msg: Hello, World!

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!

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