参考链接: 链接1 黑马点评项目复习笔记_牛客网
链接2: 【黑马点评】面试可能被问整理_黑马点评面试问题-CSDN博客
链接3: 数据库和缓存如何保证一致性? | 小林coding (xiaolincoding.com)
链接4: 如何针对项目中的技术难点准备面试?——黑马点评为例_在项目中遇到难点是如何处理 java面试-CSDN博客
链接5:【黑马点评】面试题总结(通俗易懂版)_黑马点评面试问题-CSDN博客
一. 登录注册部分:
- 登录注册逻辑
(1) 如何通过Rediss实现登录
(2) 基于Session实现登录流程(这里附带可以问下,cookie和令牌等知识)(链接2)
(3) 如何解决集群的session共享问题?(链接2) - 登录校验器如何实现?
(1) 登录二级校验,以及拦截器如何实现(链接2)
(2) 登录状态如何保持刷新?( 链接1)
二. 商铺查询等相关
3. Rediss缓存方面, 涉及到缓存更新,穿透,击穿,雪崩概念以及各自解决思路
(1) 为什么缓存用redis不用mysql,怎么做的技术选项
(2) 为什么用缓存,缓存如何更新(链接2),以及保持与数据集一致性(链接3)
(3) 缓存雪崩定义,缓存雪崩处理策略(链接2)
(4) 缓存击穿定义与策略(链接2)
(5) 缓存穿透与策略(链接2)
三. 优惠卷秒杀部分
4. 热点Key如何设置(全局唯一ID)
(1)如何定义与设置热点KEY,它使用哪种数据结构
5. 超卖问题如何解决(乐观锁)
(1) 超卖解决的整体逻辑
(2) 超卖问题为什么放在redis中判断
(3) 乐观锁定义与解决超卖问题的具体设计
6. 一人一单如何设计
(1) 创建订单失败怎么处理?
7. 集群下线程并发问题: 基于Redis的分布式锁,分布式锁原子性问题(Lua脚本),引入Redission提到自制分布式锁
(1) 如果用mysql做秒杀,数据库出现幻读怎么解决
(2) redision锁如何判断是需要同步的线程
(3) 项目中为什么使用了Redission分布式锁
(4) redis锁误删现象定义与解决方案(链接4和链接5)
(5) 如何自定义分布式锁,自定义分布式锁有啥问题?(链接4)
(6) Redission分布式锁出现死锁的情况,以及Redission可重入设计思路
8. 秒杀优化思路: 异步秒杀—阻塞问题队列—RQ消息队列(List流,PubSub流, Stream流)
四. 关注与点赞部分
9. 关注与取关,互关
10. 点赞排行涉及
11. 优化点在排行榜,实现实时的热榜(链接1)
12. 推送:基于Feed实现推流功能
五. 附近商铺与签到问题
14. 基于GEO数据的附件商铺
15. 基于BitMap的用户签到
16. 基于HyperLogLog的UV数据统计
六. 博客加载部分
1.如何对博客表垂直拆表,线程池并行加载博客(链接1)
七. 项目中遇到的最大问题是什么,怎么解决的
八. 其他延申问题
17. 简述异步秒杀整体工作流程。(先业务大致逻辑介绍;相关数据库表结构介绍;难点以及解决方案介绍;按照代码实现过程进行对各个步骤进行阐述;未来展望和再次迭代)(链接4是一个详细案例)
18. 项目整体介绍案例(美团首次面试项目话术1——黑马点评篇-CSDN博客)
19. 项目执行细节总结:Ethan Yankang 这个博主有总结