Java 项目教程《黑马商城-MQ 篇》,分布式架构项目,从开发到部署

Java 项目教程《黑马商城-MQ 篇》,分布式架构项目,从开发到部署

一、参考资料

【黑马程序员SpringCloud微服务开发与实战,java黑马商城项目微服务实战开发(涵盖MybatisPlus、Docker、MQ、ES、Redis高级等)】 https://www.bilibili.com/video/BV1S142197x7/?p=85\&share_source=copy_web\&vd_source=855891859b2dc554eace9de3f28b4528
黑马商城项目 Gitee 地址 https://gitee.com/yangjunbo-jetli/hmall.git
RabbitMQ 测试项目 Gitee 地址 https://gitee.com/yangjunbo-jetli/mq-demo.git

二、笔记总结-基础篇

01、MQ 课程结束


02、同步调用优缺点



03、异步调用优缺点





04、技术选型

05、安装部署



shell 复制代码
docker run \
 -e RABBITMQ_DEFAULT_USER=itheima \
 -e RABBITMQ_DEFAULT_PASS=123321 \
 -v mq-plugins:/plugins \
 --name mq \
 --hostname mq \
 -p 15672:15672 \
 -p 5672:5672 \
 --network hm-net\
 -d \
 rabbitmq:3.8-management





06、快速入门







07、数据隔离





08、Java 客户端-快速入门



















09、WorkQueue









10、Fanout 交换机










11、Direct 交换机








12、Topic 交换机








13、基于 Bean 声明队列交换机






14、基于注解声明队列交换机




15、消息转换器












16、业务改造












三、笔记总结-高级篇

01、课程介绍


02、发送者可靠性-发送者重连机制





03、发送者可靠性-发送者确认机制




04、发送者可靠性-发送者确认的代码实现





05、MQ 可靠性-数据持久化











06、MQ 可靠性-LazyQueue









07、消费者可靠性-消费者确认机制






08、消费者可靠性-消费者失败重试策略










09、消费者可靠性-业务幂等处理








10、延迟消息-什么是延迟消息

11、延迟消息-死信交换机








12、延迟消息-延迟消息插件











13、延迟消息-取消超时订单

















四、AI 简介

🚀 黑马商城微服务实战:RabbitMQ 核心技术与应用

在微服务架构中,服务间的通信是核心痛点。《黑马商城》项目通过引入 RabbitMQ,巧妙地解决了服务耦合、异步处理和流量削峰等问题。本篇教程将带你深入 Spring Cloud 微服务与 RabbitMQ 的整合实战,从底层原理到代码实现,助你掌握企业级消息中间件的落地技巧。

📚 核心学习内容
  1. SpringAMQP 快速入门
    • 基础组件:详解 Exchange(交换机)的四种类型(Fanout、Direct、Topic、Headers)与 Queue(队列)的声明及绑定关系。
    • 声明方式 :对比 @Bean 声明与 @RabbitListener 注解声明的优劣,解决多参数绑定的繁琐问题。
    • 消息序列化 :针对 JDK 默认序列化存在的"体积大、不安全、可读性差"痛点,实战配置 JSON 序列化 转换器,提升消息传输的效率与可读性。
  2. 业务改造与异步通信
    • 场景实战:以"支付成功后更新订单状态"为例,演示如何将传统的同步 Feign 调用改造为基于 MQ 的异步通知。
    • 解耦与容错:通过引入 Direct Exchange,实现精准的消息路由,避免广播带来的资源浪费。
    • 代码实现:涵盖生产者(Pay-Service)的消息发送逻辑与消费者(Trade-Service)的监听处理逻辑,确保业务逻辑的平滑迁移。
  3. 消息可靠性投递(高级篇)
    • 生产者可靠性:配置发送者重连机制,应对网络抖动导致的消息发送失败。
    • 数据持久化:讲解消息的持久化策略,确保 RabbitMQ 服务重启后消息不丢失(Lazy Queue 的默认优化)。
    • 消费者可靠性 :通过 try-catch 异常捕获与手动 ACK 机制,防止因消费者异常导致的消息丢失。
  4. 常见问题与进阶方案
    • 幂等性处理:解决网络波动导致的"重复消费"问题(如用户收到多条扣款通知),通过业务逻辑判断或唯一 ID 校验保证数据一致性。
    • 延迟消息:引入延迟队列或死信交换机(DLX),实现"订单超时未支付自动取消"的电商核心功能。
    • 架构优化 :探讨按业务模块拆分队列(如 order.queueinventory.queue),实现业务隔离与独立伸缩。
💡 技术亮点
  • 全链路实战:不仅讲 API 用法,更注重在 Spring Cloud 微服务环境下的实际业务场景落地。
  • 避坑指南:针对初学者常遇到的"消息堆积"、"序列化异常"、"路由键配置错误"等问题提供解决方案。
  • 源码与配置:结合 Nacos 配置中心管理 MQ 地址,利用 Docker 快速部署 RabbitMQ 环境,提供可复用的代码片段与配置文件。

适合人群:具备 Java 基础与 Spring Boot 开发经验,正在学习微服务架构或准备面试的开发者。

通过本教程的学习,你将能独立设计并实现高可靠、高性能的消息中间件方案,为你的分布式项目增添核心竞争力。

相关推荐
漂着的圆木25 分钟前
MCP 2026-07-28 长任务改造:别再用 HTTP 超时判断任务失败
分布式·架构·状态模式·ai agent
斑马13926 分钟前
Linux软件编程学习笔记(十二)——TCP并发服务器模型
java·服务器·网络
冬栈程序设计30 分钟前
Springboot宿舍管理系统【670099】 -附源码(开箱即用)
java·毕业设计·springboot·课程设计·程序设计·大作业
LorryJovens34 分钟前
【LAAP架构与安全伦理】LAAP框架与具身智能大脑:从认知架构到自主意识与人机共生社会--LAAP先导愿景片发布
人工智能·架构·agi
2601_9622845038 分钟前
北京Java全栈开发培训 Web前端开发 软件测试就业培训班
java·软件测试·web前端·全栈开发·就业培训
qiaosaifei1 小时前
JAVA老项目中有大量的类名_编译时报找不到符号错误
java·开发语言
聪明蛋子哟1 小时前
MCP协议深度落地:如何用Python/Java双语言实现统一的工具调用网关?
java·开发语言·python
文子越来越强1 小时前
【双因子认证】拦截注解@MFACheck 接入指南(其他微服务如何用)
java
ZGG0032 小时前
线程池详解:从 7 大参数到生产避坑
java·数据库·后端
迪康Defender2 小时前
公用电脑责任追溯难?迪康端点安全一体化管理系统用户模式详解
java·运维·开发语言·网络·其他·安全