美文网首页
Kafka灵魂三十问

Kafka灵魂三十问

作者: 技术灭霸 | 来源:发表于2020-07-11 17:08 被阅读0次

核心篇

1、 Kafka只是消息引擎系统吗?
2、Kafka 未来的演进路线是怎么样的?
3、为什么 Kafka 不像 MySQL 那样允许追随者副本对外提供读服务?
4、Kafka线上集群部署方案怎么做?
5、Kafka 集群到底需要多大的存储空间?
6、假设那些保存数据比较多的副本都挂了怎么办?
7、你曾踩过Kafka哪些关于参数配置的“坑”?(讲一下你比较熟悉和重要的Kafka参数配置)
8、有哪些好的法则来评估 Kafka 对内存的使用呢?
9、Kafka为什么要分区?
10、你是使用哪种消息分区策略?实际在使用过程中遇到过哪些“坑”?
11、Kafka 是如何压缩消息的呢?何时压缩?何时解压缩?支持哪几个压缩算法?
12、Broker 要对压缩消息集合执行解压缩操作,然后逐条对消息进行校验,如何规避了broker端为执行校验而做的解压缩操作? 如何去做优化?
13、Kafka 拦截器作用是什么?
14、Java生产者和消费者是如何管理TCP连接的?何时创建 TCP 连接?何时关闭 TCP 连接?
15、幂等生产者和事务生产者是一回事吗?
16、消费者组到底是什么?有什么缺点?
17、了解位移主题吗?和普通主题什么区别?储存了什么信息?什么时候创建?分区多少?副本多少?
18、消费者组重平衡能避免吗?
19、Rebalance 的触发条件是那几个?
20、Rebalance 发生的频率、原因,你是怎么定位问题并解决的?
21、假设 Consumer 在处理完消息和提交位移前出现故障,下次重启后依然会出现消息重复消费的情况。如何解决该问题?
22、多线程开发消费者方案的原理?
23、如何监控消费者组消费进度?
24、Kafka 的副本机制实现的原理,有什么好处?
25、如果允许 Follower 副本对外提供读服务,你觉得应该如何避免或缓解因 Follower 副本与 Leader 副本不同步而导致的数据不一致的情形?
26、Kafka Broker 请求处理流程?
27、消费者组重平衡全流程?重平衡过程是如何通知到其他消费者实例的?消费者组状态机?
28、我们是否能允许部分消费者在重平衡过程中继续消费,以提升消费者端的可用性以及吞吐量?
29、Kafka控制器的作用是什么?控制器是如何被选出来的?控制器保存了什么数据?
30、高水位是什么?更新机制是什么?有什么缺点? LEO是什么?Leader Epoch是什么?
31、Kafka如何调优?从哪几个方面去进行调优?

源码篇

日志

1、日志是如何加载日志段的?
2、一个日志段包括哪几个文件?
3、Broker端提供定期删除日志的功能是如何实现?
4、如何写入消息到日志段?写操作过程更新索引的时机是如何设定的?
5、如何读取日志段,获取消息?
6、如何恢复日志段,重建索引?
7、日志截断是什么?有什么影响?
8、Kafka什么时候需要更新Log Start Offset?
9、Log对象的常见操作有哪些?

索引

1、位移索引和时间索引有哪些异同特点?
2、为什么使用相对位移?为什么OffsetIndex、TimeIndex分别占8、12个字节?
3、Kafka索引底层的实现原理是什么?
4、如何计算索引对象当前有多少个索引项?
5、Kafka索引对二分查找算法做了什么优化?
6、冷区和热区分割线为什么设定在8192?
7、索引中的索引项是如何定义的?
8、如何向索引写入新的索引项?

SocketServer

1、Kafka 如何应用 NIO 来实现网络通信的?
2、Acceptor 类和 Processor 类的作用是什么?
3、为什么 Request 队列被设计成线程共享的,而 Response 队 列则是每个 Processor 线程专属的?
4、Kafka如何对不同类型的请求进行优先级划分的?
5、Kafka 请求处理全流程?(Broker(Clients)->Request->Acceptor->Processor->I/O 线程->KafkaRequestHandler->Processor->Response-Broker(Clients))
6、请求处理流程的哪些部分应用了经典 的“生产者 - 消费者”模式?

Controller

1、Controller的作用是什么?保存有哪些东西?有几种状态?
2、Controller选举是怎么实现的?Controller选举的触发场景有几种?
3、Controller 如何借助 ZooKeeper 监听器实现监听 Controller 节点,以及 Controller 的选举触发场景和完整流程
4、Controller 如何管理集群 Broker 成员和主题?

Topic

1、Topic是怎么被删除的?

Replica & Consume & Broker

1、Broker是怎么延时处理请求的?
2、Follower拉取Leader消息是如 何实现的?
3、为什么 AbstractFetcherThread 线程总要不断尝试去做截断呢?读取消息之前为什么要做截断?
4、AbstractFetcherThread 线程的 doWork 方拉取线程要执行的哪几个步骤?
5、副本管理器是如何读写副本的?
6、Broker是怎么异步更新元数据缓存的?
7、消费者组都有哪些元数据?

相关文章

  • Kafka灵魂三十问

    核心篇 1、 Kafka只是消息引擎系统吗?2、Kafka 未来的演进路线是怎么样的?3、为什么 Kafka 不像...

  • Kafka灵魂30问 - 源码篇

    一、日志 1、日志是如何加载日志段的? 2、一个日志段包括哪几个文件? 3、Broker端提供定期删除日志的功能是...

  • Kafka灵魂30问 - 核心篇

    1、 Kafka只是消息引擎系统吗? 除了作为消息引擎,Kafka 能够被用作流处理平台和分布式存储系统。 2、K...

  • 面试官:请谈谈写入消息中间件的数据,如何保证不丢失?

    目录 1、背景引入 2、Kafka分布式存储架构 3、Kafka高可用架构 4、画图复现Kafka的写入数据丢失问...

  • Kafka面试三连:kafka架构设计?kafka是pull还是

    kafka面试第一问:kafka架构设计? 语义概念 1 broker Kafka 集群包含一个或多个服务器,服务...

  • JAVA-每日一面 2022-01-07

    问:1.kafka数据分区和消费者的关系,2.kafka的数据offset读取流程,3.kafka内部如何保证顺序...

  • 《经营三十问》

    你只要变更你的组织,让各部门的财务独立就行了。其实,你根本无须为老员工不肯配合而叹气也无须辞退他们。首先你必...

  • 为什么说Kafka使用磁盘比内存快

    学习过[跟我学Kafka源码之LogManager分析]的同学一定会问为什么Kafka大量使用了磁盘作为传统意义的...

  • Kafka为什么这么快?

    前言:讲解透彻,从存储到系统,硬件,网络细节综合考虑 问:讲讲kafka为什么这么快?答:kafka的快是从底层设...

  • 遗憾

    从来没有认真思考过“遗憾”二字,昨天看一个视频属于灵魂大拷问吧。 问:1、三十岁之前的遗憾是什么? 我的三十岁之前...

网友评论

      本文标题:Kafka灵魂三十问

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