穗彩科技 java 一面面经(校招)base深圳

一面后1小时通知二面
——————————
#面试问题记录#

整整一个小时的拷打,场景题+项目拷打 几乎无八股文
🧠 个人背景与项目经历
1.你自我介绍一下?
2.你做的两个项目中,哪个是实习?哪个是练手项目?
3.实习项目主要做了什么?用到了哪些技术和框架?
4.练手项目是独立做的吗?用了哪些模块和功能?    
5.你对这个练手项目熟悉吗?可以详细介绍一下它的功能模块?

💻 技术能力 - 后端开发
1.你项目的XX流程是怎么实现的?Redis + Lua 在其中起到什么作用?
2.你项目的Redis 缓存预热结构是怎样的?怎么判断用户状态?
3.你用 MQ 的目的是什么?为什么不是直接操作数据库?
4.MQ 消费失败的情况下你是怎么处理的?有重试机制吗?
5.死信队列和超时取消使用的是同一个吗队列?怎么区分消息类型?
6.redis成功执行写入了但 MQ 落库消费失败怎么办?Redis 写成功就代表成功吗?
7.JWT 是怎么生成和校验的?用了什么加密算法?
8.用户主动登出是怎么实现的?

🧵 多线程与分布式
9.Redis 的原子性是怎么保证的?
10.项目中你有没有考虑幂等性?怎么防止重复请求的幂等性?
11.XX场景中是否能做到最终一致性?如何通知用户成功?

☁ MQ & 延迟任务
12.延迟队列的作用是什么?项目中用来处理哪类业务?
13.死信队列是如何配置的?超时和消费者消费失败如何分别处理?
14.如果 MQ 消息失败进入死信队列,你是如何排查和处理的?
15.MQ 消息失败重试到上限后该怎么办?
16.使用 RabbitMQ 是为了提高性能还是为了消息可靠性?
17.项目中有没有处理 MQ 消息重复消费问题?

🧩 MySQL & 数据库能力
18.MySQL 的 B+树结构你了解吗?聚簇索引和非聚簇索引有什么区别?
19.建立索引有什么原则?如何判断字段是否适合建索引?
20.用“性别”字段建索引合适吗?为啥说选择性低不适合?
21.全表扫描和使用区分度低的索引扫描哪种情况下更快?
22.大分页 offset 性能差怎么优化?
23.在实习中是怎么优化SQL的?

 🎯场景题:高并发请求失败后处理方式
💡 题目背景描述:
你接入了一个第三方服务,该服务每天发送约 300 万次请求给你们系统。其中,每个请求都包含一个全局唯一的 requestId(一个 40 字节的 UUID 字符串)。如果因为网络中断、超时等原因导致第三方没有收到响应,它会重新发起完全相同的请求(带相同的 requestId),业务上有几个关键限制:
    1、每个 requestId 表示一次业务处理,例如支付通知、回调、交易同步等。
    2、你方必须保证对于每个 requestId,只能处理一次(典型的幂等性要求)。
    3、不能重复请求第三方服务(第三方服务不具备幂等性)
    4、由于网络波动或响应失败,同一个 requestId 有可能会在不同时间再次被发送过来,甚至有以下复杂时间分布:
        4.1、绝大部分重复请求会在20 分钟内重发;
        4.2、一小部分会在1 天内重发;
        4.3、极个别(例如接口挂起重试)会在一年后突然重发。
🤯 关键技术难点:
    如何快速识别“是否已处理过某 requestId”?
    如何既不误判(重复处理)又不滥用资源(存一年)?
    如何兼顾吞吐量、IO压力、成本?
全部评论
佬,求面经
点赞 回复 分享
发布于 2025-05-12 15:18 广东

相关推荐

2025-12-27 18:11
已编辑
门头沟学院 前端工程师
28双非鼠鼠第一份实习,感谢金山,感谢面试官张先生的赏识,也感谢自己很开心很开心(有没有待过的前辈,求摸鱼技巧bushi)timeline12.15 投递12.16 约面12.18 一面 半个小时后约二面12.19 二面,口头oc12.24 发offer一面1. 开发页面中使用的布局方式2. flex: 1 是什么的缩写3. 水平居中的方法4. tailwindcss 的优势5. js 的闭包6. 打印结果的题,解释为什么(var 定义 i ,setTimeout 执行打印),使用 let 的打印结果7. 箭头函数和普通函数的区别8. promise 构造函数是同步还是异步9. 内存泄漏的情况10. interface 和 type 的区别11. react 的 key 作用12. 常用的钩子函数13. 怎么避免不必要的渲染14. useeffect 的使用场景15. react 和 vue 怎么选择16. vue 的 data 为什么用函数17. tcp 为什么需要三次握手和四次挥手18. vite 为什么比较快19. 解释防抖节流和手写防抖函数,还有实现思路20. 深浅拷贝的区别和手写深拷贝,讲实现思路反问了业务,反馈时间和学习建议二面基本上是围绕项目展开,根据项目的每一项,来给场景题问你会怎么做,跟基础相关的东西如下:1. 虚拟列表的实现和原理2. zustand 和 context 的区别3. vitest 相关,写测试的话应该怎么做些什么?4. monorepo的细节问题5. 做项目的动机6. 事件委托和时间冒泡的区别有个点顺着问了我五个问题实在是答不下去了就是说感觉金山云这边面试虽然一面全是八股,但是二面还是要好好准备项目,做到能被深挖那么两三个问题的程度,鼠鼠也是运气很好,问的都是准备过的嘻嘻面试完之后还很期待这个面试官会不会是我mt或者ld,会很认真的听我说话,然后告诉我哪里有小问题,不知道是不是鼠鼠的错觉,感觉他看后辈的眼神都是带有欣赏的意味真的很复合我对mt/ld的幻想(bushi),但是后来发现他ip是北京的qwq有点点小失落,不过没关系,看隔壁某书感觉金山的节奏还挺慢的期待入职ing愿一切顺利,好运常伴吾身这里再吐槽一下流程,怎么!!这么!!慢!!急死我了急死我了!!鬼知道我从周一到接到offer这段时间有多煎熬,哎呀但是但是好在一切如愿
发面经攒人品
点赞 评论 收藏
分享
评论
9
30
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务