rabbitmq 广播模式怎么实现
时间: 2023-07-10 16:32:01 浏览: 124
RabbitMQ 的广播模式也叫做发布/订阅模式 (Publish/Subscribe),可以通过以下步骤实现:
1. 创建一个 fanout 类型的交换器(exchange),该交换器会将所有接收到的消息广播给所有绑定到它上面的队列。
```python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 创建名为 "logs" 的 fanout 类型的交换器
channel.exchange_declare(exchange='logs', exchange_type='fanout')
```
2. 创建多个队列,并将这些队列绑定到上一步创建的交换器上。
```python
# 创建一个随机命名的队列
result = channel.queue_declare(queue='', exclusive=True)
queue_name = result.method.queue
# 将队列绑定到交换器上
channel.queue_bind(exchange='logs', queue=queue_name)
```
3. 发布消息到交换器上。
```python
# 发布一条消息到名为 "logs" 的交换器上
channel.basic_publish(exchange='logs', routing_key='', body='Hello World!')
```
4. 接收消息。
```python
def callback(ch, method, properties, body):
print("Received message:", body)
# 订阅消息
channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=True)
channel.start_consuming()
```
以上代码演示了如何使用 RabbitMQ 的 Python 客户端 Pyika 实现广播模式。你可以根据自己的需要,修改交换器、队列和消息的名称和内容。
阅读全文