首页  

kafka基础面试题     所属分类 kafka 浏览量 66
什么是kafka
Kafka是开源的发布订阅消息系统  消息队列  MQ(Message Queue)

kafka的3个关键功能
发布和订阅记录流,类似于消息队列或企业消息传递系统。
以容错的持久方式存储记录流。
处理记录流。


kafka通常用于两大类应用?
建立实时流数据管道,以可靠地在系统或应用程序之间获取数据
构建实时流应用程序,以转换或响应数据流

kafka特性
消息持久化
高吞吐量
扩展性
多客户端支持
Kafka Streams
安全机制
数据备份
轻量级
消息压缩

kafka的5个核心Api
Producer API 
Consumer API
Streams API 
Connector API 
Admin API 


什么是Broker(代理)
Kafka集群中,一个kafka实例被称为一个代理(Broker)节点

什么是Producer(生产者)
消息的生产者(发送者)被称为Producer
Producer将消息发送到集群指定的主题中存储,同时也自定义算法决定将消息记录发送到哪个分区


什么是Consumer(消费者)
消息的消费者,从kafka集群中指定的主题读取消息

什么是Topic(主题)
主题,kafka通过不同的主题却分不同的业务类型的消息记录

什么是Partition(分区)
每一个Topic可以有一个或者多个分区(Partition)


分区和代理节点的关系
一个分区只对应一个Broker,一个Broker可以管理多个分区

什么是副本(Replication)
每个主题在创建时指定副本数(默认1)


什么是记录(Record)
实际写入到kafka集群并且可以被消费者读取的数据。
每条记录包含一个键、值和时间戳。


kafka适合哪些场景
日志收集、消息系统、活动追踪、运营指标、流式处理 等 

kafka磁盘选用
大多是顺序读写操作, 使用普通磁盘即可, SSD性能优势不大

磁盘容量规划需要考虑的点

新增消息数
消息留存时间
平均消息大小
备份数
是否启用压缩

Broker文件目录路径参数
log.dirs 多个
log.dir 单个
推荐使用 log.dirs
提升读写性能,多块物理磁盘同时读写高吞吐。
故障转移 

自动创建主题 
auto.create.topics.enable

如何解决kafka消息丢失问题
使用同步放
设置 acks = all
设置 retries  
unclean.leader.election.enable = false
设置 replication.factor >= 3
设置 min.insync.replicas > 1
确保 replication.factor > min.insync.replicas
消息消费完成再提交

如何自定义分区策略
显式地配置生产者端的参数partitioner.class

参数为你实现类的 全限定类名,一般来说实现partition方法即可。

kafka压缩消息可能发生的地方
Producer  Broker

kafka消息重复如何处理
做好幂等



kafka监控工具
JMX 
Kafka Manage
 
两种不同发送方式
异步 同步

消费者和消费者组区别
一个消费者组,可以有一个或者多个消费者程序。
主题每个分区只能分配给某一个消费者组中的某一个消费者

上一篇     下一篇
springcloud sleuth zipkin 实例

Spring Cloud Sleuth Zipkin原理

《人性的弱点》53条经典总结

kafka核心知识点

java中的list

arthas 异常排查技巧