懂车帝日常实习一面
# 面经
## 一、项目背景(这里感觉想问一下一个系统设计和服务拆分有没有思考)
1. 这个项目是练手项目吗?有没有上线?
2. 项目现在进度到什么阶段?
3. 这个项目是你自己做的还是团队合作?
4. 整个系统一共有多少个服务?分别是什么?
5. 你在项目中主要负责哪一部分服务?
6. 你能整体介绍一下你负责的服务设计吗?
7. 为什么要做这个项目?项目背景是什么?
---
# 二、系统架构设计
8. 整个系统的服务划分是怎样的?
9. 系统中有哪些模块?
10. 每个服务的职责分别是什么?
11. 系统中一共有多少个接口?主要有哪些接口?
12. 节目服务主要提供哪些 API?
---
# 三、下单链路设计(这里问了一个缓存一致性有没有设计对账来保证)
13. 抢票系统的下单流程是怎样的?
14. 为什么要使用 Redis + Lua 扣库存?
15. 为什么要使用 Kafka 异步创建订单?
16. Redis 扣库存之后为什么不直接创建订单?
17. 如果用户下单后立刻查询订单列表,查不到怎么办?
18. 为什么使用前端轮询订单状态?
19. 为什么不由后端触发补偿机制,而要依赖前端?(这里是表达有误)
20. 如果订单长时间没有创建成功怎么办?
---
# 四、缓存设计
21. 你提到使用了三级缓存,三级缓存分别是什么?
22. 三级缓存中每一层缓存的数据是一样的吗?
23. 本地缓存和 Redis 缓存之间如何保证一致性?
24. Redis 缓存如何保证一致性?
25. 如果缓存删除失败怎么办?
26. 有没有设计缓存对账机制?
27. Redis 缓存什么时候更新?
28. Redis 缓存什么时候失效?
29. 缓存 TTL 是如何设计的?
---
# 五、幂等组件
30. 为什么要设计幂等组件?
31. 幂等组件解决了什么问题?
32. 幂等组件是如何实现的?
33. 幂等组件中锁的 key 是如何设计的?
34. 如果网络失败或者请求异常,幂等如何保证?
---
# 六、ES 搜索
35. ES 中存储的是什么数据?
36. ES 中大概有多少条数据?
37. ES 的索引是如何设计的?
38. ES 常见的性能优化手段有哪些?
---
# 七、Kafka
39. Kafka 除了 Producer、Consumer、Broker 还有什么核心组件?
40. Kafka 的元数据是如何管理的?
41. Kafka 的 Partition 有什么作用?
42. Kafka 如何保证消息顺序?
43. Kafka 如何提升吞吐量?
---
# 八、Redis
44. Redis 常见的异常场景有哪些?
45. 什么是缓存穿透?如何解决?
46. 什么是缓存击穿?如何解决?
47. 什么是缓存雪崩?如何解决?
48. Redis 跳表是什么?
49. Redis 跳表主要应用在哪个数据结构?
---
# 九、Redis 实战
50. 如果要做一个排行榜系统,你会如何设计?
---
# 十、MySQL
51. MySQL 中有哪些锁?
52. MySQL 的行锁、表锁、意向锁分别是什么?
53. 在 RR 隔离级别下执行 delete where id = 10 时会如何加锁?
54. MySQL 索引失效有哪些情况?
55. not in 是否会导致索引失效?
---
# 十一、算法题
56. 找出序列中第一个没有出现的正整数。
如何在 O(n) 时间复杂度、O(1) 空间复杂度下解决该问题?
---
## 一、项目背景(这里感觉想问一下一个系统设计和服务拆分有没有思考)
1. 这个项目是练手项目吗?有没有上线?
2. 项目现在进度到什么阶段?
3. 这个项目是你自己做的还是团队合作?
4. 整个系统一共有多少个服务?分别是什么?
5. 你在项目中主要负责哪一部分服务?
6. 你能整体介绍一下你负责的服务设计吗?
7. 为什么要做这个项目?项目背景是什么?
---
# 二、系统架构设计
8. 整个系统的服务划分是怎样的?
9. 系统中有哪些模块?
10. 每个服务的职责分别是什么?
11. 系统中一共有多少个接口?主要有哪些接口?
12. 节目服务主要提供哪些 API?
---
# 三、下单链路设计(这里问了一个缓存一致性有没有设计对账来保证)
13. 抢票系统的下单流程是怎样的?
14. 为什么要使用 Redis + Lua 扣库存?
15. 为什么要使用 Kafka 异步创建订单?
16. Redis 扣库存之后为什么不直接创建订单?
17. 如果用户下单后立刻查询订单列表,查不到怎么办?
18. 为什么使用前端轮询订单状态?
19. 为什么不由后端触发补偿机制,而要依赖前端?(这里是表达有误)
20. 如果订单长时间没有创建成功怎么办?
---
# 四、缓存设计
21. 你提到使用了三级缓存,三级缓存分别是什么?
22. 三级缓存中每一层缓存的数据是一样的吗?
23. 本地缓存和 Redis 缓存之间如何保证一致性?
24. Redis 缓存如何保证一致性?
25. 如果缓存删除失败怎么办?
26. 有没有设计缓存对账机制?
27. Redis 缓存什么时候更新?
28. Redis 缓存什么时候失效?
29. 缓存 TTL 是如何设计的?
---
# 五、幂等组件
30. 为什么要设计幂等组件?
31. 幂等组件解决了什么问题?
32. 幂等组件是如何实现的?
33. 幂等组件中锁的 key 是如何设计的?
34. 如果网络失败或者请求异常,幂等如何保证?
---
# 六、ES 搜索
35. ES 中存储的是什么数据?
36. ES 中大概有多少条数据?
37. ES 的索引是如何设计的?
38. ES 常见的性能优化手段有哪些?
---
# 七、Kafka
39. Kafka 除了 Producer、Consumer、Broker 还有什么核心组件?
40. Kafka 的元数据是如何管理的?
41. Kafka 的 Partition 有什么作用?
42. Kafka 如何保证消息顺序?
43. Kafka 如何提升吞吐量?
---
# 八、Redis
44. Redis 常见的异常场景有哪些?
45. 什么是缓存穿透?如何解决?
46. 什么是缓存击穿?如何解决?
47. 什么是缓存雪崩?如何解决?
48. Redis 跳表是什么?
49. Redis 跳表主要应用在哪个数据结构?
---
# 九、Redis 实战
50. 如果要做一个排行榜系统,你会如何设计?
---
# 十、MySQL
51. MySQL 中有哪些锁?
52. MySQL 的行锁、表锁、意向锁分别是什么?
53. 在 RR 隔离级别下执行 delete where id = 10 时会如何加锁?
54. MySQL 索引失效有哪些情况?
55. not in 是否会导致索引失效?
---
# 十一、算法题
56. 找出序列中第一个没有出现的正整数。
如何在 O(n) 时间复杂度、O(1) 空间复杂度下解决该问题?
---
全部评论
本地缓存一致性那块怎么回答?我看有人说用redis发布消息订阅来删除本地缓存
项目问的这么深吗
哪个部门呀
相关推荐
查看13道真题和解析 点赞 评论 收藏
分享