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 开发经验,正在学习微服务架构或准备面试的开发者。

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

相关推荐
Rsun045511 小时前
文件类型后缀汇总
java
C澒1 小时前
微前端容器标准化:从碎片化到统一架构的渐进式改造
前端·架构
小江的记录本2 小时前
【Spring Boot—— .yml(YAML)】Spring Boot中.yml文件的基础语法、高级特性、实践技巧
xml·java·spring boot·后端·spring·spring cloud·架构
I_LPL2 小时前
day52 代码随想录算法训练营 图论专题6
java·数据结构·算法·图论
小超同学你好2 小时前
Transformer 13. DeepSeek LLM 架构解析:与 LLaMA 以及 Transformer 架构对比
人工智能·语言模型·架构·transformer·llama
balmtv2 小时前
Grok技术架构深度拆解:从314亿MoE到多智能体内生化的演进之路
架构
2601_953465612 小时前
m3u8live.cn深度解析:一款专为开发者打造的 M3U8 调试工具
java·前端·django·音视频·开发工具
稻草猫.2 小时前
SpringBoot日志全解析:从调试到持久化
java·开发语言·spring boot·java-ee·idea
zopple2 小时前
Knife4j文档请求异常(基于SpringBoot3,查找原因并解决)
java·服务器·数据库