Java 求职面试实录:Spring Boot + Kafka + Redis + Spring Security 在互联网大厂的 3 轮交锋
Java 求职面试实录Spring Boot Kafka Redis Spring Security 在互联网大厂的 3 轮交锋场景某互联网大厂 Java 岗位面试现场。面试官神情严肃候选人是号称“什么都会一点”的水货程序员燕双非。面试官强调今天不讲虚的围绕你做过的业务场景聊技术落地。第一轮基础架构与订单链路问题 1你们做电商下单接口时为什么第一层会优先用 Spring Boot而不是传统的 Spring MVC XML 配置燕双非因为 Spring Boot 启动比较快配置少大家都在用。然后它内置了很多约定写起来比较爽适合快速开发。面试官回答得不错至少知道“约定大于配置”。那你说说如果订单服务要暴露 REST 接口Spring Boot 在工程化上还能解决什么问题 2如果订单创建后要同步通知库存、积分、优惠券三个系统你会直接 RPC 调用三个下游还是先发 Kafka为什么燕双非嗯……如果都同步调链路会比较长容易慢也容易有一个挂了导致整体失败。用 Kafka 的话可以先落消息再异步处理解耦一点。面试官方向对。那消息至少一次投递时幂等你怎么做问题 3订单详情页要频繁查询你会怎么结合 Redis 做缓存缓存穿透、击穿、雪崩怎么防燕双非查询热点数据可以先查 Redis没命中再查数据库然后回填。穿透可以加空值缓存或者布隆过滤器击穿可以加互斥锁雪崩就给不同 key 设置随机过期时间。面试官这次答得还行说明不是完全靠运气。继续。问题 4你们用过 MyBatis 吗在订单表和订单明细表这种一对多场景下MyBatis 和 JPA 你会怎么选燕双非MyBatis 更适合复杂 SQL可控性强JPA 更偏对象关系映射简单业务开发快。订单这种查询和关联比较复杂的我可能更倾向 MyBatis。面试官嗯知道边界这比“我都能用”靠谱。第二轮微服务治理与安全体系问题 1假设你负责的订单服务要拆成多个微服务服务发现你会怎么做Spring Cloud、Consul、Eureka 你怎么理解燕双非服务发现就是让服务之间不用写死地址。Eureka 比较经典Consul 还带健康检查和配置管理Spring Cloud 主要是生态整合。面试官可以。那如果你们后面要迁移到 Kubernetes注册发现思路有什么变化问题 2订单接口需要鉴权用户下单、查询订单、取消订单权限不一样。Spring Security、JWT、OAuth2 你会怎么组合燕双非JWT 可以做无状态登录Spring Security 做统一鉴权拦截OAuth2 适合第三方授权或者统一认证中心场景。比如前端拿 token请求带上来后端校验签名和过期时间。面试官说得比不少面试者清楚。那 token 失效、续期、踢人下线怎么处理问题 3如果下单后要调用物流、营销两个外部系统接口不稳定你会怎么保证整体可用性燕双非可以做超时、重试、熔断、降级。像 Resilience4j 这种可以做限流和熔断避免一个下游拖垮整个订单链路。面试官很好。那重试和幂等一起出现时你怎么避免重复扣库存问题 4你们有没有接过支付回调签名验签你会怎么做为什么不能只信回调参数燕双非要校验签名防止参数被篡改还要校验订单号、金额、商户号和状态避免伪造回调。不能只信回调参数因为网络里什么妖魔鬼怪都有。面试官最后一句虽然不严谨但意思到了。第三轮AI 化搜索与企业知识问答问题 1现在很多业务都在做智能客服和企业知识问答。假设你负责把公司 FAQ、产品手册、工单系统接入 AI你会怎么设计 RAG燕双非先把文档加载进来切分成小块然后做向量化存到向量数据库里。用户提问时先语义检索再把检索结果和问题一起喂给大模型生成答案这样能减少瞎编。面试官不错知道先检索再生成。那如果检索不到合适片段怎么办问题 2你提到向量数据库和语义搜索Milvus、Chroma、Redis 向量能力各自适合什么场景燕双非Milvus 更像专门做大规模向量检索适合数据量大Redis 适合一些轻量和已有缓存体系的场景Chroma 我理解更偏开发和原型验证。面试官可以至少不是只会喊“AI 很火”。那 RAG 怎么控制幻觉问题 3如果让 AI 在工单系统里自动创建、分类、路由工单你会怎么结合工具调用和 Agent燕双非可以把创建工单、查用户信息、查订单状态这些能力封装成工具让 Agent 根据上下文决定调用哪个工具。复杂一点就做多步工作流先判断意图再查资料再执行动作减少模型直接拍脑袋。面试官思路是对的。那如果模型输出不稳定工具参数总填错你会怎么处理问题 4最后一个问题如果让你把传统搜索升级为“自然语言语义搜索”你会怎么评价它和关键词检索的差别燕双非关键词检索更依赖词面匹配语义搜索更关注意思。比如用户搜“如何退款”即便文档里写的是“退费流程”语义搜索也更容易找到。这个在知识库和客服里很有价值。面试官今天聊到这里。整体上你有一些基础业务场景也能跟上不过细节还需要再打磨
