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.queue、inventory.queue),实现业务隔离与独立伸缩。
💡 技术亮点
  • 全链路实战:不仅讲 API 用法,更注重在 Spring Cloud 微服务环境下的实际业务场景落地。
  • 避坑指南:针对初学者常遇到的"消息堆积"、"序列化异常"、"路由键配置错误"等问题提供解决方案。
  • 源码与配置:结合 Nacos 配置中心管理 MQ 地址,利用 Docker 快速部署 RabbitMQ 环境,提供可复用的代码片段与配置文件。

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

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

相关推荐
2301_780789667 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
Shulex8 小时前
跨境电商 AI Agent 核心架构解析:从只读问答到自主执行的工程落地
人工智能·架构·智能客服·跨境电商
学长毕设8 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
钱工的门窗技术笔记8 小时前
室内极窄全景移门的支承路径与预留接口:轨道形式、型材壁厚口径与验收边界
物联网·架构·数据分析
码农小旋风8 小时前
Ray分布式计算引擎介绍
人工智能·架构
ZhengEnCi9 小时前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
算法·架构
步行cgn9 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川9 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵9 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
星融元asterfusion9 小时前
工业网络升级实战:100G 双轨 Leaf-Spine 架构破解高并发出货网络瓶颈
网络·架构·spine