1. 请简述 Kafka 的基本概念和特点。
Kafka 是一个分布式流处理平台,具有高吞吐量、可扩展性和持久性等特点。它由 LinkedIn
公司开发,用于构建实时的数据管道和应用程序。Kafka 支持发布和订阅消息,可以处理大
量的数据,并且可以在多个节点上分布式部署。
2. 请解释 Kafka 中的 Producer、Broker、Consumer 和 Topic 的概念。
- Producer:生产者,负责向 Kafka 发送消息的客户端。
- Broker:代理,Kafka 集群中的服务器,负责存储消息和处理客户端请求。
- Consumer:消费者,从 Kafka 中读取消息的客户端。
- Topic:主题,用于分类和存储消息的类别。
3. 请简述 Kafka 中的消息传递语义。
Kafka 中的消息传递语义包括:
- 至少一次(At least once):消息至少会被传递一次,可能会出现重复。
- 最多一次(At most once):消息最多会被传递一次,可能会丢失。
- 精确一次(Exactly once):消息精确地被传递一次,保证数据的一致性。
4. 请解释 Kafka 中的 Offset 的概念。
Offset 是 Kafka中用于标识消息在分区中的位置的元数据。每个分区都有一个独立的Offset,
用于记录消费者在该分区中读取的位置。消费者可以通过提交 Offset 来记录自己读取的位
置,以便在故障恢复后能够从正确的位置继续读取。
5. 请解释 Kafka 中的 Replication 的概念。
Replication 是 Kafka 中用于保证数据可靠性和高可用性的机制。Kafka 中的每个分区都可以
有一个或多个副本,副本分布在不同的 Broker 上。当某个 Broker 发生故障时,其他 Broker
上的副本可以继续提供服务,从而实现高可用性。
6. 请解释 Kafka 中的 Consumer Group 的概念。
Consumer Group 是一组消费者的集合,它们共同消费一个或多个主题的消息。每个
Consumer Group 都有一个唯一的 Group ID,用于标识不同的 Consumer Group。Kafka 保证
每个分区只能由同一个 Consumer Group 中的一个消费者来消费,从而实现消息的负载均
衡。
7. 请解释 Kafka 中的 ISR(In-Sync Replicas)的概念。
ISR 是 Kafka 中用于标识副本状态的集合。ISR 中的副本是同步的,它们与 Leader 副本保持
一致。只有 ISR 中的副本才有资格成为新的 Leader。当 ISR 中的副本落后太多或发生故障
时,它们会被踢出 ISR 集合。
8. 请解释 Kafka 中的 Leader Election 的概念。
Leader Election 是 Kafka 中用于在分区副本中选择 Leader 的机制。Kafka 会为每个分区选举
一个 Leader 副本,负责处理该分区的读写请求。当 Leader 副本发生故障时,Kafka 会重新
选举一个新的 Leader 副本来继续提供服务。
9. 请解释 Kafka 中的消息压缩的概念。
Kafka 支持对消息进行压缩,以减少网络传输和存储的开销。Producer 可以在发送消息时选
择不同的压缩算法(如 GZIP、Snappy 等),对消息进行压缩。Broker 在接收到压缩消息后,
会将其存储在磁盘上。Consumer 在读取消息时,可以选择是否对消息进行解压缩。
10. 请解释 Kafka 中的 Watermark 的概念。
Watermark 是 Kafka Streams 中用于处理时间窗口事件的机制。它是一个特殊的时间戳,用
于标识一个时间窗口的开始和结束。Kafka Streams 使用 Watermark 来触发窗口操作的执行,
并在处理完所有相关事件后关闭窗口。