京东一面
一共一小时,过了
自我介绍
项目方面
- 说我简历上项目的时间有点太老了
- 项目设计、模块分工怎么做的?怎么考虑的?你主要做哪块?
- 购买车票的流程?令牌的数量和MySQL中的车票的数量是时时保持一致的么?如果我隔一段时间(同时来了多个请求,只有一个请求进行更新)更新一次令牌的数量,这有问题么?
- 布隆过滤器的作用?
- ZooKeeper 的原理(只是用了一下,说了一下一主多从,节点不可重复写入)?
- Kafka 的原理(其实我不知道这种问题要回答啥,然后就回答了一下主从粒度 => partition 选举机制 => controller 选举(3.3 之前、之后)、消息的不丢失)?At Least Once 模式是什么(保证消息至少被处理一次,消息可能会被重复发送)?如果包含某个信息的 partition 所在的 broker 都宕机了,那这个消息会丢失么(我回答的会,如果没被这个信息发过来之后没被刷盘的话,肯定就丢失了,Kafka 采用的是异步刷盘,通过配置刷盘参数来控制刷盘的频率)?Kafka Broker 遇到重复消息时的幂等是怎么实现的(不会,实际上是给生产者发送的消息上加了生产者ID(PID)和序列号SequenceNumber,如果 Broker 发现两个消息的PID和SequenceNumber相等,就不保存这个消息,直接返回ack)?你的项目里有实现幂等么(我说了通过 redis 来实现购买车票请求的幂等)?Redis 负责幂等的键值对的过期时间怎么设置的,有没有测过(没测过)?Kafka 消费者组的概念(几乎没人问,答的不好。消费者组提供了可扩展性,一个消费者组可以订阅多个topic,topic每个分区只可以给这个消费者组中的一个消费者消费,消费者组来协调组内消费者的消费的分区)?重平衡的流程?重平衡的触发条件?
八股
- 反射的作用?原理?在哪些场景中使用?
- Java 为什么不支持多继承?
- InnoDB 索引怎么实现的?B+树(又扯了一下 LSM-TREE,刚学了就用上)?
手撕
- 两两翻转,上 leetcode 写的,直接被看到写过了,不过面试官说没问题,再写一遍
- SQL 题,Table(市,省,GDP),查出来每个省 GDP 前三的市,SQL 菜死,我按照省 Group By 的,面试官说不对,问我了解过窗口函数没有,没了解过。