4.24 美团本地核心一面
1. 你在本地生活服务项目里实现了两级的缓存架构,这个主要是为了解决什么问题?具体是怎么实现的?
2. 那你有没有比对过 Redis 单机缓存跟多机缓存,在响应时间上有多大的差异呢?
3. 那你是如何保证两级缓存和数据库之间的数据一致性的?
4. 你这里查的是优惠券的基础信息,还是优惠券的库存这类动态数据?
5. 优惠券的基础信息现在是不太会变动的,那如果有主动更新的场景,你这个方案怎么保证数据一致性呢?
6. 你这个方案能保证最终一致性吗?或者说有没有可能还会存在部分数据不一致的情况?
7. 你是通过缓存的自动过期时间来保证最终一致性是吧?
8. 那比如说我想让最终一致性的实时性稍微更高一点,有什么其他的方案?
9. 你现在是通过 MQ 去操作缓存来保证数据一致性对吧?
10. 你这里还使用 Redisson 分布式锁和双重检查来解决缓存击穿的问题,这个可以详细讲一讲你的实现逻辑是怎么样的?
11. 那你在获取分布式锁的时候,用的是哪个方法?是 tryLock 还是 lock?
12. 你对 Redisson 分布式锁的实现有怎样的了解?有了解过它的具体实现原理吗?
13. 在秒杀业务里,你这里用令牌桶进行限流,那这个令牌桶限流你是怎么实现的?是你自己实现的还是用了开源的实现方案?可以具体讲一讲实现的过程。
14. 你的意思是,你的实现不是真的创建了一个桶来存放令牌是吗?这个方案是你自己设计的吗?
15. 你这边完成库存扣减以后,会把消息投递到 RabbitMQ 去消费对吧?那如果 Lua 脚本里库存扣减成功了,但是投递 MQ 失败了,或者 MQ 本身消费没成功,你怎么保证库存扣减数量的一致性呢?
16. 我这里假设一种极端场景,就是你 Lua 脚本完成库存扣减以后,服务直接挂了,还没来得及投递到 MQ,那服务重启成功以后,如何去校验这个数据的一致性?有考虑过这种极端情况吗?
17. 你的 Lua 脚本里面会去写数据库吗?
18. 那你的 Redis 和数据库,你以哪个的数据为准?你是先扣 Redis 库存,还是先扣数据库库存?
19. 那如果 Redis 扣减成功了,数据库这边还没扣减、还没执行就挂了,那你是以数据库的数据为准是吗?
20. 你还做了一个 Agent 的项目对吧?是基于 ReAct 模式做的,可以详细讲一讲 ReAct 模式是如何实现对话 Agent 的,以及上下文是如何管理的?
21. 你是对工具调用的结果做了截断,还是做了其他处理?这个需要管理的信息具体是指什么?
22. 你具体是怎么处理上下文的?是直接固定截断保留多少字节,还是会做内容压缩,或者是其他的处理方式?
23. 那你的 Agent 记忆功能是如何做的?短期记忆以及长期记忆,是如何存储的,以及如何去检索的?
24. 我看你这边讲到 token 节约了 50%,这个具体是怎么做到的?做了哪些相关的优化工作?
25. 你在之前做项目或者学习的过程中,有没有承接过自身职责之外的事情?有的话可以讲一讲。
26. 在 AI 相关领域,你主要用过哪些工具?或者学习过哪些相关的技能?可以讲一下你用得最多的一个。
27. 你一般会怎么使用这些 AI 工具?比如用它帮你实现功能这类的场景?
28. 你可以讲一讲你实现过的、觉得效果还不错的某一个 Skill。
29. 这个 Skill 是你安装了别人开发的,还是你自己写的?
30. 那你觉得有哪个 Skill 给你的影响比较深?
31. 那你对 Skill、MCP 这类技术的理解是什么?为什么需要 MCP?Skill 用起来有什么样的优势?它们分别是为了解决什么问题?
32. 那 MCP 和 Function Calling 会有什么区别?
33. 那你觉得 MCP 和 Skill 是同一个维度上的东西吗?Skill 可以替代 MCP 吗?#面经##暑期实习#
2. 那你有没有比对过 Redis 单机缓存跟多机缓存,在响应时间上有多大的差异呢?
3. 那你是如何保证两级缓存和数据库之间的数据一致性的?
4. 你这里查的是优惠券的基础信息,还是优惠券的库存这类动态数据?
5. 优惠券的基础信息现在是不太会变动的,那如果有主动更新的场景,你这个方案怎么保证数据一致性呢?
6. 你这个方案能保证最终一致性吗?或者说有没有可能还会存在部分数据不一致的情况?
7. 你是通过缓存的自动过期时间来保证最终一致性是吧?
8. 那比如说我想让最终一致性的实时性稍微更高一点,有什么其他的方案?
9. 你现在是通过 MQ 去操作缓存来保证数据一致性对吧?
10. 你这里还使用 Redisson 分布式锁和双重检查来解决缓存击穿的问题,这个可以详细讲一讲你的实现逻辑是怎么样的?
11. 那你在获取分布式锁的时候,用的是哪个方法?是 tryLock 还是 lock?
12. 你对 Redisson 分布式锁的实现有怎样的了解?有了解过它的具体实现原理吗?
13. 在秒杀业务里,你这里用令牌桶进行限流,那这个令牌桶限流你是怎么实现的?是你自己实现的还是用了开源的实现方案?可以具体讲一讲实现的过程。
14. 你的意思是,你的实现不是真的创建了一个桶来存放令牌是吗?这个方案是你自己设计的吗?
15. 你这边完成库存扣减以后,会把消息投递到 RabbitMQ 去消费对吧?那如果 Lua 脚本里库存扣减成功了,但是投递 MQ 失败了,或者 MQ 本身消费没成功,你怎么保证库存扣减数量的一致性呢?
16. 我这里假设一种极端场景,就是你 Lua 脚本完成库存扣减以后,服务直接挂了,还没来得及投递到 MQ,那服务重启成功以后,如何去校验这个数据的一致性?有考虑过这种极端情况吗?
17. 你的 Lua 脚本里面会去写数据库吗?
18. 那你的 Redis 和数据库,你以哪个的数据为准?你是先扣 Redis 库存,还是先扣数据库库存?
19. 那如果 Redis 扣减成功了,数据库这边还没扣减、还没执行就挂了,那你是以数据库的数据为准是吗?
20. 你还做了一个 Agent 的项目对吧?是基于 ReAct 模式做的,可以详细讲一讲 ReAct 模式是如何实现对话 Agent 的,以及上下文是如何管理的?
21. 你是对工具调用的结果做了截断,还是做了其他处理?这个需要管理的信息具体是指什么?
22. 你具体是怎么处理上下文的?是直接固定截断保留多少字节,还是会做内容压缩,或者是其他的处理方式?
23. 那你的 Agent 记忆功能是如何做的?短期记忆以及长期记忆,是如何存储的,以及如何去检索的?
24. 我看你这边讲到 token 节约了 50%,这个具体是怎么做到的?做了哪些相关的优化工作?
25. 你在之前做项目或者学习的过程中,有没有承接过自身职责之外的事情?有的话可以讲一讲。
26. 在 AI 相关领域,你主要用过哪些工具?或者学习过哪些相关的技能?可以讲一下你用得最多的一个。
27. 你一般会怎么使用这些 AI 工具?比如用它帮你实现功能这类的场景?
28. 你可以讲一讲你实现过的、觉得效果还不错的某一个 Skill。
29. 这个 Skill 是你安装了别人开发的,还是你自己写的?
30. 那你觉得有哪个 Skill 给你的影响比较深?
31. 那你对 Skill、MCP 这类技术的理解是什么?为什么需要 MCP?Skill 用起来有什么样的优势?它们分别是为了解决什么问题?
32. 那 MCP 和 Function Calling 会有什么区别?
33. 那你觉得 MCP 和 Skill 是同一个维度上的东西吗?Skill 可以替代 MCP 吗?#面经##暑期实习#
全部评论
相关推荐
查看13道真题和解析