2512 杭州有赞一面挂

面试录音转文字记录,然后AI总结

业务与项目经验(电商/订单方向)

Q:针对淘宝接口的时间限制,你们如何拉取和存储订单?

A: 淘宝默认只给 3 个月数据。通过聚石塔接入,普通版用户调 API 实时拉取;高级版用户则通过 TMC 消息队列或 RDS 数据库实时同步并持久化存储,可回溯至 6 个月。

Q:复购标签/复购率的具体判定逻辑是什么?

A: 在 6 个月范围内,若当前订单的买家 ID、卖家 ID 及商品 SKU ID 与历史记录匹配,则判定为复购。

Q:如何优化复购查询性能并处理高频刷单场景?

A: 数据库层面:建立专门的索引表,包含买家/卖家 ID、SKU/SPU ID 及创建时间,避免直查主库。缓存层面:使用 Redis 缓存“最近 6 个月内最早一笔相同订单”的创建时间。入库时优先查缓存,缓存失效或超期才查库并刷新。

Q:ES 搜索时如何处理商品标题中的特殊符号(如 %、#)?

A: 在写入和查询前进行预处理,将特殊符号替换为可被分词器识别的特定字符。

Q:网盘系统的权限模型是如何设计的?

A: 采用 ACL(访问控制列表) 模型。虽然数据量大,但语义简单(用户-资源-权限),通过组合实现复杂的继承和判定逻辑。

Q:如何解决权限层级过深导致的循环查询性能问题?

A: 使用 Redis 缓存权限数据,并在请求级别引入 ThreadLocal 缓存,避免同一次请求内对相同权限节点的重复判断。

订单系统的表结构如何设计?如何处理一笔订单多笔退款?

A: 结构:分为 Trade(交易)和 Order(SKU 级别子订单)两张表,一对多关联。

退款:设立独立退款表,在 Trade 表中冗余退款 ID 数组,实现逆向流程关联。

以下是八股部分

  • 问了不了解dubbo,我说前司没用过,后续没问了
  • 简述 Java 内存模型(JMM)及内存区域。
  • CMS、G1 和 ZGC 垃圾回收器的区别
  • 线程有哪些状态?如何唤醒指定线程?
  • 装饰器模式和观察者模式的应用场景?
全部评论

相关推荐

头像
今天 13:17
已编辑
苏州大学 Java
面试官真的很有耐心,人非常nice,但问得也是真的很细。面完半小后约HR面。有没有人说说HR面会问啥?【希望能过吧,以前真没想到面个试这么耗精力,这一周感觉都被掏空了】1.请做一下自我介绍。2.你掌握的数据结构有哪些?3.请讲一下一致性哈希的原理和解决的问题。4.请讲一下Ring buffer(环形缓冲区)的相关内容。5.请讲解一下HTTP状态码的相关分类和含义(如2xx、3xx、4xx、5xx)。6.请讲解一下四层网络负载均衡和七层网络负载均衡的区别,以及各自的应用场景。7.请讲一下反向代理的原理和常用工具,以及正向代理的相关内容。8.进程间通信的方式有哪些?哪种方式效率更高,为什么?9.请讲一下MySQL主从复制的实现原理(基于binlog、redolog相关)。10.多个从节点之间出现数据不一致的问题该如何解决?11.你了解的消息中间件有哪些?RabbitMQ、RocketMQ、Kafka这三种消息中间件的区别是什么?12.Redis中最常用的数据结构有哪些?13.请讲一下Redis中Zset(sorted set)的底层实现和优化策略。14.什么是小哈希和大哈希,二者在查找、插入性能上有什么区别?15.请讲一下TCC分布式事务算法的相关内容,以及它和2PC、3PC的区别。16.你在项目中使用的服务发现组件是什么,它的实现原理是什么?17.你在项目中使用的序列化协议是什么,为什么选择该协议?18.长连接的适用场景是什么?哪些场景不适合使用长连接,原因是什么?19.请设计一个评论系统(包括数据库表设计、数据结构、关联关系等)。20.【反问】想具体知道会做哪些模块的工作?有没有导师?
查看78道真题和解析
点赞 评论 收藏
分享
评论
3
4
分享

创作者周榜

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