面灵AI

8.5 财务小厂 Java 开发 二面

时间
2026-08
来源
牛客网

《面试题目》

  1. 一、面试整体感受
  2. 原本以为二面面试官职级更高,压力会大于一面,实际面试氛围更轻松,提问内容大多围绕项目业务展开。
  3. 二、传统后端项目相关问题
  4. 技术选型:二次抉择选用Redis还是数据库
  5. 回答依然选择Redis,结合业务需求介绍Redis优势,分析直接查询数据库存在的弊端。
  6. RabbitMQ异常任务处理
  7. 当前做法仅打印异常日志,依靠人工重放失败任务,缺少自动化处理机制,属于后续待优化方向。
  8. 线上真实问题排查经历
  9. 遇到并发引发用户数据记录异常问题;通过日志追踪、复现问题定位代码位置,最终采用加锁+事务方案保证数据一致性,修复问题。
  10. 如何避免同类并发问题再次出现
  11. 结合现有业务流程说明修复方案的防复发逻辑,自我感觉该问题回答效果欠佳。
  12. Redis聚合统计增量写入方案与数据一致性保障
  13. 当前现状:出于业务考量,系统没有设计完善的数据一致性机制;
  14. 优化思路:写入前置操作日志,若发生宕机故障,可依托日志恢复数据;
  15. 自我总结:该问题被多位面试官反复提问,回答效果始终不理想,需要重点补强。
  16. OMR项目:保障文件格式转换结果可用的方案
  17. 项目依赖大量外部工具调用,可靠性校验分为两点
  18. ① 捕获整个调用链路中的程序异常;

《参考解析》

  1. Redis常用于缓存、分布式锁和计数。缓存与数据库更新通常采用“先写数据库、再删除缓存”,并通过重试、延时双删或消息补偿处理删除失败。
  2. MySQL索引通常使用B+树,叶子节点按顺序连接,适合范围查询;设计索引时结合选择性、最左匹配原则和执行计划,避免无效索引与回表开销。
  3. 并发问题应先明确共享状态和一致性边界,再选择锁、CAS或队列。线程池需要根据任务是CPU密集还是IO密集设置核心线程数、队列容量和拒绝策略,并监控活跃数与队列长度。