Java面试题

题目

说说你对 kafka 的了解。讲讲里面的 producter,customer,partition 等词的含义。

答案

broker:kafka 服务器,负责消息的存储和转发。

producer:消息的生产者

topic:消息名称。

partition:topic 的分区,一个 topic 可以包含多个 partition 。toptic 消息保存在 partition 上面。每个消息都会有一个 key 值,然后根据 key 生成的 hash 值和 partition 取模得到的值就对应的 partition。

segment:具体的存放数据的文件,里面包含偏移量和数据。一个 partition 包含多个 segment。

customer:消息具体消费者,其数量要小于等于 partition。如果 customer 的数量大于 partition 的数量,那么会有部分 customer 空闲。