Kafka面试题目精讲

1. 请说明什么是Apache Kafka?

Apache Kafka是由Apache开发的一种发布订阅消息系统,它是一个分布式的、分区的和重复 的日志服务.

2. 请说明什么是传统的消息传递方法?


传统的消息传递方法包括两种:
	排队:在队列中,一组用户可以从服务器中读取消息,每条消息都发送给其中一个人。
	发布-订阅:在这个模型中,消息被广播给所有的用户

3. 请说明Kafka相对于传统的消息传递方法有什么优势?

1) 高性能:单一的Kafka代理可以处理成千上万的客户端,每秒处理数兆字节的读写操作,Kafka
性能远超过传统的ActiveMQ、RabbitMQ等,而且Kafka支持Batch操作;(毫秒级别延迟数十万级吞吐量,)
2) 可扩展:Kafka集群可以透明的扩展,增加新的服务器进集群;
3) 容错性: Kafka每个Partition数据会复制到几台服务器,当某个Broker失效时,Zookeeper将通
知生产者和消费者从而使用其他的Broker;(副本,而且每一个副本都在不同的主机上)

4. 在Kafka中broker的意义是什么?

在Kafka集群中,broker指Kafka服务器。

拓展:
partition分区: 为了实现扩展性,一个非常大的topic可以分布到多个broker(即
服务器)上,一个topic可以分为多个partition,每个partition是一个有
序的队列。partition中的每条消息都会被分配一个有序的id(offset)。
kafka只保证按一个partition中的顺序将消息发给consumer,不保证一
个topic的整体(多个partition间)的顺序


offset偏移量: kafka的存储文件都是按照offset.kafka来命名,用offset做名字
的好处是方便查找。例如你想找位于2049的位置,只要找到2048.kafka
的文件即可。当然the first offset就是00000000000.kafka

5. Kafka服务器能接收到的最大信息是多少?

Kafka服务器可以接收到的消息的最大大小是1000000字节。

6. Kafka中的ZooKeeper是什么?Kafka是否可以脱离 ZooKeeper独立运行?

Zookeeper是一个开放源码的、高性能的协调服务,它用于Kafka的分布式应用。

不可以,不可能越过Zookeeper直接联系Kafka broker,一旦Zookeeper停止工作,它就不能
服务客户端请求。(PS:Kafka正在逐步想办法将ZooKeeper剥离,维护两套集群成本较高,社区提出KIP-500就是要替换掉ZooKeeper的依赖。“Kafka on Kafka”——Kafka自己来管理自己的元数据)
原因: 
 1) ZK用来管理和协调broker,并且存储了Kafka的元数据(例如:有多少topic、partition、consumer)
 2) ZK服务主要用于通知生产者和消费者Kafka集群中有新的broker加入、或者Kafka集群中出现故障的broker。

7. 解释Kafka的用户如何消费信息?

	在Kafka中传递消息是通过使用sendfile API完成的。它支持将字节Socket转移到磁盘,通过内
核空间保存副本,并在内核用户之间调用内核。

8.解释如何提高远程用户的吞吐量?

如果用户位于与broker不同的数据中心,则可能需要调优Socket缓冲区大小,以对长网络延迟 进行摊销。

9. 解释一下,在数据制作过程中,你如何能从Kafka得到准确的 信息?

	在数据中,为了精确地获得Kafka的消息,你必须遵循两件事: 在数据消耗期间避免重复,在数
据生产过程中避免重复。

	这里有两种方法,可以在数据生成时准确地获得一个语义:
	1) 每个分区使用一个单独的写入器,每当你发现一个网络错误,检查该分区中的最后一条消息,
以查看您的最后一次写入是否成功
 	2)在消息中包含一个主键(UUID或其他),并在用户中进行反复制

10. 解释如何减少ISR中的扰动?broker什么时候离开ISR?

	ISR是一组与leaders完全同步的消息副本,也就是说ISR中包含了所有提交的消息。ISR应该总北京市昌
是包含所有的副本,直到出现真正的故障。如果一个副本从leader中脱离出来,将会从ISR中删除。

11. Kafka为什么需要复制?

Kafka的信息复制确保了任何已发布的消息不会丢失,并且可以在机器错误、程序错误或更常 见些的软件升级中使用。

12. 如果副本在ISR中停留了很长时间表明什么?

如果一个副本在ISR中保留了很长一段时间,那么它就表明,跟踪器无法像在leader收集数据那 样快速地获取数据。

猜你喜欢

转载自blog.csdn.net/m0_49834705/article/details/112424259