招银网络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 的一个强大特性,允许消费者组动态地缩放和适应负载变化。出现场景:新增消费者:当新的消费者加入消费者组时。消费者离开:当现有的消费者离开消费者组或宕机时。Topic 的 partition 数量变化:当被消费的 topic 的 partition 数量改变时。手动触发:也可以通过编程方式手动触发 rebalance。原因:负载均衡:确保每个消费者都能处理大致相等数量的 partitions。容错:当某个消费者失败时,其分配的 partitions 可以被快速转移到其他健康的消费者。动态扩展:允许你根据需求增加或减少消费者数量。过程:触发条件:首先,满足上面所述的一个或多个触发场景。停止消费:所有消费者暂停消费数据。重新分配:Kafka 的 Group Coordinator 将可用 partitions 重新分配给当前活跃的消费者。同步状态:消费者获取新的 partition 分配,并更新其本地状态。恢复消费:完成 rebalance 后,消费者开始按照新的分配消费 partitions。注意事项:消费者状态:在 rebalance 过程中,消费者通常不能读取或提交数据,这可能会导致短暂的延迟。数据重复或丢失:如果在 rebalance 之前没有正确地提交 offset,可能会导致数据重复或丢失。成本:频繁的 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"
点赞 10
评论 7
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务