news 2026/7/24 19:17:13

RabbitMQ 消息队列:从入门到实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RabbitMQ 消息队列:从入门到实战

1. 什么是 RabbitMQ?

RabbitMQ 是一个开源的消息代理软件,实现了高级消息队列协议(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 生产者示例(Python)

import pika 建立连接 connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() 声明队列 channel.queue_declare(queue='hello') 发送消息 channel.basic_publish(exchange='', routing_key='hello', body='Hello RabbitMQ!') print(" [x] Sent 'Hello RabbitMQ!'") 关闭连接 connection.close()

4.2 消费者示例(Python)

import pika 建立连接 connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() 声明队列 channel.queue_declare(queue='hello') def callback(ch, method, properties, body): print(f" [x] Received {body}") 消费消息 channel.basic_consume(queue='hello', auto_ack=True, on_message_callback=callback) print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming()

5. 交换机类型

  • Direct Exchange(直连交换机):根据路由键精确匹配队列。
  • Fanout Exchange(扇出交换机):将消息广播到所有绑定的队列。
  • Topic Exchange(主题交换机):根据路由键模式匹配队列。
  • Headers Exchange(头交换机):根据消息头属性匹配队列。

6. 高级特性

6.1 消息确认

消费者处理完消息后需要发送确认,确保消息不会丢失。

6.2 持久化

将队列和消息标记为持久化,即使 RabbitMQ 重启也不会丢失。

6.3 死信队列

处理无法被正常消费的消息,避免消息堆积。

7. 总结

RabbitMQ 是一个功能强大的消息队列中间件,广泛应用于微服务架构、异步任务处理、系统解耦等场景。掌握其核心概念和基本用法,能够帮助开发者构建更健壮、可扩展的分布式系统。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/24 19:14:53

5分钟快速上手:Windows本地语音转文字工具的终极指南

5分钟快速上手:Windows本地语音转文字工具的终极指南 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 还在为会议记录手忙脚乱?上网课笔记跟不上老师节奏?TMSpeech是一款完全免费开…

作者头像 李华
网站建设 2026/7/24 19:14:29

不是又一个 Skill 框架:Agent Skills for .NET 正式发布

目录 01 MAF 是什么:Semantic Kernel 和 Autogen 的继任者 02 Agent Skills 是什么:SKILL.md 加渐进式披露 03 四种技能源:博客说三种,文档有四种 File-based:SKILL.md 目录 Code-defined:AgentInline…

作者头像 李华
网站建设 2026/7/24 19:14:21

导购返利APP用户行为日志采集与实时返利计算的流式处理架构

导购返利APP用户行为日志采集与实时返利计算的流式处理架构 大家好,我是省赚客APP研发者微赚淘客! 在导购返利业务中,订单追踪的实时性与准确性是核心竞争力。传统的T1离线批处理模式已无法满足用户对“下单即见返利”的体验期待。为此&#…

作者头像 李华
网站建设 2026/7/24 19:13:57

彻底解放你的《艾尔登法环》:144Hz高帧率+超宽屏完全指南

彻底解放你的《艾尔登法环》:144Hz高帧率超宽屏完全指南 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/el/E…

作者头像 李华
网站建设 2026/7/24 19:13:55

优惠券省钱app中领券链路优化:Redis缓存与本地缓存多级架构实践

优惠券省钱app中领券链路优化:Redis缓存与本地缓存多级架构实践 大家好,我是省赚客APP研发者微赚淘客! 在优惠券返利业务中,领券链路的性能直接决定了用户转化率。面对“双11”等大促场景下每秒数十万的领券请求,单一的…

作者头像 李华