当前位置: 首页 > 面试经验 >

招银网络Java开发一面

优质
小牛编辑
89浏览
2023-09-08

招银网络Java开发一面

招银网络Java开发一面

面试时间:2023/09/08。

​ 面试体验很好,虽然面试官迟到了8分钟,但是也说明了理由(上一个候选人时间有点超了),我在回答问题的时候,面试官也会进行点头和口头嗯的回应,让感到舒适。

1.在之前的实习经历中,最能代表Java技术能力的工作或者成果是什么?简单介绍一下

2.Kafka Connector在读取数据时,宕机了,如何保证下次读取的可靠性?

​ Kafka Connector会用一个connector topic来存储读取的进度的。

3.讲一下Kafka中消费者Group的作用

4.讲一下Kafka的rebalance

​ Kafka 的 rebalance(重新平衡)是一个过程,其中 Kafka Consumer Group 中的消费者实例动态地重新分配 topic 的 partitions。这是 Kafka 的一个强大特性,允许消费者组动态地缩放和适应负载变化。

出现场景:

  1. 新增消费者:当新的消费者加入消费者组时。
  2. 消费者离开:当现有的消费者离开消费者组或宕机时。
  3. Topic 的 partition 数量变化:当被消费的 topic 的 partition 数量改变时。
  4. 手动触发:也可以通过编程方式手动触发 rebalance。

原因:

  1. 负载均衡:确保每个消费者都能处理大致相等数量的 partitions。
  2. 容错:当某个消费者失败时,其分配的 partitions 可以被快速转移到其他健康的消费者。
  3. 动态扩展:允许你根据需求增加或减少消费者数量。

过程:

  1. 触发条件:首先,满足上面所述的一个或多个触发场景。
  2. 停止消费:所有消费者暂停消费数据。
  3. 重新分配:Kafka 的 Group Coordinator 将可用 partitions 重新分配给当前活跃的消费者。
  4. 同步状态:消费者获取新的 partition 分配,并更新其本地状态。
  5. 恢复消费:完成 rebalance 后,消费者开始按照新的分配消费 partitions。

注意事项:

  1. 消费者状态:在 rebalance 过程中,消费者通常不能读取或提交数据,这可能会导致短暂的延迟。
  2. 数据重复或丢失:如果在 rebalance 之前没有正确地提交 offset,可能会导致数据重复或丢失。
  3. 成本:频繁的 rebalance 可能会对系统性能产生负面影响。

总的来说,Kafka 的 rebalance 是一种强大但复杂的特性,需要仔细管理以最大化其优点并最小化潜在的缺点。

5.如果我想提升Kafka的处理消息的能力和效率,有哪些方式?

​ 生产者根据业务需要发送消息到指定分区,各个消费者并行读取不同分区的消息进行处理。

6.Kafka如何保证一条消息只会被消费一次?

​ offset topic来保证、kafka事务的二阶段提交

7.MySQL日志的二阶段提交说一下

8.讲一下MySQL的redolog和binlog的区别

9.Spring的传播机制说一下

10.Spring如何处理循环依赖的问题?

​ 三级缓存

11.Spring MVC处理请求的流程是怎样的?

12.Java中加载类的流程?

13.不同版本的数据库,比如MySQL5和MySQL8,它们的驱动不同,类名可能也不同,你如何处理这些兼容?从Java层面上说该怎么做?

​ 我答了使用适配器模式。也许这个问题的答案是想让我从classloader的角度来考虑?

14.简单题算法题

​ "fdsa2314fgdg[]23gkl98"中把所有数字反转,变成:"fdsa4132fgdg[]32gkl89"

#招银#
 类似资料: