2020年,kafka面试题总结。

总结的都是最常见问到的问题:

问题1:什么是Apache Kafka?

答:Apache Kafka是一个发布 - 订阅开源消息代理应用程序。这个消息传递应用程序是用“scala”编码的。基本上,这个项目是由Apache软件启动的。Kafka的设计模式主要基于事务日志设计。

问题2:Kafka中有哪几个组件?

答:Kafka最重要的元素是:

主题:Kafka主题是一堆或一组消息。

生产者:在Kafka,生产者发布通信以及向Kafka主题发布消息。

消费者:Kafka消费者订阅了一个主题,并且还从主题中读取和处理消息。

经纪人:在管理主题中的消息存储时,我们使用Kafka Brokers。

问题3:解释偏移的作用。

答:给分区中的消息提供了一个顺序ID号,我们称之为偏移量。因此,为了唯一地识别分区中的每条消息,我们使用这些偏移量。

问题5:ZooKeeper在Kafka中的作用是什么?

答:Apache Kafka是一个使用Zookeeper构建的分布式系统。虽然,Zookeeper的主要作用是在集群中的不同节点之间建立协调。但是,如果任何节点失败,我们还使用Zookeeper从先前提交的偏移量中恢复,因为它做周期性提交偏移量工作。

问题6:没有ZooKeeper可以使用Kafka吗?

答:绕过Zookeeper并直接连接到Kafka服务器是不可能的,所以答案是否定的。如果以某种方式,使ZooKeeper关闭,则无法为任何客户端请求提供服务。

问题8:为什么Kafka技术很重要?

答:Kafka有一些优点,因此使用起来很重要:

高吞吐量:我们在Kafka中不需要任何大型硬件,因为它能够处理高速和大容量数据。此外,它还可以支持每秒数千条消息的消息吞吐量。

低延迟:Kafka可以轻松处理这些消息,具有毫秒级的极低延迟,这是大多数新用例所要求的。

容错:Kafka能够抵抗集群中的节点/机器故障。

耐久性:由于Kafka支持消息复制,因此消息永远不会丢失。这是耐久性背后的原因之一。

可扩展性:卡夫卡可以扩展,而不需要通过添加额外的节点而在运行中造成任何停机。

问题9:Kafka的主要API有哪些?

答:Apache Kafka有4个主要API:

生产者API

消费者API

流 API

连接器API

问题 13.kafka的message格式是什么样的

一个Kafka的Message由一个固定长度的header和一个变长的消息体body组成

header部分由一个字节的magic(文件格式)和四个字节的CRC32(用于判断body消息体是否正常)构成。

当magic的值为1的时候,会在magic和crc32之间多一个字节的数据:attributes(保存一些相关属性,

比如是否压缩、压缩格式等等);如果magic的值为0,那么不存在attributes属性

body是由N个字节构成的一个消息体,包含了具体的key/value消息。

发布了117 篇原创文章 · 获赞 38 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/u010919083/article/details/104072696