虾皮Shopee后端一面凉经

一志愿流程终止了(时间线写在后面
拖了3周才复盘,顺便又投了一个二志愿。
更新:又复活了,二志愿约面但疑似kpi

因为我找实习的时候做过笔试了,所以免笔试直接面的。一共面了45分钟左右,基本没怎么问项目,大篇幅问了线程池、卡夫卡,好多场景题,cpu烧了。

一、聊了几句,然后自我介绍

二、线程池场景,展开一些问题

1. 讲一下线程池的参数。
2. 核心线程、最大线程、队列之间的关系。

3. 场景设计一:
我提供一个API来call你,你收到请求就丢到线程池里面,然后就返回给我“处理中”。你处理完以后再告诉我,调我的接口通知我。现在假设我这边发起一个1000qps的的服务,那么你要怎么去设计这个线程池的参数?题目给的信息有限,你可以再往里补充信息,比如它现在是个分布式的还是单机的集群?比如你可以考虑你要多少服务器,每个服务器要生成多少资源?
(这里用cpu密集和io密集回答混不过去,要给出具体数据来算。。。)拉扯了几分钟以后定下来单个执行时间假设为100ms,假设为部署在10个服务器的分布式集群,假设SLA规定你一分钟一定要处理完给我响应,在此基础上反推各个参数是多少?

4. Handler的处理中不想丢失掉的话要用什么拒绝策略?

三、不知道为什么问起网安问题

5. 会用一些加解密吗?
6. 非对称加密和对称加密?
7. 用过一些具体的算法吗?

四、Kafka场景,展开一些问题

8. 场景设计二:
我现在有个topic,假如有6个分区,生产消息的QPS是1500,部署在6个Pod的分布式集群,有一个消费者分组订阅了这个topic,单个执行时间还是100ms,问怎么设置消费者线程数量才能让消息不堆积?
(不太明白,没算出来,然后面试官调整题目)说QPS还是1500,部署在10个Pod上,但是只有6个分区,那怎么分配?调整什么东西?

五、支付场景,展开一些问题

9. 支付订单是有风险的操作,要保证接口的幂等,那什么是幂等?
10.  查询需要考虑幂等吗?为什么?如果传过来的请求是带有订单号的,能否用来做幂等?

11. 场景设计三:
现在假如说我们用订单号来做幂等的话,那你要怎么设计才能保证一定是幂等的呢?
(继续问)那假设你把订单号存起来了,同一笔订单你怎么保证不会在并发环境下写入两条同样的记录?

六、手撕算法题,没写

本来有这个环节,但是时间不多了,说我以前找实习的笔试做得还行,就不用写了

七、反问,聊了几句

#虾皮# #后端# #面经# #秋招# #Java#

时间线:
8.19 投递简历
----  没有笔试
8.28 邮件约面
8.30 一面
9.2 一志愿终止
9.22 投二志愿
10.8 二志愿笔试
10.23 又约面
10.26 又一面
全部评论
我擦,为啥全问场景题啊
2 回复 分享
发布于 2024-09-23 16:49 陕西
笔试A了多少
点赞 回复 分享
发布于 2024-09-25 23:55 美国
二志愿只能换base吗
点赞 回复 分享
发布于 2024-09-24 13:55 美国

相关推荐

04-21 12:38
已编辑
门头沟学院 Java
自我介绍和实习省略,实习问了两个相关的,部分八股,无深挖大概20min,手撕了20minQ4:你在项目中使用了Redis Zset,它是用来做什么的?A4:用于实现的定时发布功能。使用score存储时间戳,按时间戳排序。通过Spring Task定时任务每秒扫描,查询当前时间戳范围内的帖子并修改状态为已发布。考虑过使用消息队列,但因实际QPS较低选择了Redis Zset。Q5:Zset的数据结构是怎样的?A5:由跳表和哈希表实现。哈希表用于O(1)时间复杂度查询key对应的score。跳表是多级索引结构,类似B+树但更灵活。叶子节点是单链表,按顺序串联。索引节点随机分布,没有严格的树高要求。Q6:B+树是什么?为什么使用它?A6:是多叉树,MySQL InnoDB引擎的默认存储结构。主要解决索引和排序问题。相比哈希表,B+树能维护有序性。节点大小通常为16KB页,减少IO次数。目标是构建宽矮的树,减少访问节点数。Q7:请解决一道编程题(股票买卖问题)A7:初始问题:一次买卖,用last维护前i-1天的最低价格,计算最大收益。变种问题:必须完成两次买卖,不能当天买卖。Q8:你有什么问题想问我们?A8:询问部门具体业务:生活服务营销部门,做抖音生活服务业务的营销相关。技术方向:传统Java后端和智能体都有。面试结果反馈时间:预计几天内。感觉面试官也不太感兴趣,仅做记录无参考价值。
查看5道真题和解析
点赞 评论 收藏
分享
评论
12
47
分享

创作者周榜

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