Home  >  Article  >  Backend Development  >  Detailed explanation of RabbitMQ operation graphic code in Python

Detailed explanation of RabbitMQ operation graphic code in Python

黄舟
黄舟Original
2017-05-07 10:47:011417browse


Knowledge preparation

RabbitMQ

RabbitMQ is a complete, reusable enterprise messaging system based on AMQP.

MQ

MQ stands for Message Queue. Message Queuing (MQ) is an application-to-application communication method.
Detailed explanation of RabbitMQ operation graphic code in Python
Message queue works using publish-subscribe mode. The message sender is the message source. After processing the message, it sends the message to the distributed message queue. The message receiver obtains the message from the distributed message queue and continues processing. It can be seen that there is no direct coupling between the message sender and the message receiver. The message sender ends processing the message when it sends the message to the distributed message queue, while the message receiver only needs to obtain the message from the distributed message queue. Processing without knowing where the message came from.
Through message queue communication, low coupling between service fingers A and B is maintained to achieve flexible business expansion.

pika

pika is the official Python AMQP library written by the RabbitMQ team.

Installation startup

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

Installation pika

pip install pika

Operation example

Hello World

sender

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

receiver

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

Running result:

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

After the consumer processes the message, it does not exit and can still process subsequent messages.

The above is the detailed content of Detailed explanation of RabbitMQ operation graphic code in Python. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn