RabbitMQ est un système de messagerie d'entreprise complet et réutilisable basé sur AMQP.
MQ signifie Message Queue. Message Queuing (MQ) est une méthode de communication d'application à application.
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 est la bibliothèque Python AMQP officielle écrite par l'équipe RabbitMQ.
$ brew install rabbitmq$ usr/local/sbin/rabbitmq-server
Installer pika
pip install pika
# 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()
# 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!