本文最后更新于0 天前,其中的信息可能已经过时,如有错误请发送邮件到2750241635@qq.com
当时的项目还是hm点评
- 秒杀项目介绍
- 秒杀项目大致流程
- 地区排序附近商家是怎么实现的,是自己实现了定位功能吗?不是,大概是前端传一个geo数据,后台再对已有数据排序
- 秒杀是模拟用户接口还是怎么做的?我使用Apipost压测, user表大约三十万数据;
- 压测效果如何?QPS1000,响应时间440ms–>130ms
- 你这个qps是怎么实现的?在apipost设置了1000个token,5s内发送1000个请求
- -每个用户发一个请求和一千次请求肯定不一样啊,总请求量是1000,那你的QPS就是1000?这里脑子有点抽了一时间没反应过来
- Redis stream的底层实现原理结构:
- Kafka MQ这些没用过是吧?
- Kafka有了解吗?Kafka的Rebalance机制知道吗?不知道 可能与半确认机制有关
- ES是怎么实现的?装了分词提示器简单使用 原理不清楚
- Select from update具体是哪种隔离级别模式? 读已提交
- JVM jdk8的内存结构
- 新生代怎么去老年代?
- @SpringbootApplication注解的作用?
- 算法:删除有序链表中重复的元素 I
反问环节:具体业务,技术栈,抓取+输入业务 java多一点, 技术面两面 + hr面 共三面;
表现:学学别的组件 kafka es rpc:swipssion
二面
- 自我介绍
- 项目介绍
- 超卖实现细节?缓存热点商品key-处理前端请求(判断redis库存)-异步优化
- 消息队列如果消费失败了怎么办?Redis list/pubsub/stream 保证持久性用其他消息中间件MQ
生产级处理建议:
- 使用 Kafka / RabbitMQ / RocketMQ;
- 失败重试机制:
- 自动重试多次;
- 超过次数后进入死信队列(DLQ);
- 后台可人工补偿或定时任务扫描 DLQ 处理。
Redis 的 Stream 可以保证消息持久 + 消费确认(XACK)+ 消息未确认可以被 Claim。

- 布隆过滤器实现原理?解决缓存穿透,bitmap思想,多次哈希计算索引位置1,误判率较低Bitmap 和 布隆过滤器傻傻分不清?你这不应该啊_bitmap和布隆过滤区别-CSDN博客
- 错误拦截率大概是多少?5%左右吧
- 点餐项目的背景?大概开发多长时间?有参考其他资料吗?
- 项目难点,如何解决?业务转换到代码层/注重用户体验,拓展性,安全性
- 最终上线了吗?本地部署
- 数据的规模?来源?
- MYSQL,如果想根据餐厅销售额统计具体某天的热门餐厅应该如何实现?order表结合shop表,连接,count计算各shop对应订单量,过程中注意其他优化如索引等

- 索引原理有了解吗?InnoDB引擎用B+树实现,相比B树保持稳定查询效率(只在叶子节点存储数据)
- 聚簇索引和非聚簇索引的区别?区别是节点是否存放数据,聚簇索引存放行数据,非聚簇索引叶子节点存放主键地址吧
- 数据结构:两个单向链表如何判断是否相交?
按照遍历思想,定义两个节点分别指向两个链表的头节点,判断p1.val是否等于p2.val - 如果两个链表长度不一样呢?
设置遍历终止条件为while(p1.next!=null && p2.next!=null)
那么时间复杂度是多少?若链表长度分别为m和n,最好的结果是一开始就相等(O(1)),最差是末尾相等(O(m+n))
有什么问题吗?(想了想)不对,最差情况下应该是O(max(m,n))
那假如我想统计相交节点的位置应该如何统计?每个链表维护一个对应的cnt(默认值1),每次指针移动时都加一,直到停止遍历

- 常见linux命令? Ps ls cat less more vim chmod
- 手撕 分糖果问题 135. 分发糖果 – 力扣(LeetCode)
反问:实习业务;抓取爬虫 pc app 小程序 数据清洗整合 归一化 管理后台 安全审查风控
资料库–>抓取倾斜 爬虫后台可能多一点
我爱猫猫










