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 概述」变成可验证能力
- 从本文任选一个示例,在可丢弃环境重跑;记录运行时/服务版本、输入、关键输出和清理动作。
- 保持其他条件不变,只制造一个边界:空值、重复请求、并发、超时、断连、权限不足或资源耗尽。
- 用四句话复盘:现象是什么、原理在哪一层、证据是什么、生产中如何止损。
验收清单
- [ ] 示例能从空环境重复执行,必要依赖和版本已写明。
- [ ] 同时保留成功路径与至少一个失败路径,不用“应该没问题”冒充证据。
- [ ] 结论写明适用边界,并能链接回对应学习路线的能力域。
- [ ] 练习结束后已清理临时数据、凭据、端口或进程。
对照 中间件练习答案与复盘尺。先交自己的证据再翻答案;答案是镜子,不是传送门。