美文网首页
guazi xiuche2021-06-25

guazi xiuche2021-06-25

作者: wuhuaguo丶 | 来源:发表于2021-06-26 11:06 被阅读0次
  • Kafka partition是什么概念

  • 为什么kafka的传输效率非常高,原因是什么 零拷贝技术

  • Kafka如何保证消息一定被消费 ? ack概念(producer ack consumer ack) offset概念

  • Kafka会有脑裂吗

Kafka不会有脑裂
kafka中只有一个控制器controller 负责分区的leader选举,同步broker的新增或删除消息,但有时由于网络问题,可能同时有两个broker认为自己是controller,这时候其他的broker就会发生脑裂,不知道该听从谁的。
如何解决?controller epoch
每当新的controller产生的时候就会在zk中生成一个全新的、数值更大的controller epoch的标识,并同步给其他的broker进行保存,这样当第二个controller发送指令时,其他的broker就会自动忽略。
选举问题
每个消息有自己的topic 每个topic有多个分区 多个分区位于不同的broker 每个分区有一个主分区和多个从分区。
每个分区都有一个主分区(leader)和多个从分区(fowller) 当一个broker宕机时,存在于该broker的主分区也会停止服务,因此要重新选举新的leader分区。
如何选举
控制器会从zk中读取ISR列表 选取下一个有效的分区副本成为新的leader
 Kafka会在Zookeeper上针对每个Topic维护一个称为ISR(in-sync replica,已同步的副本)的集合,该集合中是一些分区的副本。如果这个集合有增减,kafka会更新zookeeper上的记录。

  • zk用的多吗,在哪里用的; zk的分布式锁是怎么实现的

  • MySQL隔离级别 幻读

  • innodb如何支持事务

  • MySQL如何主从同步

  • Redis缓存如何设置的过期时间

  • 如果redish缓存放不下会怎样,内存淘汰机制(all-keys lru)

  • AOP原理 核心类是什么

  • SPI是什么?

  • Spring IOC的循环依赖是怎样解决的 三级缓存

  • 对哪些技术研究的比较深

  • Nginx

  • JVM相关的了解的多么

  • 线上CPU100% 如何定位

  • JVM类加载是怎么一个过程 加载-连接-初始化 连接又分 验证-准备-解析

  • JVM什么时候会加载一个类

  • 双亲委派机制,什么时候会破坏双亲委派机制,ThreadContextClassloader JDK1.0 的时候为了兼容 Clasloader的引用

  • 不同的类加载器加载同一个类,加载出来的类是相同的吗?

  • Linux底层的IO模型相关 NIO Netty

  • TCP UDP HTTP协议相关

  • HTTP是基于TCP还是UDP

  • TCP与UDP的区别

  • 什么时候用到了UDP

算法:

  • 两个有序链表合并成一个有序链表

复试:

  • 拿一个项目深入去讲一讲,系统架构

  • 拿出一点 coding 能力 有没有挑战,是怎么解决的

停止流水线是怎么做的

  • 对多线程了解的深度

  • Java线程池 内部工作原理

  • 设置核心线程数 最大线程数怎样设置

  • JVM 对象的生命周期

  • 堆 老年代 新生代 Eden s1 s2

  • GC算法

  • 线上CPU 100% 怎样排查

  • Java底层没有深入去了解

  • 令牌桶限流 原理

  • Kafka 很难保证消息必达,怎么保证消息必达?

  • 幂等性 开发过程中是用什么方式实现幂等性的?

  • 并发场景的幂等 该如何保证

分布式锁——还是拿插入数据的例子,如果是分布式系统,构建全局唯一索引比较困难,例如唯一性的字段没法确定,这时候可以引入分布式锁,通过第三方的系统(redis或zookeeper),在业务系统插入数据或者更新数据,获取分布式锁,然后做操作,之后释放锁,这样其实是把多线程并发的锁的思路,引入多多个系统,也就是分布式系统中得解决思路。要点:某个长流程处理过程要求不能并发执行,可以在流程执行之前根据某个标志(用户ID+后缀等)获取分布式锁,其他流程执行时获取锁就会失败,也就是同一时间该流程只能有一个能执行成功,执行完成后,释放分布式锁(分布式锁要第三方系统提供);

  • Kafka是怎么保证高可用的?

  • zk一致性是如何保证的

总监面试:

  • 浏览器输入URL之后数据流转过程

  • HTTPS的原理

  • MySQL 隔离级别 MVCC机制

MVCC底层原理
MySQL事务的实现原理

  • 场景题:设计一款打车派单软件,根据用户出发地经纬度与目的地经纬度,以及司机所在经纬度,让乘客等待时间最短。

    2. 乘客等待时间这个需求已经做好,但司机不满意,不想空跑,两个司机,一个堵车 1公里 6分钟,一个高速 10公里 5分钟,尽量选择时间较少且空跑距离较短的司机。

相关文章

  • guazi xiuche2021-06-25

    Kafka partition是什么概念 为什么kafka的传输效率非常高,原因是什么 零拷贝技术 Kafka如何...

网友评论

      本文标题:guazi xiuche2021-06-25

      本文链接:https://www.haomeiwen.com/subject/dkzayltx.html