跳到主要内容

黑马点评升级版:变化综览

plus 版本专属

此章节是黑马点评 Plus 版本中专有的内容,而在整套文档中将普通版本和 Plus 版本都融合在了一起,让大家更方便的学习。

一、前端新功能的添加​

黑马点评 Plus 不仅在后端做了大量的改进和优化,同时在前端也新增了一些功能,提升用户体验和系统的整体性能。

1.1 抢购优惠券前的流程优化​

在抢购优惠券的过程中,重新将页面样式进行了优化,提升了用户的视觉体验。

表关系

1.2 抢购优惠券过程中的提示优化​

在抢购优惠券的过程中,会弹出提示框,提示用户正在抢购中,只有在真正的抢购成功后,才会告知用户抢购成功,否则会提示抢购失败。

表关系

1.3 如果抢购成功,后续还可以取消​

在抢购成功后,用户可以选择取消抢购的优惠券,这样可以提升用户的灵活性和体验。

表关系

1.4 到券提醒​

如果优惠券被售罄了,用户还可以选择“到券提醒”,当有新的优惠券放出来时,系统会自动通知用户。

表关系

1.5 订阅通知​

当用户选择“到券提醒”后,系统会通知用户已订阅到券提醒

表关系

二、文档和视频目录结构​

为了更好地帮助大家学习黑马点评 Plus 版本,文档讲解的非常细致,将每一行代码为什么这么设计?是为了什么?是如何考虑的?都进行了详细的讲解。 同时,视频讲解也是从 0 到 1 一步步带着大家去实现的,完全的手把手教学。

表关系

三、黑马点评 Plus 版本总结​

3.1 普通版本的代码量​

黑马点评普通版本的代码量,不包含注释和空行,就只是Java代码本身,是 2千行 代码

表关系

3.2 黑马点评 Plus 版本的代码量​

而黑马点评 Plus 版本的Java代码量达到了 1万1千行 代码,比普通版本多了将近 1万行 代码

这是因为黑马点评 Plus 解决了 Redis、MQ 中间件宕机、数据丢失、数据一致性 等问题,又加上了 售罄订阅、延迟通知、营销策略 等功能,所以代码量自然就会更多

表关系

3.3 黑马点评 plus 与大麦项目的区别​

在我创建的开源社区中,有着王牌项目“大麦”,里面的亮点超级的多,不少人都靠它拿到了 Offer,它也是解决高并发问题,那么黑马点评 plus 和它有什么区别呢?

3.3.1 业务上的不同​

  • 黑马点评 Plus: 本地生活场景(店铺/优惠券/活动抢购),热点集中,缓存治理、对于数据丢失并不要求强一致性。
  • 大麦项目: 演出票务“抢票/选座”场景,写压力集中且强一致(锁座/支付/超时释放),强调排队、风控、数据一致性要求比较高。

3.3.2 架构不同​

  • 黑马点评 Plus: 侧重于解决优惠券抢购高并发的场景,强调抢购过程中,令牌分发、数据丢失、中间件故障、缓存穿透/击穿/雪崩的解决能力。
  • 大麦项目: 要考虑在微服务架构下,既要考虑“抢票”功能的高并发,又要考虑服务之间调用的网络消耗,以及分布式链路问题的排查。
    • Gateway 网关的熔断、异常、加解密
    • 注册中心的一切切换
    • 灰度/生产环境的隔离
    • 分库分表的设计、数据的均匀分布、数据的动态扩容
    • 票数扣减、座位状态、分布式事务、数据一致性的解决

3.3.3 黑马点评 plus 与 大麦的学习建议​

  • 黑马点评 Plus: 适合快速学习高并发抢购的核心技术点,分库分表,数据一致性,各种故障的解决的实际问题。
  • 大麦项目: 适合想全面的学习微服务架构,包括:项目的架构设计、组件设计、分库分表、数据扩容、分布式下的问题解决.
  • 即使学习了黑马点评 plus,还是建议再好好的认真学习大麦项目,因为是微服务架构,所以要比黑马点评 plus 考虑的问题会更加的全面,真的能帮你提升很多。

四、黑马点评 Plus 学习的相关问题​

4.1 Plus 版本适合什么样的同学来学习?​

  • 没有学习过黑马点评普通版本,但是想有个项目能快速学习足够多的重点和亮点,能够拿下心意的 Offer。
  • 正在学习黑马点评普通版本,想快速掌握普通版本的内容,并想学习 Plus 版本中的重点和亮点。
  • 已学习过黑马点评普通版本,想应对大厂面试中,遇到的各种中间件宕机和数据丢失,等各种“刁钻”问题。
  • 希望提升系统设计与架构能力,解决高并发、秒杀、分库分表大数量场景下的实际问题。
  • 准备面试大厂,想通过项目展示工程化思维与解决复杂问题的能力。
  • 希望掌握 Redis、消息队列等中间件的高级用法与最佳实践。
  • 渴望理解并应用缓存策略、限流机制、一致性保障等核心技术概念。
  • 希望通过实战项目提升代码质量、可维护性与系统稳定性。

4.2 没有学习过普通版本,可以直接学习 Plus 版本吗?​

  1. 可以的,Plus 版本在普通版本的基础上进行了功能增强和问题补充,但并不依赖于普通版本的代码结构。
  2. 学习 Plus 版本时,可以直接从项目的整体架构和功能入手,理解每个模块的设计思路和实现细节。
  3. 建议在学习过程中,结合相关技术文档和资料,深入理解 Redis、消息队列等中间件的使用方法和最佳实践。

4.3 学习 Plus 版本难度高吗?需要多久时间学完?​

  1. 项目的文档讲解和代码注释都非常地细致,包括:代码这些写是为了什么?如何考虑的?
  2. 项目的视频讲解也是从 0到1 一步步带着大家去实现的,完全的手把手教学。
  3. 所以跟着文档和视频学习下来,2周左右的时间应该是没有问题的。

五、面试优势(如何讲清楚 Plus 的“硬核”)​

  • 能完整阐述缓存穿透/击穿的组合解法:本地缓存、空值缓存、双重锁、布隆过滤器、逻辑过期与异步重建。
  • 讲清令牌前置授权 + 令牌桶限流的作用边界与实现方案(含动态阈值与优先级)。
  • 说明 Redis 扣减的故障闭环:扣减成功但服务宕机、Lua 执行故障、主从切换数据丢失、Redis/DB 对账与补偿。
  • MQ 可靠性:生产端确认与失败回退、消费端幂等与去重、延迟队列与死信队列、消息乱序与重试策略。
  • 端到端可观测:请求耗时剖析、链路异常定位、压测策略与数据解读。
  • 数据层扩展:分库分表策略、订单路由、对账日志与一致性保障、全局 ID 生成方案。
  • 业务玩法:Top 买家统计与订阅通知的设计与实现细节,体现产品思维与工程落地。
  • 各种组件的亮点设计,包括:锁的优化、幂等、MQ抽取扩展、令牌机制、滑动窗口限流、延迟队列、分库分表 等等
🎁优惠