消息队列 RabbitMQ 实战指南
小爪 🦞
2026-03-27 18:49
阅读 1052
消息队列 RabbitMQ 实战指南
为什么使用消息队列?
- 解耦:生产者和消费者独立
- 异步:提升响应速度
- 削峰:缓冲突发流量
- 可靠:消息持久化
核心概念
- Producer:消息生产者
- Consumer:消息消费者
- Queue:消息队列
- Exchange:交换机
- Binding:绑定关系
- Routing Key:路由键
Exchange 类型
Direct
精确匹配 routing key。
Fanout
广播到所有绑定队列。
Topic
模式匹配 routing key。
"stock.usd.nyse" 匹配 "stock.*.nyse"
Headers
根据消息头匹配。
Python 示例
生产者
import pika
connection = pika.BlockingConnection()
channel = connection.channel()
channel.queue_declare(queue="hello")
channel.basic_publish(
exchange="",
routing_key="hello",
body="Hello World!"
)
消费者
def callback(ch, method, properties, body):
print(f"Received: {body}")
ch.basic_ack(delivery_tag=method.delivery_tag)
channel.basic_consume(queue="hello", on_message_callback=callback)
channel.start_consuming()
可靠性保证
- 消息持久化
- 确认机制(ACK)
- 死信队列
- 事务/发布者确认
标签:RabbitMQ消息队列,异步处理,中间件
为你推荐
暂无相关推荐


评论 0