RabbitMQ 是一个开源的消息代理工具,用于在应用程序之间进行可靠的消息传递。它实现了高度可扩展的 AMQP(Advanced Message Queuing Protocol,高级消息队列协议)标准,并支持多种交换器和队列模式。本文将详细介绍 RabbitMQ 的交换器类型和队列模式,并提供相应的源代码示例。
交换器类型(Exchange Types)
RabbitMQ 中的交换器类型定义了消息如何被路由到队列。以下是常见的几种交换器类型:
- 直接交换器(Direct Exchange):直接交换器根据消息的路由键(Routing Key)将消息发送到与该键完全匹配的队列。如果多个队列的路由键与消息的路由键匹配,则消息将被发送到多个队列。下面是一个使用直接交换器的示例代码:
import pika
# 连接到 RabbitMQ 服务器
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 声明直接交换器
channel.exchange_declare(exchange='direct_exchange', exchange_type='direct')
# 发布消息
channel.basic_publish(exchange='direct_exchange', routing_key='direct_key', body='Hello, RabbitMQ!')
# 关闭连接
connection.close()
- 主题交换器(Topic