Java 中间件之 RabbitMQ 快速入门: 概述

发布时间:2026/10/10 9:16:37
Java 中间件之 RabbitMQ 快速入门: 概述 概述这一章讲的是服务异步通讯落点是 RabbitMQ 这个具体实现主线有三段先搞清 MQ 与同步通讯的差别再用原生 API 跑通一个队列最后交给 SpringAMQP 做工程化收发。这是一篇导引负责把地图画全、把动手项圈出来具体细节分散在本目录后续各篇。纲要本章主线初识 MQ同步通讯的四个问题 → 异步通讯与 Broker 的角色 → 异步的代价 → 四款 MQ 怎么选RabbitMQ 快速入门Docker 安装、控制台、六种消息模型、原生amqp-client简单队列SpringAMQPRabbitTemplate发、RabbitListener收、prefetch 能者多劳、三种交换机、JSON 消息转换器关键机制同步与异步的本质区别调用方发完请求后是否原地等结果异步解耦带来的一笔新账可靠性、运维复杂度、消息丢失的可能性AMQP 与 JMS 两条协议路线的分野动手清单起 MQ 容器、跑简单队列、SpringAMQP 收发、三种交换机各发一轮速查Docker 命令、rabbitmqctl子命令、端口、SpringAMQP 核心 API这一章要解决什么前面几个阶段我们是靠 OpenFeign 把微服务串起来的服务 A 调服务 B、B 再调 C调用链越拉越长。到 MQ 这里要换一个思路让服务之间不直接喊话而是把要发生的事交给一个中间人谁关心谁自己去取。整章就是在回答三个问题——什么时候该用异步、RabbitMQ 这套东西怎么落地、企业里最常用的 SpringAMQP 怎么用才不别扭。MQ 知识地图三站式结构每一站解决一个层次的问题。第三站 · SpringAMQP工程层基本介绍amqp-client 的 Spring 封装消息发送RabbitTemplate.convertAndSend消息接收RabbitListener prefetchWorkQueue 能者多劳发布订阅三件套Fanout / Direct / Topic消息转换器Jackson2JsonMessageConverter第二站 · RabbitMQ 快速入门原语层Docker 安装 15672 控制台rabbitmq:3.8-management六种消息模型概览简单队列到 RPC原生 amqp-client 入门ConnectionFactory / Channel / basicPublishAMQP 与 JMS 的区别协议 vs API 规范第一站 · 初识 MQ概念层同步通讯的优缺点耦合 / 性能 / 资源 / 级联失败异步通讯与 Broker事件驱动、消息代理解耦异步的代价可靠性、运维、一致性问题常见 MQ 技术对比RabbitMQ / ActiveMQ / RocketMQ / Kafka各站的落点站点解决的问题主要命令 / 类初识 MQ判断这里到底该不该上 MQ无代码纯概念与选型对比快速入门理解 MQ 的原始操作模型docker run rabbitmq、ConnectionFactory、Channel、basicPublish、basicConsumeSpringAMQP把消息收发变成工程里的一行代码RabbitTemplate、RabbitListener、Jackson2JsonMessageConverter为什么需要消息队列MQ 的价值用三个词就能说完异步、解耦、削峰。异步是把等待变成不等待解耦是把直接调用变成事件广播削峰是把瞬时流量先存进队列再让后端按自己的节奏消费。拿一个真实的下单场景说话。用户支付成功后支付服务要通知库存扣减、会员积分累加、短信发送、推荐系统记录行为。同步写法就是支付服务挨个 Feign 调过去下游库存/积分/短信/推荐支付服务用户下游库存/积分/短信/推荐支付服务用户本地支付 50ms阻塞等待 100~300msloop[逐个同步调用]提交支付1Feign 调用2返回3全部做完才响应4四个下游串起来接口耗时直接变成 50 四个下游耗时之和用户要多等一秒多。而且任何一个下游挂了都会把支付服务拖住——短信服务超时支付接口就跟着超时这是典型的级联失败。加了 MQ 之后支付服务只做一件事往 Broker 投一条消息就返回。发送消息订阅订阅订阅订阅支付服务Broker / 消息队列库存服务积分服务短信服务推荐服务代价也要说清楚消息可能丢、可能重复下游处理失败要靠重试和死信兜底排查链路也从一次调用变成发消息—消费消息两段。所以 MQ 不是万能药同步调用时效性强的场景比如查用户详情照样该用 Feign。本章命令与 API 速查按主题分组动手时直接抄。主题条目说明Docker 起 MQdocker run -e RABBITMQ_DEFAULT_USERitcast -e RABBITMQ_DEFAULT_PASS123321 --name mq --hostname mq1 -p 15672:15672 -p 5672:5672 -d rabbitmq:3.8-management一条命令拉起单机版带管理插件Docker 起 MQdocker pull rabbitmq:3.8-management拉镜像标签必须带-management否则没控制台端口15672Management 控制台 UI 与 HTTP API浏览器访问端口5672AMQP 0-9-1 协议端口生产者/消费者客户端连它rabbitmqctlrabbitmqctl status查看节点运行状态rabbitmqctlrabbitmqctl list_queues列出所有队列及堆积数量rabbitmqctlrabbitmqctl list_exchanges列出所有交换机rabbitmqctlrabbitmqctl list_bindings列出交换机与队列的绑定关系rabbitmqctlrabbitmqctl list_connections查看当前连接排查连接泄露SpringAMQPRabbitTemplate.convertAndSend(routingKey, msg)发到默认交换机routingKey 即队列名SpringAMQPRabbitTemplate.convertAndSend(exchange, routingKey, msg)显式指定交换机Fanout 传空串SpringAMQPRabbitListener(queues simple.queue)标注在方法上自动监听队列SpringAMQPprefetch: 1每个消费者预取一条配合手动确认实现能者多劳SpringAMQPJackson2JsonMessageConverter换掉默认 JDK 序列化消息体转成 JSON学习路径建议分两类对待别平均用力。内容建议理由Docker 装 RabbitMQ、跑通控制台必须动手装不上后面全卡住镜像标签、端口映射都是硬坑原生简单队列publisher consumer必须动手建立对 Connection / Channel / Queue 的直觉理解 SpringAMQP 封装了什么SpringAMQP 收发消息必须动手企业里 99% 的写法RabbitTemplate和RabbitListener要练到不查文档Fanout / Direct / Topic 三种交换机必须动手路由键匹配规则光看容易记混跑一遍最清楚WorkQueue 与 prefetch动手消费端性能调优的起点顺手就能验证能者多劳消息转换器换 JSON动手默认 JDK 序列化不可读也是线上排查事故的常见原因AMQP 协议细节、Exchange 内部结构先理解概念清即可日常开发不直接操作协议层消息持久化、生产者 confirm、消费者手动 ACK先理解属于可靠性保障概念先记住遇到消息丢失再回来细看一个容易走偏的节奏有人一上来就啃 AMQP 协议规范和 RabbitMQ 的 Erlang 内部结构结果队列还没跑通。合理顺序就是按本章三段走概念过一遍、动手跑一遍、再回头补可靠性机制。本篇是导引三站的具体内容分别对应后续各篇。下一篇从第一站的同步通讯开始——同步调用的四个问题到底怎么发生的以及为什么它是后面一切设计的前提。官方文档RabbitMQ 官方文档RabbitMQ 六种消息模型示例Spring AMQP 参考文档Docker Hub: rabbitmq总结本章三段递进初识 MQ概念→ RabbitMQ 快速入门原语→ SpringAMQP工程理解这条线比记住某个 API 重要。MQ 的核心价值是异步、解耦、削峰判断能不能上 MQ先看这条调用链的耗时和可用性是否有硬约束。必须动手的四处装 MQ、简单队列、SpringAMQP 收发、三种交换机协议与可靠性机制可以先理解、后深入。端口记两个就够5672走消息15672看控制台。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询