Kafka面试题.pdf
Kafka面试题.pdf Kafka是一种分布式流处理平台,可以实时地处理大量数据流。下面是对Kafka的架构、Producer、Broker、Consumer、Message等组件的详细解释: Kafka架构Kafka的架构主要由Producer、Broker、Consumer三部分组成。Producer负责生产消息,Broker负责存储消息,Consumer负责消费消息。 Producer是消息的生产者,可以将消息发送到Topic中。Producer只需要指定Topic的名字和要连接到的Broker,Kafka就可以自动地把消息数据路由到合适的Broker。Producer可以选择是否要确认消息写入成功(ACK),ACK的值可以是0、1或all,分别表示不等待确认、等待Leader Partition的确认和等待Leader Partition和Follower Partition的确认。 Broker是Kafka集群中的一个节点,每个Broker都有一个唯一的ID标识。每个Broker中包含了不同Topic的不同Partition,Partition中包含了有序的消息。客户端只要连接上任意一个Broker,就可以连接上整个Kafka集群。 Consumer是消息的消费者,可以从Topic中读取消息进行消费。Consumer只需要指定Topic的名字和要连接到的Broker,Kafka就可以自动地把Consumer路由到合适的Broker。每个Partition中的消息都会被有序消费。 Consumer Group由多个Consumer组成,每个Consumer都会从不同的Partition中读取消息。如果Consumer的数量大于Partition的数量,那么多出来的Consumer就会空闲下来(浪费资源)。 Message一个Kafka的Message由一个固定长度的header和一个可变长度的消息体body组成。header部分由一个字节的magic和四个字节的CRC32构成,用于判断body消息体是否正常。 Kafka高吞吐原理Kafka实现高吞吐的原理是通过读写文件依赖OS文件系统的页缓存,而不是在JVM内部缓存数据,利用OS来缓存,内存利用率高。sendfile技术(零拷贝),避免了传统网络IO四步流程,支持End-to-End的压缩顺序IO以及常量时间get、put消息Partition可以很好地横向扩展和提供高并发处理。 Kafka数据保留策略Kafka有两种数据保存策略:按照过期时间保留和按照存储的消息大小保留。当达到保留策略的条件时,Kafka会执行数据清除工作,不论时间和大小哪个条件满足都会清空数据。 Kafka的特点是高吞吐、可扩展性强、可靠性高、灵活性强等。与ActiveMQ、RabbitMQ、RocketMQ等消息队列相比,Kafka的单机吞吐量万级,远高于其他消息队列。
下载地址
用户评论