上一篇文章描述了,通过使用广播式的通信方式,让生产者把消息广播给每一个消费者,本节我们介绍另外一个方式,生产者可以指定消费者,把消息发送给它:
client.py
#!/usr/bin/env python
import pika
import sys
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
#这里指定exchange的名字为direct_log,类型为direct(直接的,指定的)
channel.exchange_declare(exchange='direct_logs',
exchange_type='direct')
#在这里我们创建一个变量用于介绍routing_key的名字,
#这样我们在发送消息的时候可以指定把消息发送给某一个消费者对应的消息队列
#默认的消费者绑定的消息队列为info
severity = sys.argv[1] if len(sys.argv) > 2 else 'info'
message = ' '.join(sys.argv[2:]) or 'Hello World!'
channel.basic_publish(exchange='direct_logs',
routing_key=seve