Skip to content

RabbitMQ 概述 ​

RabbitMQ 是一个开源、高性能、可靠的消息队列软件,用于在应用程序之间进行异步通信。它实现了 AMQP(Advanced Message Queuing Protocol)协议,提供了强大的消息传递功能和灵活的消息路由机制。

官网地址(外部资料已收录于证据账本)

关键特点 ​

  • 消息队列:RabbitMQ 提供了消息队列的功能,用于将生产者发送的消息存储在服务器上,并将其传递给消费者进行处理。
  • 可靠性:RabbitMQ 使用持久化机制来确保即使在发生故障时也不会丢失消息。它将消息存储在磁盘上,并支持消息的复制和故障转移。
  • 灵活的路由:RabbitMQ 提供了丰富的路由选项,包括直接交换机、主题交换机、扇形交换机等,使你可以根据消息的内容和标签将其发送到不同的队列中。
  • 发布/订阅模式:RabbitMQ 支持发布/订阅模式,允许多个消费者同时订阅同一个队列,从而实现消息广播和多播。
  • 高可用性:RabbitMQ 可以配置成集群模式,多台服务器共同组成一个集群,提供高可用性和横向扩展能力。
  • 插件系统:RabbitMQ 提供了丰富的插件系统,可以扩展其功能,如消息转换、身份验证、监控等。

TIP

RabbitMQ 在分布式系统、微服务架构和异步任务处理等场景中广泛应用。它易于使用、稳定可靠,并有大量的客户端库和工具支持,如 Java、Python、JavaScript 等语言的客户端。

可运行最小实验:先确认消息有没有真正交接 ​

在 RabbitMQ 所在环境执行下面命令;它们只读,不会把队列当成试验田乱改。

bash
rabbitmq-diagnostics ping
rabbitmqctl list_queues name messages messages_ready messages_unacknowledged consumers

第一条确认节点可响应,第二条把“等待投递”和“已经投递但尚未确认”分开。生产者打印 publish 成功,不等于消息已经持久化;消费者函数返回,也不等于业务事务已经提交。确认、持久化、重投和业务幂等要分别留下证据。

练习提示:让消费者在业务写入后、发送 ack 前退出,重启后观察重投;答案应说明如何用业务键去重,以及毒消息进入何处。

练习:把「RabbitMQ 概述」变成可验证能力 ​

  1. 从本文任选一个示例,在可丢弃环境重跑;记录运行时/服务版本、输入、关键输出和清理动作。
  2. 保持其他条件不变,只制造一个边界:空值、重复请求、并发、超时、断连、权限不足或资源耗尽。
  3. 用四句话复盘:现象是什么、原理在哪一层、证据是什么、生产中如何止损。

验收清单

  • [ ] 示例能从空环境重复执行,必要依赖和版本已写明。
  • [ ] 同时保留成功路径与至少一个失败路径,不用“应该没问题”冒充证据。
  • [ ] 结论写明适用边界,并能链接回对应学习路线的能力域。
  • [ ] 练习结束后已清理临时数据、凭据、端口或进程。

对照 中间件练习答案与复盘尺。先交自己的证据再翻答案;答案是镜子,不是传送门。

用心记录每一步成长