这是我参与8月更文挑战的第1天,活动详情查看:8月更文挑战
前言:
首先你需要安装RabbitMQ在您的本地,端口设置为5672. 如果使用不同的主机端口则配置需要调整.
RabbitMQ帮助你接受和转发消息。你可以把它看作是一个邮局:当你把你想寄出的邮件放在邮筒里时,你可以相信最终邮件会送到你的收件人。RabbitMQ就像是一个邮筒,一个邮局和一个邮递员。
一. 介绍
1.生产者意味着发送。
队列是位于RabbitMQ内的邮箱的名称。虽然消息流经RabbitMQ和您的应用程序,他们只能存储在队列中。队列仅受主机内存和磁盘限制的约束,本质上是一个大的消息缓冲区。许多生产商可以发送消息,去一个队列,许多消费者可以尝试从一个队列接收数据。这就是我们表示队列的方式。
2.消费者
消费与接收具有类似的含义。消费者是一个主要等待接收消息的程序
请注意,生产者、消费者不必居住在同一主机上:事实上,在大多数应用程序,他们不这样做。应用程序也可以是生产者和消费者。
二. helloworld
#!/usr/bin/env python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
接下来,在发送之前,我们需要确保收件人队列存在。如果我们向不存在的位置发送消息,RabbitMQ 将只是删除消息。让我们创建一个队列,其中将传递消息:
channel.queue_declare(queue='hello')
此时,我们准备发送消息。我们的第一条消息将只包含一个字符串你好世界!我们希望将其发送到我们的你好队列。
在RabbitMQ中,一条消息永远不能直接发送到队列中,它总是需要经过交换。我们现在只需要知道如何使用由空字符串标识的默认交换。此交换是特殊的 - 它允许我们准确地指定消息应该去哪个队列。队列名称需要在routing_key参数中指定:
channel.basic_publish(exchange='',
routing_key='hello',
body='Hello World!')
print(" [x] Sent 'Hello World!'")
在退出程序之前,我们需要确保网络缓冲区被冲洗,我们的消息实际上被传递到RabbitMQ。我们可以通过轻轻关闭连接来做到这一点。