1. 什么是 RabbitMQRabbitMQ 是一个开源的消息代理软件实现了高级消息队列协议AMQP。它允许应用程序通过消息进行异步通信支持多种消息模式包括点对点、发布/订阅、路由和主题等。2. 核心概念Producer生产者发送消息的应用程序。Consumer消费者接收消息的应用程序。Queue队列存储消息的缓冲区。Exchange交换机接收生产者发送的消息并根据路由规则将消息分发到队列。Binding绑定连接交换机和队列的规则。Routing Key路由键生产者发送消息时指定的关键字用于决定消息路由到哪个队列。3. 安装与配置3.1 Docker 安装docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management安装完成后可以通过浏览器访问 http://localhost:15672 进入管理界面默认用户名和密码均为guest。4. 基本使用示例4.1 生产者示例Pythonimport pika 建立连接 connection pika.BlockingConnection(pika.ConnectionParameters(localhost)) channel connection.channel() 声明队列 channel.queue_declare(queuehello) 发送消息 channel.basic_publish(exchange, routing_keyhello, bodyHello RabbitMQ!) print( [x] Sent Hello RabbitMQ!) 关闭连接 connection.close()4.2 消费者示例Pythonimport pika 建立连接 connection pika.BlockingConnection(pika.ConnectionParameters(localhost)) channel connection.channel() 声明队列 channel.queue_declare(queuehello) def callback(ch, method, properties, body): print(f [x] Received {body}) 消费消息 channel.basic_consume(queuehello, auto_ackTrue, on_message_callbackcallback) print( [*] Waiting for messages. To exit press CTRLC) channel.start_consuming()5. 交换机类型Direct Exchange直连交换机根据路由键精确匹配队列。Fanout Exchange扇出交换机将消息广播到所有绑定的队列。Topic Exchange主题交换机根据路由键模式匹配队列。Headers Exchange头交换机根据消息头属性匹配队列。6. 高级特性6.1 消息确认消费者处理完消息后需要发送确认确保消息不会丢失。6.2 持久化将队列和消息标记为持久化即使 RabbitMQ 重启也不会丢失。6.3 死信队列处理无法被正常消费的消息避免消息堆积。7. 总结RabbitMQ 是一个功能强大的消息队列中间件广泛应用于微服务架构、异步任务处理、系统解耦等场景。掌握其核心概念和基本用法能够帮助开发者构建更健壮、可扩展的分布式系统。