Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung des RabbitMQ-Betriebsgrafikcodes in Python

Detaillierte Erläuterung des RabbitMQ-Betriebsgrafikcodes in Python

黄舟
黄舟Original
2017-05-07 10:47:011448Durchsuche


Wissensvorbereitung

RabbitMQ

RabbitMQ ist ein vollständiges, wiederverwendbares Enterprise-Messaging-System auf Basis von AMQP.

MQ

MQ steht für Message Queuing (MQ) und ist eine Kommunikationsmethode zwischen Anwendungen.
Detaillierte Erläuterung des RabbitMQ-Betriebsgrafikcodes in Python
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

pika ist die offizielle Python-AMQP-Bibliothek, die vom RabbitMQ-Team geschrieben wurde.

Installation beginnt

$ brew install rabbitmq$ usr/local/sbin/rabbitmq-server

Pika installieren

pip install pika

Bedienungsbeispiel

Hallo Welt

Absender

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

Empfänger

# 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn