Kafka面试题
Kafka面试题
微软MVP Eleven
这个作者很懒,什么都没留下…
展开
-
2021-05-21 Kafka面试题 Kafka 分区数越多性能就越好吗?为什么?
Kafka 分区数越多性能就越好吗?为什么?我的理解:每个分区数都对应一个 log 文件,log 文件是顺序写的,但如果有非常多分区同时刷盘,就会变相成乱序写了,我猜想这也是为什么 RocketMQ 一个 broker 只会拥有一个 CommitLog 的原因之一吧;客户端会为每个分区调用一条线程处理,多线程并发地处理分区消息,分区越多,意味着处理的线程数也就越多,到一定程度后,会造成线程切换开销大;其中一个 broker 挂掉后,如果此时分区特别多,Kafka 分区 leader 重新选举的时间原创 2021-05-21 00:07:05 · 71401 阅读 · 1 评论 -
2021-05-21 Kafka面试题 消费者 consumer 是线程安全的吗?多线程实例、单线程实例、单 consumer + 多 worker 线程的优缺点?
消费者 consumer 是线程安全的吗?多线程实例、单线程实例、单 consumer + 多 worker 线程的优缺点?消息拉取时,什么情况下会造成消息重复消费?谈谈你对位移提交的理解?理解消息交付语义:最多一次(atmostonce):消息可能丢失也可能被处理,但最多只会被处理一次;至少一次(atleastonce):消息不会丢失,但可能被处理多次;精确一次(exactlyonce):消息被处理且只会被处理一次。假若消费者在消费前提交位移,那么就是“最多一次”,若在消费后提交位移,那么就原创 2021-05-21 00:06:40 · 71709 阅读 · 1 评论 -
2021-05-21 Kafka面试题 描述下kafka consumer 再平衡步骤?
描述下kafka consumer 再平衡步骤?①关闭数据拉取线程,情空队列和消息流,提交偏移量;②释放分区所有权,删除zk中分区和消费者的所有者关系;③将所有分区重新分配给每个消费者,每个消费者都会分到不同分区;④将分区对应的消费者所有关系写入ZK,记录分区的所有权信息;⑤重启消费者拉取线程管理器,管理每个分区的拉取线程。...原创 2021-05-21 00:05:23 · 71517 阅读 · 0 评论 -
2021-05-21 Kafka面试题 kafka consumer 什么情况会触发再平衡reblance?
kafka consumer 什么情况会触发再平衡reblance?①一旦消费者加入或退出消费组,导致消费组成员列表发生变化,消费组中的所有消费者都要执行再平衡。②订阅主题分区发生变化,所有消费者也都要再平衡。...原创 2021-05-21 00:04:52 · 71412 阅读 · 0 评论 -
2021-05-21 Kafka面试题 kafaka生产数据时数据的分组策略,生产者决定数据产生到集群的哪个partition中
kafaka生产数据时数据的分组策略,生产者决定数据产生到集群的哪个partition中每一条消息都是以(key,value)格式 Key是由生产者发送数据传入 所以生产者(key)决定了数据产生到集群的哪个partition...原创 2021-05-21 00:04:18 · 71206 阅读 · 0 评论 -
2021-05-21 Kafka面试题 kafka消息数据是否有序?
kafka消息数据是否有序?消费者组里某具体分区是有序的,所以要保证有序只能建一个分区,但是实际这样会存在性能问题,具体业务具体分析后确认。原创 2021-05-21 00:03:44 · 71251 阅读 · 0 评论 -
2021-05-21 Kafka面试题 消费者负载均衡策略
消费者负载均衡策略结合consumer的加入和退出进行再平衡策略。原创 2021-05-21 00:03:08 · 71208 阅读 · 0 评论 -
2021-05-21 Kafka面试题 Kafka的消费者如何消费数据
Kafka的消费者如何消费数据消费者每次消费数据的时候,消费者都会记录消费的物理偏移量(offset)的位置 等到下次消费时,他会接着上次位置继续消费。同时也可以按照指定的offset进行重新消费。...原创 2021-05-21 00:02:32 · 70568 阅读 · 0 评论 -
2021-05-21 Kafka面试题 kafka的ack机制
kafka的ack机制request.required.acks有三个值 0 1 -10:生产者不会等待broker的ack,这个延迟最低但是存储的保证最弱当server挂掉的时候就会丢数据1:服务端会等待ack值 leader副本确认接收到消息后发送ack但是如果leader挂掉后他不确保是否复制完成新leader也会导致数据丢失-1:同样在1的基础上 服务端会等所有的follower的副本受到数据后才会受到leader发出的ack,这样数据不会丢失...原创 2021-05-21 00:01:51 · 70920 阅读 · 0 评论 -
2021-05-21 Kafka面试题 partition的数据如何保存到硬盘
partition的数据如何保存到硬盘topic中的多个partition以文件夹的形式保存到broker,每个分区序号从0递增,且消息有序 Partition文件下有多个segment(xxx.index,xxx.log) segment 文件里的大小和配置文件大小一致可以根据要求修改 默认为1g如果大小大于1g时,会滚动一个新的segment并且以上一个segment最后一条消息的偏移量命名...原创 2021-05-21 00:01:16 · 71812 阅读 · 0 评论 -
2021-05-21 Kafka面试题 Kafka新建的分区会在哪个目录下创建
Kafka新建的分区会在哪个目录下创建在启动Kafka 集群之前,我们需要配置好 log.dirs 参数,其值是 Kafka数据的存放目录,这个参数可以配置多个目录,目录之间使用逗号分隔,通常这些目录是分布在不同的磁盘上用于提高读写性能。 当然我们也可以配置log.dir 参数,含义一样。只需要设置其中一个即可。 如果 log.dirs 参数只配置了一个目录,那么分配到各个 Broker上的分区肯定只能在这个目录下创建文件夹用于存放数据。 但是如果 log.dirs 参数配置了多个目录,那么 Ka原创 2021-05-21 00:00:43 · 70602 阅读 · 0 评论 -
2021-05-20 Kafka面试题 Kafka创建Topic时如何将分区放置到不同的Broker中
Kafka创建Topic时如何将分区放置到不同的Broker中副本因子不能大于 Broker 的个数;第一个分区(编号为0)的第一个副本放置位置是随机从 brokerList 选择的;其他分区的第一个副本放置位置相对于第0个分区依次往后移。也就是如果我们有5个Broker,5个分区,假设第一个分区放在第四个 Broker 上,那么第二个分区将会放在第五个 Broker 上;第三个分区将会放在第一个Broker 上;第四个分区将会放在第二个 Broker 上,依次类推;剩余的副本相对于第一原创 2021-05-20 09:12:50 · 71276 阅读 · 1 评论 -
2021-05-20 Kafka面试题 Kafka 与传统消息系统之间有三个关键区别
Kafka 与传统消息系统之间有三个关键区别(1).Kafka 持久化日志,这些日志可以被重复读取和无限期保留(2).Kafka 是一个分布式系统:它以集群的方式运行,可以灵活伸缩,在内部通过复制数据提升容错能力和高可用性(3).Kafka 支持实时的流式处理...原创 2021-05-20 09:12:12 · 71294 阅读 · 1 评论 -
2021-05-20 Kafka面试题 Kafka高效文件存储设计特点:
Kafka高效文件存储设计特点:(1).Kafka把topic中一个parition大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,减少磁盘占用。(2).通过索引信息可以快速定位message和确定response的最大大小。(3).通过index元数据全部映射到memory,可以避免segment file的IO磁盘操作。(4).通过索引文件稀疏存储,可以大幅降低index文件元数据占用空间大小。...原创 2021-05-20 09:11:40 · 71008 阅读 · 1 评论 -
2021-05-20 Kafka面试题 Kafka存储在硬盘上的消息格式是什么?
Kafka存储在硬盘上的消息格式是什么?消息由一个固定长度的头部和可变长度的字节数组组成。头部包含了一个版本号和CRC32校验码。消息长度: 4 bytes (value: 1+4+n)版本号: 1 byteCRC校验码: 4 bytes具体的消息: n bytes...原创 2021-05-20 09:11:07 · 71285 阅读 · 1 评论 -
2021-05-20 Kafka面试题 Kafka消息是采用Pull模式,还是Push模式?
Kafka消息是采用Pull模式,还是Push模式?Kafka最初考虑的问题是,customer应该从brokes拉取消息还是brokers将消息推送到consumer,也就是pull还push。在这方面,Kafka遵循了一种大部分消息系统共同的传统的设计:producer将消息推送到broker,consumer从broker拉取消息一些消息系统比如Scribe和ApacheFlume采用了push模式,将消息推送到下游的consumer。这样做有好处也有坏处:由broker决定消息推送的速率,对于不原创 2021-05-20 09:10:30 · 71511 阅读 · 1 评论 -
2021-05-20 Kafka面试题 Kafa consumer是否可以消费指定分区消息?
Kafa consumer是否可以消费指定分区消息?Kafaconsumer消费消息时,向broker发出"fetch"请求去消费特定分区的消息,consumer指定消息在日志中的偏移量(offset),就可以消费从这个位置开始的消息,customer拥有了offset的控制权,可以向后回滚去重新消费之前的消息,这是很有意义的...原创 2021-05-20 09:09:53 · 71795 阅读 · 1 评论 -
2021-05-20 Kafka面试题 producer是否直接将数据发送到broker的leader(主节点)?
producer是否直接将数据发送到broker的leader(主节点)?producer直接将数据发送到broker的leader(主节点),不需要在多个节点进行分发,为了帮助producer做到这点,所有的Kafka节点都可以及时的告知:哪些节点是活动的,目标topic目标分区的leader在哪。这样producer就可以直接将消息发送到目的地了。...原创 2021-05-20 09:09:21 · 71740 阅读 · 1 评论 -
2021-05-20 Kafka面试题 Kafka判断一个节点是否还活着有那两个条件?
Kafka判断一个节点是否还活着有那两个条件?(1)节点必须可以维护和ZooKeeper的连接,Zookeeper通过心跳机制检查每个节点的连接(2)如果节点是个follower,他必须能及时的同步leader的写操作,延时不能太久...原创 2021-05-20 09:08:48 · 71783 阅读 · 1 评论 -
2021-05-20 Kafka面试题 数据传输的事物定义有哪三种?
数据传输的事物定义有哪三种?(1)最多一次:消息不会被重复发送,最多被传输一次,但也有可能一次不传输(2)最少一次: 消息不会被漏发送,最少被传输一次,但也有可能被重复传输.(3)精确的一次(Exactly once): 不会漏传输也不会重复传输,每个消息都传输被一次而且仅仅被传输一次,这是大家所期望的...原创 2021-05-20 09:08:12 · 71584 阅读 · 2 评论 -
2021-05-20 Kafka面试题 Kafka的设计时什么样的呢?
Kafka的设计时什么样的呢?Kafka将消息以topic为单位进行归纳将向Kafka topic发布消息的程序成为producers. 将预订topics并消费消息的程序成为consumer.Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker.producers通过网络将消息发送到Kafka集群,集群向消费者提供消息...原创 2021-05-20 09:07:31 · 71309 阅读 · 1 评论 -
2021-05-20 Kafka面试题 有可能在生产后发生消息偏移吗?
有可能在生产后发生消息偏移吗?在大多数队列系统中,作为生产者的类无法做到这一点,它的作用是触发并忘记消息。broker将完成剩下的工作,比如使用id进行适当的元数据处理、偏移量等。作为消息的用户,你可以从Kafkabroker中获得补偿。如果你注视SimpleConsumer类,你会注意到它会获取包括偏移量作为列表的MultiFetchResponse对象。此外,当你对Kafka消息进行迭代时,你会拥有包括偏移量和消息发送的MessageAndOffset对象。...原创 2021-05-20 09:06:58 · 71452 阅读 · 1 评论 -
2021-05-20 Kafka面试题 请说明如果首选的副本不在ISR中会发生什么?
请说明如果首选的副本不在ISR中会发生什么?如果首选的副本不在ISR中,控制器将无法将leadership转移到首选的副本。原创 2021-05-20 09:06:22 · 71592 阅读 · 1 评论 -
2021-05-20 Kafka面试题 如果副本在ISR中停留了很长时间表明什么?
如果副本在ISR中停留了很长时间表明什么?如果一个副本在ISR中保留了很长一段时间,那么它就表明,跟踪器无法像在leader收集数据那样快速地获取数据。原创 2021-05-20 09:05:41 · 71213 阅读 · 1 评论 -
2021-05-20 Kafka面试题 Kafka为什么需要复制?
Kafka为什么需要复制?Kafka的信息复制确保了任何已发布的消息不会丢失,并且可以在机器错误、程序错误或更常见些的软件升级中使用。原创 2021-05-20 09:05:00 · 71166 阅读 · 1 评论 -
2021-05-20 Kafka面试题 解释如何减少ISR中的扰动?broker什么时候离开ISR?
解释如何减少ISR中的扰动?broker什么时候离开ISR?ISR是一组与leaders完全同步的消息副本,也就是说ISR中包含了所有提交的消息。ISR应该总是包含所有的副本,直到出现真正的故障。如果一个副本从leader中脱离出来,将会从ISR中删除。...原创 2021-05-20 09:04:28 · 71356 阅读 · 1 评论 -
2021-05-20 Kafka面试题 解释一下,在数据制作过程中,你如何能从Kafka得到准确的信息?
解释一下,在数据制作过程中,你如何能从Kafka得到准确的信息?在数据中,为了精确地获得Kafka的消息,你必须遵循两件事: 在数据消耗期间避免重复,在数据生产过程中避免重复。这里有两种方法,可以在数据生成时准确地获得一个语义:每个分区使用一个单独的写入器,每当你发现一个网络错误,检查该分区中的最后一条消息,以查看您的最后一次写入是否成功在消息中包含一个主键(UUID或其他),并在用户中进行反复制...原创 2021-05-20 09:03:55 · 71025 阅读 · 1 评论 -
2021-05-20 Kafka面试题 解释如何提高远程用户的吞吐量?
解释如何提高远程用户的吞吐量?如果用户位于与broker不同的数据中心,则可能需要调优套接口缓冲区大小,以对长网络延迟进行摊销。原创 2021-05-20 09:03:10 · 71078 阅读 · 1 评论 -
2021-05-20 Kafka面试题 解释Kafka的用户如何消费信息?
解释Kafka的用户如何消费信息?在Kafka中传递消息是通过使用sendfile API完成的。它支持将字节从套接口转移到磁盘,通过内核空间保存副本,并在内核用户之间调用内核。原创 2021-05-20 09:02:34 · 71307 阅读 · 0 评论 -
2021-05-20 Kafka面试题 解释Kafka的Zookeeper是什么?我们可以在没有Zookeeper的情况下使用Kafka吗?
解释Kafka的Zookeeper是什么?我们可以在没有Zookeeper的情况下使用Kafka吗?Zookeeper是一个开放源码的、高性能的协调服务,它用于Kafka的分布式应用。不,不可能越过Zookeeper,直接联系Kafka broker。一旦Zookeeper停止工作,它就不能服务客户端请求。Zookeeper主要用于在集群中不同节点之间进行通信在Kafka中,它被用于提交偏移量,因此如果节点在任何情况下都失败了,它都可以从之前提交的偏移量中获取除此之外,它还执行其他活动,如: le原创 2021-05-20 09:01:59 · 71645 阅读 · 0 评论 -
2021-05-20 Kafka面试题 请说明Kafka相对传统技术有什么优势?
请说明Kafka相对传统技术有什么优势?①快速:单一的Kafka代理可以处理成千上万的客户端,每秒处理数兆字节的读写操作。②可伸缩:在一组机器上对数据进行分区③和简化,以支持更大的数据④持久:消息是持久性的,并在集群中进⑤行复制,以防止数据丢失。⑥设计:它提供了容错保证和持久性...原创 2021-05-20 09:01:25 · 71725 阅读 · 0 评论 -
2021-05-20 Kafka面试题 请说明什么是传统的消息传递方法?
请说明什么是传统的消息传递方法?传统的消息传递方法包括两种:排队:在队列中,一组用户可以从服务器中读取消息,每条消息都发送给其中一个人。发布-订阅:在这个模型中,消息被广播给所有的用户。...原创 2021-05-20 09:00:53 · 70917 阅读 · 0 评论 -
2021-05-20 Kafka面试题 为什么说Kafka性能很好,体现在哪里?
为什么说Kafka性能很好,体现在哪里?①顺序读写②零拷贝③分区④批量发送⑤数据压缩原创 2021-05-20 09:00:19 · 71154 阅读 · 5 评论 -
2021-05-20 Kafka面试题 使用Kafka有什么优点和缺点?
使用Kafka有什么优点和缺点?优点:①支持跨数据中心的消息复制;②单机吞吐量:十万级,最大的优点,就是吞吐量高;③topic数量都吞吐量的影响:topic从几十个到几百个的时候,吞吐量会大幅度下降。所以在同等机器下,kafka尽量保证topic数量不要过多。如果要支撑大规模topic,需要增加更多的机器资源;④时效性:ms级;⑤可用性:非常高,kafka是分布式的,一个数据多个副本,少数机器宕机,不会丢失数据,不会导致不可用;⑥消息可靠性:经过参数优化配置,消息可以做到0丢失;⑦功能支持:原创 2021-05-20 08:59:47 · 71371 阅读 · 0 评论 -
2021-05-20 Kafka面试题 说说Kafka的使用场景?
说说Kafka的使用场景?①异步处理②应用解耦③流量削峰④日志处理⑤消息通讯等。原创 2021-05-20 08:59:11 · 71375 阅读 · 0 评论 -
2021-05-20 Kafka面试题 请说明什么是Apache Kafka?
请说明什么是Apache Kafka?Apache Kafka是由Apache开发的一种发布订阅消息系统,它是一个分布式的、分区的和可复制的提交日志服务。原创 2021-05-20 08:58:13 · 71341 阅读 · 0 评论