)
跨境电商大厂Java面试实录JDK17、Redis分布式锁、Kafka订单削峰、Seata分布式事务、Spring AIRAG智能客服谢飞机三轮被虐哭附完整答案解析场景设定跨境支付独角兽「环球购」——跨境B2C商城、海外仓、保税仓、国际物流、汇率结算、AI多语言客服六大业务线。注册用户2亿、覆盖全球50个国家、日跨境订单3000万单、大促峰值每秒100万笔订单请求、50万包裹同时在途实时追踪业务链路「注册登录→商品浏览→多语言翻译→下单支付→跨境清关→海外仓发货→国际物流→签收评价→AI多语言客服」贯穿全程。今天面试官是传说中「一个问题能把人问出内伤」的老K求职者是简历上写着「精通Java、熟悉高并发」的谢飞机。面试开始。第一轮·筑基期JDK / JVM / Maven老K先热个身。我们新项目要从JDK 8升到17你来说说理由谢飞机17嘛……17一起发升上去大家一起发财老K面无表情说人话。谢飞机哦JDK 17是LTS长期支持版本有record、密封类、文本块配合Spring Boot 3.x必须JDK 17起步而且ZGC垃圾收集器在低延迟场景很香老K嗯算你过了。那我们JVM调优时Metaspace老是被打满你怎么看谢飞机Metaspace那不就是元宇宙空间吗元宇宙来了内存肯定不够用啊老K深吸一口气Metaspace是方法区的实现存的是类元数据跟元宇宙没有半毛钱关系谢飞机那……OOM了怎么办我一般重启大法把-Xmx直接拉到256G物理机拉满不行就再加一台老K你这不是程序员你是网吧网管。谢飞机Maven依赖冲突我也有一套谁报错就删谁删到不报错为止老K你是拆迁队长吗那Gradle和Maven怎么选谢飞机Gradle快Maven稳……再问下去我就要被追着打了。第二轮·历劫期ORM / 连接池 / 缓存 / 消息队列 / 分布式事务老K我们跨境订单要存MySQLMyBatis和JPA你怎么选谢飞机JPA一时爽排查火葬场复杂SQL还是MyBatis香XML里SQL写得明明白白DBA看了都说好。老K微微点头总算有点人话。那N1查询问题呢谢飞机就是查1个订单然后循环查N个明细像奶茶店买一送一买一杯送一百杯数据库直接崩溃老K……话糙理不糙。连接池为什么用HikariCP谢飞机因为名字短加载快老K你再说一遍谢飞机错了错了是因为它用了FastList替代ArrayList、ConcurrentBag无锁设计、字节码极致优化所以快老K缓存三兄弟穿透、击穿、雪崩怎么治谢飞机六个字——防空、加锁、错峰空值也缓存防穿透热点key加互斥锁防击穿过期时间加随机值错峰防雪崩老K终于露出笑容不错这波我认。那分布式锁呢谢飞机setnx秒杀扣库存直接setnx key value完事老K锁过期了怎么办业务没执行完锁没了怎么办谢飞机那我……楼下大黄狗帮我看门老K那是Redisson的看门狗机制自动续期业务没完锁不散谢飞机消息队列Kafka我也熟Kafka就是KingKing的皇冠不能掉消息不能丢老K……你是来说单口相声的谢飞机生产者acksallbroker副本min.insync.replicas2消费者手动提交offset幂等消费三环节都不丢老K跨境下单要扣库存、锁优惠券、生成国际运单跨三个服务事务怎么做谢飞机Seata海盐、烧烤、番茄、原味四种口味任选老K拍桌那是乐事薯片是XA/2PC、AT、TCC、SAGA谢飞机对对对我们用的是Seata AT模式自动补偿业务无侵入第三轮·飞升期WebSocket / 可观测性 / Spring AI RAG老K全球50万包裹要实时推送物流轨迹WebSocket连接怎么扛谢飞机简单for循环挨个发老K50万连接你for循环服务器直接原地升天谢飞机错了错了Netty ChannelGroup管理连接粘性会话Redis Pub/Sub跨节点广播心跳保活百万连接没问题老K点头大促出问题了怎么排查谢飞机可观测性三件套PrometheusGrafana看指标ELK查日志Jaeger/Zipkin看链路比福尔摩斯还神老K我们准备上Spring AI做多语言智能客服你怎么看谢飞机Spring AI的ChatClient用起来跟JdbcTemplate一个味儿真香老K那客服回答跨境电商政策模型乱编怎么办谢飞机上RAG先搜后答把海关政策文档切片向量化存Milvus用户提问先语义检索再喂给大模型回答有依据老K向量数据库怎么选谢飞机Milvus海量数据、Chroma轻量开发、Redis Stack直接复用现网老KMCP是什么谢飞机AI界的USB-C统一协议一个接口接所有工具老KA2A呢谢飞机Apple to Apple苹果对苹果大家都用苹果老K扶额那是Agent-to-Agent智能体之间通信的协议那Agentic RAG呢谢飞机AI侦探不是搜一次就完事而是多轮思考先搜→发现信息不够→再搜→整合→给答案跟侦探破案一样老K眼睛一亮这波可以你最懂的就是这个了。最后一个问题AI幻觉能根治吗谢飞机只能缓解不能消除就像你永远无法让杠精闭嘴。老K沉默三秒……你回去等通知吧。谢飞机好的这是我集齐的第七张「等通知」卡片可以召唤神龙了彩蛋三个月后谢飞机入职了竞品跨境电商平台「海淘无忧」工牌上写着三个大字——「等通知侠」。而老K默默从碎纸机旁捡回他的简历在背面写下了四个字「值得再约」。 文末答案解析小白学习版16大考点考点1JDK 8/11/17 特性对比| 版本 | 亮点 | 说明 | |------|------|------| | JDK 8 | Lambda、Stream、Optional | 统治Java多年的经典版本 | | JDK 11 | 局部变量类型推断(var)、ZGC预览 | LTS版本企业升级主力 | | JDK 17 | record、密封类、文本块、ZGC转正 | 最新LTSSpring Boot 3.x强制要求 |选型逻辑新项目直接JDK 17 Spring Boot 3.x老项目逐步从8升到17注意javax→jakarta包名迁移。考点2JVM内存分区Metaspace不是Metaverse堆对象实例GC主战场栈线程私有存局部变量Metaspace方法区实现存类元数据默认无上限受物理内存限制程序计数器线程私有指向下一条指令OOM排查四板斧口诀jps找进程 →jmap -dump导堆 →jstack看线程 →MAT分析大对象。考点3Maven/Gradle依赖冲突mvn dependency:tree查看依赖树排除冲突exclusions统一版本父POM用dependencyManagement管理BOMGradle优势增量构建、并行任务构建速度更快考点4MyBatis vs JPAMyBatisSQL手写可控适合复杂查询、报表、多表联查JPA/HibernateCRUD开发效率高但复杂SQL难优化易产生N1N1问题查1条主记录后循环查N条关联记录产生N1次查询。解决BatchSize、JOIN FETCH、MyBatis的association/collection联查考点5HikariCP为什么快FastList替代ArrayList优化get/remove操作ConcurrentBag无锁设计线程安全且高并发下性能极佳字节码精简极致优化减少CPU开销考点6缓存穿透/击穿/雪崩| 问题 | 场景 | 解决方案 | |------|------|----------| | 穿透 | 查不存在的key打穿到DB | 缓存空值、布隆过滤器 | | 击穿 | 热点key过期瞬间 | 互斥锁、逻辑过期 | | 雪崩 | 大量key同时过期 | 过期时间加随机值、多级缓存 |口诀防空、加锁、错峰考点7Redis分布式锁三大坑 Redisson看门狗// 正确姿势Redisson RLock lock redisson.getLock(order: orderId); lock.lock(30, TimeUnit.SECONDS); // 看门狗自动续期 try { // 业务逻辑 } finally { lock.unlock(); }三大坑锁过期业务未完成、误删他人锁、不可重入。Redisson看门狗默认每10秒续期一次业务没结束锁不释放。考点8Kafka三环节不丢失生产者acksallretries重试Brokermin.insync.replicas2 副本机制消费者手动提交offset 幂等消费业务去重表考点9分布式事务四方案选型| 方案 | 原理 | 适用场景 | |------|------|----------| | XA/2PC | 强一致两阶段提交 | 并发低、强一致要求极高 | | TCC | Try-Confirm-Cancel 手动补偿 | 金融类、需要灵活控制 | | SAGA | 长事务逆向补偿 | 跨服务长流程 | | Seata AT | 自动生成反向SQL补偿 | 业务无侵入主流选择 |考点10注册中心CAP对比EurekaAP服务注册不丢失但可能读到旧数据Netflix OSSNacosAP/CP可切换阿里出品国内主流ConsulCP强一致自带KV存储考点11WebSocket百万连接架构Netty基于NIO的高性能网络框架支撑百万连接ChannelGroup统一管理所有Channel粘性会话保证同一用户请求落到同一节点Redis Pub/Sub跨节点广播消息心跳机制定时心跳保活清理死连接考点12可观测性三件套指标MetricsPrometheus采集 Grafana可视化日志LoggingELKElasticsearch Logstash Kibana链路TracingJaeger/Zipkin全链路追踪定位慢接口考点13Spring AI核心能力ChatClient像JdbcTemplate一样流式调用大模型EmbeddingModel文本向量化OpenAI/OllamaChatMemory聊天会话内存管理Function Calling工具执行框架让模型调用业务APIAdvisors提示填充、上下文增强、审核等横切能力考点14RAG离线/在线双阶段全流程离线阶段文档加载→切片→Embedding向量化→存入向量数据库Milvus/Chroma/Redis Stack在线阶段用户提问→问题向量化→语义检索TopK→拼装Prompt→LLM生成带依据的回答应用企业文档问答、智能客服系统、自然语言语义搜索考点15MCP A2A Agentic RAGMCP模型上下文协议客户端-服务器架构统一工具调用标准化像「AI界的USB-C」A2AAgent-to-Agent智能体之间通信协议支持Agent协作与扩展Agentic RAG多轮思考式检索——检索→判断信息不足→再检索→整合答案类似「AI侦探」的ReAct循环ReasonAct考点16AI幻觉本质与6大缓解手段本质大模型基于概率生成会一本正经地胡说八道。缓解手段RAG检索增强给模型「参考答案」提示词约束「不知道就说不知道」温度参数调低减少随机性输出引用来源可溯源人工审核兜底尤其医疗、金融场景模型微调注入领域知识记住AI幻觉只能缓解不能消除就像你永远无法让杠精闭嘴。