赞
踩
本文档提供了一份详细的 Kafka 面试题指南,涵盖了 Kafka 的核心概念、架构、配置、操作和实际应用场景等方面的内容。希望通过这份指南能够帮助你在 Kafka 面试中取得成功。
Kafka 是一个分布式流处理平台,最初由 LinkedIn 开发,后捐赠给 Apache 软件基金会,并成为其顶级项目。Kafka 主要用于构建实时数据管道和流应用程序。它具有高吞吐量、低延迟、容错性强等特点,能够处理海量数据流的实时处理和分析。
Kafka 的工作原理基于发布-订阅模型。生产者将消息发送到指定的主题,主题又分为多个分区。消费者订阅主题,从分区中读取消息。每个分区都有多个副本,确保数据的可靠性。Zookeeper 用于管理集群的元数据和协调操作。
Kafka 的主要配置文件包括:
server.properties
:配置 Kafka broker 的属性。producer.properties
:配置 Kafka 生产者的属性。consumer.properties
:配置 Kafka 消费者的属性。zookeeper.properties
:配置 Zookeeper 的属性。生产者配置示例:
bootstrap.servers=localhost:9092
key.serializer=org.apache.kafka.common.serialization.StringSerializer
value.serializer=org.apache.kafka.common.serialization.StringSerializer
acks=all
retries=0
batch.size=16384
linger.ms=1
buffer.memory=33554432
消费者配置示例:
bootstrap.servers=localhost:9092
group.id=test-consumer-group
key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
enable.auto.commit=true
auto.commit.interval.ms=1000
session.timeout.ms=30000
创建主题:
bin/kafka-topics.sh --create --topic <topic-name> --partitions <number-of-partitions> --replication-factor <replication-factor> --bootstrap-server <broker-list>
删除主题:
bin/kafka-topics.sh --delete --topic <topic-name> --bootstrap-server <broker-list>
增加分区:
bin/kafka-topics.sh --alter --topic <topic-name> --partitions <new-number-of-partitions> --bootstrap-server <broker-list>
注意:减少分区是不被支持的,因为可能会导致数据丢失。
每个分区的消息都有一个 leader 副本和多个 follower 副本。生产者只向 leader 副本发送消息,follower 副本从 leader 副本同步数据。当 leader 副本不可用时,Kafka 会自动选举一个新的 leader 副本,确保数据的高可用性。
Kafka 有两种主要的分区分配策略:
batch.size
参数,减少网络开销。以上就是 Kafka 面试题的详细指南。通过深入理解和准备这些问题,希望你能够在 Kafka 面试中表现出色。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。