1.下面哪个命令行参数可以用来删除Kafka中的Topic?

a.list
b.create
c.delete
d.describe

解析

本题考查命令行操作

A:list用于查看当前服务器中的所有 topic,A错误

B:create用于创建一个新的topic,B错误

C:delete 用于删除 topic,C正确

D:describe 用于查看某个 Topic 的详情,D错误

2.在Kafka中,()是ISR 队列中最小的 LEO。

a.LEO
b.ISR
c.HW
d.AR

解析

A:LEO:代表当前日志文件中下一条,指的是每个副本最大的offset

B:ISR:代表副本同步队列

C:HW:指的是消费者能见到的最大的 offset,ISR 队列中最小的 LEO,C正确。

D:AR:代表所有副本

3.消费者出现活锁问题时应该()

a.增加max.poll.interval.ms相关参数
b.减少消费者数量
c.重启集群
d.提高poll频率

解析

活锁现象是由于持续向消费者发送心跳检查但是未及时处理,通常由于poll调用频率高导致处理记录时间长于最大间隔时间

所以A正确,D错误,B触发重平衡不能解决该问题,C,问题仍然会出现。

4.与传统消息系统相比,Kafka的突出特点不包括()。

a.能够持久化日志
b.容错能力强,是一个分布式系统
c.支持实时的流式处理
d.提供在线消息同步和离线消息缓存的能力

解析

A:Kafka能够持久化日志,这些日志可以被重复读取和无限期保留。

B:Kafka是一个分布式系统,以集群的方式运行,可以灵活伸缩,在内部通过复制数据提升容错能力和高可用性。

C:流式处理是指实时的处理一个或者多个事件流,Kafka支持实时的流式处理。

D:传统的消息系统,服务端的主要工作是维护发送方和接收方的连接状态,并提供在线消息同步和离线消息缓存的能力,这是传统的消息系统具有的,而非Kafka,故题解为D。

5.当之前下线的分区重新上线时,要执行Leader 选举,选举策略为()。

a.OfflinePartition Leader 选举
b.ReassignPartition Leader 选举
c.PreferredReplicaPartition Leader 选举
d.ControlledShutdownPartition Leader 选举

解析

分区的 Leader 副本选举对用户是完全透明的,它是由 Controller 独立完成的。

A:OfflinePartition Leader 选举:每当有分区上线时,就需要执行 Leader 选举。所谓的分区上线,可能是创建了新分区,也可能是之前的下线分区重新上线,选项A正确。

B:ReassignPartition Leader 选举:当你手动运行 kafka-reassign-partitions 命令,或是调用Admin的alterPartitionReassignments 方法执行分区副本重分配时,可能触发此类选举。

C:PreferredReplicaPartition Leader 选举:当你手动运行 kafka-preferred-replica- election 命令,或自动触发了 Preferred Leader 选举时,该类策略被激活。

D:ControlledShutdownPartition Leader 选举:当 Broker 正常关闭时,该 Broker上的所有 Leader 副本都会下线,因此,需要为受影响的分区执行相应的 Leader 选举。

6.使用消息队列的好处不包括()

a.能够有效解耦
b.可恢复性增强
c.提供缓冲空间
d.能够同步通信

解析

本题考查Kafka基本概念

A:消息队列降低了进程间的耦合度,允许独立的扩展或修改两边的处理过程,A包括。

B:系统的一部分组件失效时,不会影响到整个系统,即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理,B包括。

C:能够提供缓冲空间和时间,解决生产消息和消费消息的处理速度不一致的问题,C包括

D:消息队列提供了异步处理机制而不是同步,允许用户把一个消息放入队列,但并不立即处理它,D错误

7.下列说法错误的是()

a.生产者和消费者面向的都是一个 topic
b.生产者发送数据的对象是 leader
c.当集群中的某个节点发生故障时,Replica上的partition数据不会丢失
d.partition是一个没有顺序的队列

解析

A:Topic可以理解为一个队列,生产者和消费者面向的都是一个 topic;

B:生产者发送数据的对象,以及消费者消费数据的对象都是 leader

C:Replica的作用就是为保证集群中的某个节点发生故障时,该节点上的partition数据不丢失,且Kafka仍然能够继续工作。

D:一个topic可以分为多个 partition,每个partition是一个有序的队列,D选项错误。

8.当Kafka中日志片段大小达到()时,当前日志片段会被关闭。

a.1M
b.100M
c.1GB
d.10GB

解析

本题考查Kafka日志片参数设置

当日志片段大小达到指定的数量的时候(默认为1G),当前日志片段就会被关闭,一个新的日志片段被打开。

所以,选项C为正确答案,A、B、D错误

9.下列关于topic和partition的描述,错误的是()

a.Kafka中消息是以partition进行分类的

b.与partition不同,topic是逻辑上的概念而非物理上的概念

c.每个partition对应于一个 log文件

d.一个partition分为多个segment

解析

A:Kafka中消息是以 topic 进行分类的,生产、消费消息,都是面向 topic的,A错误。

B:topic是逻辑上的概念,而 partition 是物理上的概念,B正确

C:每个partition对应于一个log文件,文件中存储的是producer生产的数据,C正确。

D:Kafka采取了分片和索引机制,将每个partition分为多个segment,D正确。

10.()参数不影响kafka重平衡?

a.session.timeout.ms
b.heartbeat.interval.ms
c.message.max.bytes
d.max.poll.interval.ms

解析

A,session.timeout.ms:Coordinator 与消费者进行心跳检查时间间隔,及时发现崩溃、位移等信息,触发重平衡,A会影响。

B:heartbeat.interval.ms:心跳检查请求与响应的间隔时间,超过可能会认为消费者崩溃等,触发重平衡,B会影响。

C:message.max.bytes: Broker能够接收到的最大消息的大小,C不会影响,与重平衡无关,故题解为C。

D:max.poll.interval.ms:消费者处理消息逻辑的最大时间,防止消费者处理任务超时未响应,超过该时间Coordinator将剔除该消费者重新平衡,D不影响。

11.下面那种情况不会触发 Consumer Rebalance操作()

A.某个消费者崩溃
B.某个生产者崩溃
C.消费者消费的多个topic中某个topic被删除
D.新增消费者

解析

本题主要考察学生关于Kafka生产者分区写入策略的掌握

A 会触发,属于消费者数量发生变化

B 不会触发

C 会触发,属于topic数量发生变化

D 会触发,属于消费者数量发生变化

12.在()版本后,Kafka正式移除了对Zookeeper的依赖。

A.Kafka 1.8
B.Kafka 2.6
C.Kafka 2.8
D.Kafka 3.2

Zookeeper是一个分布式的协调组件,早期版本的Kafka用Zookeeper做meta信息存储,consumer的消费状态,group的管理以及 offset的值。2021年4月,Kafka官方发布了2.8.0版本,宣布Kafka正式移除了对Zookeeper的依赖,这样就无需维护Zookeeper集群,只要维护Kafka集群

13.下列哪种情况不会触发到消费者分区的重新分配?

a.当有新的消费者加入消费者组
b.已有的消费者推出消费者组
c.处于消费者所在分区最近提交的offset位置
d.消费者所订阅的主题的分区发生变化

解析

本题考查Kafka 消费者消费方式

当有新的消费者加入消费者组、已有的消费者推出消费者组或者所订阅的主题的分区发生变化,就会触发到分区的重新分配,选项A、B、D正确。

消费者重新分配之后,消费者消费的分区会发生变化,所以消费者要首先获取到自己被重新分配到的分区,并且定位到每个分区最近提交的 offset 位置继续消费,选项C错误。

14.下列关于leader和follower的说法正确的是()

a.一个topic的每个分区可以没有 leader
b.一个topic的每个分区可以没有follower
c.消费者消费数据的对象都是leader
d.follower从leader中同步数据有一定延迟

解析

一个 topic 的每个分区都有若干个副本,一个 leader和若干个 follower,A、B选项错误。

leader:生产者发送数据的对象,以及消费者消费数据的对象都是 leader,C选项正确。

follower:实时从 leader中同步数据,保持数据的同步,而没有延迟,D选项错误。

15.设用压力测试测出机器写入速度是20M/s一台,峰值的业务数据的速度是100M/s,副本数为6,预估需要部署Kafka机器数量为()。

a.6
b.12
c.13
d.20

解析

Kafka机器数量=2*(峰值生产速度*副本数/100)+1

所以2*(100*6/100)+1)= 13台,故需要13台机器,C选项正确。

16.

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐