Java高频面试题- 每日三连问?【Day36】 — Kafka篇(四)

2022-04-12 14:24:03 浏览数 (1)

问题导读

一、producer 是否直接将数据发送到broker 的leader(主节点)?

二、Kafa consumer 是否可以消费指定分区消息吗?

三、Kafka 高效文件存储设计特点是什么?

01

producer 是否直接将数据发送到broker 的leader(主节点)?

正经回答:

producer 直接将数据发送到broker 的leader(主节点),不需要在多个节点进行分发,

为了帮助producer 做到这点,所有的Kafka 节点都可以及时的告知:哪些节点是活动的,

目标topic 目标分区的leader 在哪。

这样producer 就可以直接将消息发送到目的地了。

分享朋友圈,记录学习每一天~

02

Kafa consumer 是否可以消费指定分区消息吗?

正经回答:

Kafa consumer 消费消息时,向broker 发出"fetch"请求去消费特定分区的消息, consumer 指定消息在日志中的偏移量(offset),就可以消费从这个位置开始的消息, customer 拥有了offset 的控制权,可以向后回滚去重新消费之前的消息,这是很有意义的。

03

Kafka 高效文件存储设计特点是什么?

正经回答:

Kafka 把topic 中一个parition 大文件分成多个小文件段,通过多个小文件段,就容易定清除或删除已经消费完文件,减少磁盘占用。 通过索引信息可以快速定位message 和确定response 的最大大小。 通过index 元数据全部映射到memory,可以避免segment file 的IO 磁盘操作。 通过索引文件稀疏存储,可以大幅降低index 文件元数据占用空间大小。

- End -

0 人点赞