Kafka面试题(一)

文章目录


1、Kafka的设计架构你知道吗?

Kafka 架构包含有生产者、消费者、topic(主题)、broker(就是一台Kafka服务器),为了方便扩展,并提高吞吐量,一个topic分为多个分区、配合分区的设计提出了消费者组的概念,组内消费者并行消费,为提高数据的可靠性,每个分区有多个副本,而这些副本经过选举决定谁是Leader,谁是Follower,Leader 发生故障时,某个 Follower 会成为新的 Leader。

2、Kafka消息发送流程(面试重点)

在消息发送的过程中,会有两个线程,分别是main线程和sender线程,这两个线程中间还有一个双端队列(RecordAccumulator)。消息经过主线程的处理,发送给了双端队列,sender线程会从双端队列中拉取数据,然后再将数据发送给Kafka集群。
(下面的参数想起几个说几个:) 当然,其中还会有很多重要的参数,比如:

可以设置双端队列缓冲区的总大小,可以设置双端队列里每个队列缓存数据的最大值,默认是16KB,可以设置数据最大等待时长。

kafka集群在收到消息后也可以设置ack应答级别,有三个参数,0、1、-1,其中0代表不应答,1代表Leader应答即可,-1代表Leader 和 ISR 队列里面的所有节点都需要应答,可以设置sender线程里面最多可以缓存kafka集群没有应答的请求数量,默认为5,也可以设置数据发送失败后重新发送的次数。

3、Kafka分区的目的?

便于合理使用存储资源以及提高并行度

相关推荐
JH30732 小时前
《Redis 经典应用场景(一):缓存、分布式锁与限流》
redis·分布式·缓存
1.01^10003 小时前
[7-01-02].第10节:开发应用 - 配置Kafka中消费消息策略
kafka
熙客3 小时前
Elasticsearch:分布式搜索引擎数据库
分布式·elasticsearch·搜索引擎
Hello.Reader5 小时前
Spark RDD 编程从驱动程序到共享变量、Shuffle 与持久化
大数据·分布式·spark
陈果然DeepVersion7 小时前
Java大厂面试真题:Spring Boot+微服务+AI智能客服三轮技术拷问实录(四)
spring boot·redis·微服务·kafka·spring security·智能客服·java面试
小鹿学程序8 小时前
搭建hadoop集群
大数据·hadoop·分布式
web3.08889998 小时前
淘宝(全量)商品详情 API 的分布式请求调用实践
分布式
lijun_xiao20098 小时前
SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式-学习笔记-1
分布式·spring cloud·rabbitmq
二宝1529 小时前
黑马商城day8-ES01
分布式·微服务·架构
shepherd1269 小时前
破局延时任务(下):Spring Boot + DelayQueue 优雅实现分布式延时队列(实战篇)
java·spring boot·分布式