RabbitMQ ist ein vollständiges, wiederverwendbares Enterprise-Messaging-System auf Basis von AMQP.
MQ steht für Message Queuing (MQ) und ist eine Kommunikationsmethode zwischen Anwendungen.
Die Nachrichtenwarteschlange funktioniert mit dem Publish-Subscribe-Modell. Der Nachrichtensender ist die Nachrichtenquelle. Nach der Verarbeitung wird die Nachricht an die verteilte Nachrichtenwarteschlange gesendet. Der Nachrichtenempfänger ruft die Nachricht aus der verteilten Nachrichtenwarteschlange ab und setzt die Verarbeitung fort. Es ist ersichtlich, dass zwischen dem Nachrichtensender und dem Nachrichtenempfänger keine direkte Kopplung besteht. Der Nachrichtensender beendet die Verarbeitung der Nachricht, wenn er die Nachricht an die verteilte Nachrichtenwarteschlange sendet, während der Nachrichtenempfänger die Nachricht nur von der verteilten Nachrichtenwarteschlange abrufen muss Nachrichtenwarteschlange verarbeitet, ohne zu wissen, woher die Nachricht stammt.
Durch die Nachrichtenwarteschlangenkommunikation wird eine geringe Kopplung zwischen den Servicefingern A und B aufrechterhalten, um eine flexible Geschäftserweiterung zu erreichen.
pika ist die offizielle Python-AMQP-Bibliothek, die vom RabbitMQ-Team geschrieben wurde.
$ brew install rabbitmq$ usr/local/sbin/rabbitmq-server
Pika installieren
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()
Betriebsergebnisse:
# sender.py 运行2次send msg: Hello World!# receiverwaiting for msg... receive msg: Hello, World! receive msg: Hello, World!
Nachdem der Verbraucher die Nachricht verarbeitet hat, wird er nicht beendet und kann weiterhin nachfolgende Nachrichten verarbeiten.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des RabbitMQ-Betriebsgrafikcodes in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!