前 11 名卡夫卡面试问题和答案 [对于应届生]
已发表: 2021-02-22自 2011 年发布以来的九年中,Kafka 已将自己确立为技术领域最有价值的数据处理工具之一。 Airbnb、Goldman Sachs、Netflix、LinkedIn、Microsoft、Target 和 The New York Times 只是建立在 Kafka 上的少数几家公司。
但卡夫卡是什么? 简单的答案是——它可以帮助优步司机匹配潜在乘客,或者帮助 LinkedIn 执行数百万实时分析或可预测的服务。 简而言之,Apache 是一个高度可扩展、开源、容错的分布式事件流平台,由 LinkedIn 在 2011 年创建。它使用您可以订阅的提交日志,然后可以将其发布到多个流应用程序上。
它的低延迟、数据集成和高吞吐量使其越来越受欢迎,以至于 Kafka 的专业知识被认为是候选人简历的重要补充,并且具有认证资格的专业人士如今需求量很大。 这也导致以卡夫卡为中心的工作机会增加。
在本文中,我们整理了一份 Kafka 面试问题和答案列表,这些问题和答案最有可能在您的下一次面试中出现。 在参加面试之前,您可能需要查看这些以提高您的知识。 所以,我们开始吧!
前 11 名卡夫卡面试问题和答案
1. 什么是 Apache Kafka?
Kafka 是由 Apache Software Foundation 创建的免费、开源数据处理工具。 它是用 Scala 和 Java 编写的,是一种分布式实时数据存储,旨在处理流数据。 它提供了在体面的硬件上工作的高吞吐量。
当数千个数据源同时连续发送数据记录时,就会产生流式数据。 为了处理这些流数据,流平台需要在处理不间断的数据流入的同时,按顺序和增量地处理这些数据。
Kafka 接收这些传入的数据涌入,并构建流数据管道,处理数据并将数据从一个系统移动到另一个系统。
卡夫卡的功能:
- 它负责发布数据记录流并订阅它们
- 它按照数据流的生成顺序处理数据流的有效存储
- 它负责实时天数处理
卡夫卡的用途:
- 数据整合
- 实时分析
- 实时存储
- 消息代理解决方案
- 欺诈识别
- 股票交易
2. 我们为什么要使用 Kafka?
Apache Kafka 充当中枢神经系统,使流数据可用于所有流应用程序(使用流数据的应用程序称为流应用程序)。 它通过构建实时数据管道来做到这一点,这些管道负责在需要使用它的不同系统之间处理和传输数据。
Kafka 通过处理和调解通信充当两个应用程序之间的消息代理系统。
它具有多种用途,包括实时数据的消息传递、处理、存储、传输、集成和分析。
3. Apache Kafka 的主要特点是什么?
Kafka 的显着特点包括:
1. 持久性——Kafka 允许无缝支持跨服务器的数据分区的分布和复制,然后将这些分区写入磁盘。 这减少了服务器发生故障的机会,使数据具有持久性和容错性,并提高了其持久性。
2. 可扩展性——Kafka 可以在许多服务器上被干扰和替换,这使得它具有高度的可扩展性,超出了单个服务器的容量。 Kafka 的数据分区因此没有停机时间。
3. 零数据丢失——通过适当的支持和正确的配置,数据丢失可以减少到零。
4. 速度——由于数据流解耦,延迟极低,Apache Kafka 非常快。 它与 Apache Spark、Apache Apex、Apache Flink、Apache Storm 等一起使用,所有这些都是实时外部流应用程序。
5. 高吞吐量和复制——Kafka 有能力支持数百万条消息,这些消息在多个服务器之间复制,以提供对多个订阅者的访问。
4. 卡夫卡是如何工作的?
Kafka 通过组合两种消息传递模型来工作,从而将它们排队、发布和订阅它们,以便许多消费者实例可以访问它。
排队通过允许处理数据并将其分发到多个消费者服务器来提高可伸缩性。 但是,这些队列不适合多订阅者。 这就是发布和订阅方法介入的地方。但是,由于每个消息实例随后都将发送给每个订阅者,因此这种方法不能用于跨多个进程分发数据。
因此,Kafka 采用数据分区来结合这两种方法。 它使用分区日志模型,其中每个日志(一系列数据记录)被分成更小的段(分区),以满足多个订阅者的需求。
这使得不同的订阅者可以访问相同的主题,由于每个订阅者都提供了一个分区,因此可以扩展。
Kafka 的分区日志模型也是可重放的,允许不同的应用程序独立运行,同时仍然从数据流中读取。
5. Kafka 的四大组件是什么?
Kafka 有四个组件。 他们是:
- 话题
– 制片人
– 经纪人
- 消费者
主题是相同类型的消息流。
生产者能够向给定主题发布消息。
代理是存储生产者发布的消息流的服务器。
消费者是订阅主题并访问代理存储的数据的订阅者。
6、Kafka有多少API?
Kafka 有五个主要的 API,它们是:
– Producer API:负责向给定主题发布消息或记录流。
– Consumer API:称为主题的订阅者,用于拉取生产者发布的消息。
– Streams API:允许应用程序处理流; 这涉及处理任何给定主题的输入流并将其转换为输出流。 然后可以将该输出流发送到不同的输出主题。
– 连接器 API:充当自动化系统,可以将不同的应用程序添加到现有的 Kafka 主题中。
– 管理 API: Kafka 主题由管理 API 管理,代理和其他几个 Kafka 对象也是如此。
7. 抵消的重要性是什么?
分配给存储在分区中的消息的唯一标识号称为偏移量。 偏移量用作分区中包含的每条消息的标识号。
8. 定义消费者组。
当一堆订阅的主题被多个消费者共同消费时,称为消费者组。
9. 解释 Zookeeper 的重要性。 Kafka 可以在没有 Zookeeper 的情况下使用吗?
在 Zookeeper 的帮助下存储特定主题的偏移量(唯一 ID 号)以及特定消费者组使用的分区。 它充当用户之间的协调通道。 没有 Zookeeper 的 Kafka 是不可能使用的。 如果绕过 Zookeeper,它会使 Kafka 服务器无法访问,并且无法处理客户端请求。
10. Kafka中的Leader和Follower是什么意思?
Kafka 中的每个分区都分配了一个服务器,作为领导者。 每个读/写请求都由 Leader 处理。 追随者的作用是追随领导者的脚步。 如果系统导致Leader失效,其中一个Follower会停止复制,代之以Leader,负责负载均衡。
11. 如何启动 Kafka 服务器?
在启动 Kafka 服务器之前,请启动 Zookeeper。 请按照以下步骤操作:
动物园管理员服务器:
> bin/zookeeper-server-start.sh 配置/zookeeper.properties
卡夫卡服务器:
bin/kafka-server-start.sh 配置/server.properties
结论
如果您有兴趣了解有关大数据的更多信息,请查看我们的 PG 大数据软件开发专业文凭课程,该课程专为在职专业人士设计,提供 7 多个案例研究和项目,涵盖 14 种编程语言和工具,实用的动手操作研讨会,超过 400 小时的严格学习和顶级公司的就业帮助。
在 upGrad 查看我们的其他软件工程课程。