黑马点评升级版:变化综览
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 版本吗?
- 可以的,Plus 版本在普通版本的基础上进行了功能增强和问题补充,但并不依赖于普通版本的代码结构。
- 学习 Plus 版本时,可以直接从项目的整体架构和功能入手,理解每个模块的设计思路和实现细节。
- 建议在学习过程中,结合相关技术文档和资料,深入理解 Redis、消息队列等中间件的使用方法和最佳实践。
4.3 学习 Plus 版本难度高吗?需要多久时间学完?
- 项目的文档讲解和代码注释都非常地细致,包括:代码这些写是为了什么?如何考虑的?
- 项目的视频讲解也是从 0到1 一步步带着大家去实现的,完全的手把手教学。
- 所以跟着文档和视频学习下来,2周左右的时间应该是没有问题的。
五、面试优势(如何讲清楚 Plus 的“硬核”)
- 能完整阐述缓存穿透/击穿的组合解法:本地缓存、空值缓存、双重锁、布隆过滤器、逻辑过期与异步重建。
- 讲清令牌前置授权 + 令牌桶限流的作用边界与实现方案(含动态阈值与优先级)。
- 说明 Redis 扣减的故障闭环:扣减成功但服务宕机、Lua 执行故障、主从切换数据丢失、Redis/DB 对账与补偿。
- MQ 可靠性:生产端确认与失败回退、消费端幂等与去重、延迟队列与死信队列、消息乱序与重试策略。
- 端到端可观测:请求耗时剖析、链路异常定位、压测策略与数据解读。
- 数据层扩展:分库分表策略、订单路由、对账日志与一致性保障、全局 ID 生成方案。
- 业务玩法:Top 买家统计与订阅通知的设计与实现细节,体现产品思维与工程落地。
- 各种组件的亮点设计,包括:锁的优化、幂等、MQ抽取扩展、令牌机制、滑动窗口限流、延迟队列、分库分表 等等