3.6 京东创新零售一面凉经

处女面遇到一个非常严肃的面试官,全程只问了八股加一点场景,无手撕,我努力的在答八股的过程中提到项目中是怎么做的,但面试官一点不问(项目是自己改造的短链系统和 一个rag 项目)。只面了 25min,不知道是不是 kpi。

1.项目使用的 jdk 版本?

答:17

2.17 的新特性都了解吗?

不了解,没怎么使用过。强行讲了一个项目中对 17 默认的垃圾处理器做调优的例子。

3.G1 还有年轻代老年代吗?

答了 G1 的 region 相关。

4.jdk8 的新特性呢?

Lambda 表达式,stream 流,别的不太了解了,提了下我更了解 7->8 的一些组件设计上的升级,比如 concurrenthashmap,jvm 等等的升级。

5.stream 流常见方法?

只记得.fillter.stream.collect

6.并发请求下游接口怎么实现?

答了CompletableFuture

7.线程池任务执行顺序?

常规作答先用核心线程,然后进等待队列,都满了才会创建额外线程。

8.线程池创建后会立刻创建核心线程吗?

不会,懒加载机制。

9 为什么要采用懒加载机制?

主要答了为了节约内存资源和 cpu 资源,面试官说不对。感觉可能更想强调提升启动速度?

追问怎么关闭懒加载?不了解。

10.说了一个具体的线程池参数,问不触发拒绝策略的最大任务数?

答了最大线程数加等待队列大小。

11.拒绝策略?

答了四种拒绝策略。

12.面试官描述一大段场景,总结下就是一个A 调用 B,AB 共用一个线程池,有什么问题?

当时脑子瓦特了,说了个如果ab使用了threadlocal的话可能造成数据混乱。面试官说没有,然后提醒了下会发生死锁。

13.死锁产生条件?

讲了四大条件,并带入到这个场景说了下。

14.一个数据库表索引量的上限?

不了解,强行说了下索引肯定不是越多越好,会增加维护成本。

15.经典的联合索引问题,a,b,c什么情况下走索引?

正常回答。

16.什么情况下考虑分库分表?

答2000万行以上的数据量之后单表性能可能会显著下降,考虑分库分表。

17.面试官问为什么,说其实有时候一亿的数据量级下查询也很快。

那我不知道了啊,ai跟我说的2000万啊😭

18.redis有什么用法?

答了缓存,分布式锁,简易消息队列,redis加lua做限流,并且结合自己的项目说了。

19.项目中限流算法怎么做的?

答令牌桶,讲了下令牌桶怎么做的。

20.令牌桶算法优势和缺点?

详细讲了优缺点,并且和其他几种算法做了对比。

21.追问令牌桶能应对突发流量不是有点吗,怎么又变成缺点了?

答:在系统能应对的能力范围内是优点,如果超出系统承载能力就会变为缺点。

22.redis事务了解吗?

答了redis本身事务不怎么使用,比较鸡肋,不像mysql一样可以保证强一致性,出错无法回滚。更多的时候采用lua脚本来实现。

23.lua脚本能保证强一致性吗?

也不能,说了下lua脚本的本质,并且也无法回滚。

24.什么情况下会导致lua脚本出现数据不一致。

答了执行一半redis宕机的情况,感觉答偏了,可能更常见的是lua脚本执行一半出错?

25redis集群部署了解吗?

了解,简单讲了主从集群,哨兵模式,分片集群。

26.让你写一个消费者,优先考虑什么?

从广播模式集群模式,扯到push和pull,说主要采用push模式被打断了,面试官说怎么采用push呢,肯定用pull啊。当时给我干懵了,现在反思一下应该是一个误会,因为我主要讲的是rocketmq,而rocketmq所谓的push其实就是pull结合长轮询,导致了误会,当时没解释清楚,也怪我这块只背了没了解原理😭。

27.继续讲考虑什么?

继续扯消费者数量和queue数量的问题,以及5.0之后怎么解决这个问题的。被打断,面试官说不应该优先考虑幂等性吗?然后我继续说了rocketmq本身的策略是保证消息至少被消费一次,本身没什么好方法解决幂等性问题,更多要在业务层面解决。

28我问的就是消费者怎么考虑啊,这不就是业务上吗?

简单讲了乐观锁,分布式锁。或者状态机。深入的我也不太了解了。

29广播模式下和集群模式下处理幂等性策略有区别吗?

说了应该有区别,具体的不了解。

30.系统运行时发现出现大量消息堆积,怎么解决?

答了从两方面考虑,一个是提高消费者消费能力,比如增加消费者服务器数量,但是要考虑queue的数量和消费者数量的对比,在一个考虑对生产者利用sentinel做限流熔断降级巴拉巴拉。面试官似乎不满意,问我之前是不是没实习过。感觉我答的都是补救措施,而不能根本解决问题。

反问。

#27届求职交流#
全部评论
感谢大佬的面经,这个拷打的很深入啊。我当时挂的京东一面也是面了半个小时没手撕,但是是KPI面,和别人在同一个部门问到的问题基本差不多。加油,继续战!
5 回复 分享
发布于 03-08 18:56 北京
后天面京东,被这个拷打吓到了
2 回复 分享
发布于 03-08 23:38 广东
问题9:感觉就是防止线程池闲置占用资源 问题12不会:死锁是说b提交t2发现线程池满了,但我a提交的任务t1还在等我的t2完成 14:我搜的innodb单表最大64,生产最好5-1517.总觉得是走索引所以快,联合索引、覆盖索引那些 22.感觉是在说原子性,redis事务无回滚,只有正常执行所有命令才满足原子性,lua脚本可以原子性,但也没法回滚,可以设置延迟队列+守护线程兜底 24.真谈到不一致,好像是lua执行完毕redis主节点宕了,从节点此时成为新的主节点导致的主从不一致 26-30:很nb了楼主,我rocketmq都不知道广播集群以及pull这块,没看过有问的 感觉答的话答pull+长轮询,消费者监听broker那边消息,有就拉过来 幂等性的话,逻辑都一样的,集群的话a节点消费没及时ack给b节点,所以用redis作全局唯一判断,广播判幂等判的是单节点幂等是本地,用本地缓存啥的大量 消息堆积这边,那都发现了不是肯定要补救吗,消费者数量,topic下队列数量,降低生产者生产速度,rocketmq参数拉取间隔增大些,清理过期消息,查找原因对代码层优化这些
1 回复 分享
发布于 昨天 16:42 河南
大佬终会遇到伯乐
1 回复 分享
发布于 03-08 20:04 辽宁
大佬可惜了,下次干回来
1 回复 分享
发布于 03-08 15:55 辽宁
创新零售最近整合到零售下面了,建议冲冲科技,强度和感受都会好一点
点赞 回复 分享
发布于 昨天 15:55 天津
忍耐王
点赞 回复 分享
发布于 昨天 07:15 湖南
这个八股好吓人,我之前面jd零售y事业部没有八股,基本都是挖的项目和结合项目问场景题,然后最后都没有手撕
点赞 回复 分享
发布于 03-09 23:18 黑龙江
我天 这个八股拷打 有点深入呀 没有围绕项目做提问吗
点赞 回复 分享
发布于 03-09 22:48 新疆
业务是啥,七鲜还是供应链
点赞 回复 分享
发布于 03-09 19:36 北京
这也太拷打了
点赞 回复 分享
发布于 03-09 00:19 河北
本科吗
点赞 回复 分享
发布于 03-08 23:37 北京
京东似乎一直不会手撕
点赞 回复 分享
发布于 03-08 23:34 北京
这个是暑期嘛加油
点赞 回复 分享
发布于 03-08 22:54 吉林

相关推荐

03-08 16:30
门头沟学院 Java
点赞 评论 收藏
分享
查看20道真题和解析
点赞 评论 收藏
分享
评论
9
51
分享

创作者周榜

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