Kafka常见面试题

kafka是什么?

Kafka是LinkedIn开源的一款分布式消息发布和订阅系统,它的特点是高性能、高吞吐量。

kafka有什么特点?

(1)高吞吐、低延迟:kafka能达到每秒几十万的吞吐量,延迟只有几毫秒

(2)持久化:可持久化到普通磁盘上

(3)容错性:多副本

(4)横向扩展:kafka支持热扩展

(5)高并发:支持上千个客户端同时读写

kafka有哪些应用场景?

日志收集

消息系统

流式处理

kafka包含哪些组件?

broker

topic

partition

segement

offset

producer

consumer

kafka为什么这么快?

多分区

磁盘顺序写

页缓存

零拷贝

批量读写

kafka如何保证数据可靠性?

(1)副本数据同步策略

(2)ISR机制

ISR:同步副本,和leader保持同步的follower集合。如果follower长时间没有向leader同步数据,则该follower会被踢出ISR;当leader发生故障时,会从ISR中选举出一个新的leader。

(3)ack应答机制:

acks=0:不等待borker的ack, 直接返回,当borker故障时,有可能导致数据丢失。

acks=1:等待partition的leader返回ack

acks=-1(all):等待partition的leader和follower都落盘返回ack

(4)故障处理:LEO、HW

LEO:每个副本的最后一个Offset

HW:所有副本中最小的LEO

a、当follower发生故障时,follower将log文件高于HW的内容截断,从HW开始从leader同步

b、当leader发生故障时,会从ISR里选举一个follower作为新的leader,其它follower先将各自高于HW的部分截取掉,然后从新的leader同步数据

kafka能保证消息的顺序性吗?

kafka只能保证单个partition内部有序,kafka写数据时可以指定partition,将相同的key发送到同一个partition里,保证业务相同的key有序

kafka如何做性能优化?

Broker优化:

(1)配置多个不同磁盘的目录

(2)使用G1垃圾回收器

(3)网络、io操作线程数

(4)log文件刷盘时间间隔

(5)日志保留策略

Producer优化:

(1)调整写缓冲区大小

(2)消息压缩

(3)调整每批次发送request数:batch.size

(4)设置acks值

Consumer优化:

(1)调整消费的并发度

(2)每次拉取得消息大小

kafka 哪些分区策略?

写入分区策略:

(1)直接指定分区

(2)如果key不为null,则根据key的hash值选择分区

(3)如果key为null, 2.4版本之前采用的是轮训策略,2.4版本之后是采用的是黏性分区器(选择单个分区batch写满,再选择另一个)

(4)自定义分区器,实现org.apache.kafka.clients.producer.Partitioner接口

消费分区策略:

通过参数partition.assignment.strategy设置,可取值为:range、roundrobin

kafka底层存储机制?

一个partition对应一个目录,可以包含很多segment(默认大小为500M),每个segment包含两个文件:.log结尾的数据文件, .index结尾的索引文件。如:

0000000.log

0000000.index

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鸭文库

你的鼓励是我前进的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值