python使用rabbitMQ介绍三(发布订阅模式)

在前面的例子中,消息直接发送到queue中。

现在介绍的模式,消息发送到exchange中,消费者把队列绑定到exchange上。

发布-订阅模式是把消息广播到每个消费者,每个消费者接收到的消息都是相同的。

一个生产者,多个消费者,每一个消费者都有自己的一个队列,生产者没有将消息直接发送到队列,而是发送到了交换机,每个队列绑定交换机,生产者发送的消息经过交换机,到达队列,实现一个消息被多个消费者获取的目的。需要注意的是,如果将消息发送到一个没有队列绑定的exchange上面,那么该消息将会丢失,这是因为在rabbitMQ中exchange不具备存储消息的能力,只有队列具备存储消息的能力。

 

队列模型:

python使用rabbitMQ介绍三(发布订阅模式)

 

 

二、代码示例 发布者:不再创建队列,发送消息到exchange(交换机)中。exchange_type为fanout。

python使用rabbitMQ介绍三(发布订阅模式)

python使用rabbitMQ介绍三(发布订阅模式)

1 #!/usr/bin/env python 2 import pika 3 4 connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) 5 channel = connection.channel() 6 7 channel.exchange_declare(exchange='logs', 8 exchange_type='fanout') 9 10 for i in range(20): 11 message = "info: Hello World! {}".format(i) 12 channel.basic_publish(exchange='logs', 13 routing_key='', 14 body=message) 15 print(" [x] Sent %r" % message) 16 connection.close()

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfzwj.html