问题一:Kafka中的LogSegment是如何组成的?
Kafka中的LogSegment是如何组成的?
参考回答:
Kafka的一个分区由多个LogSegment组成,每个LogSegment包含.log文件(顺序写入的消息文件)、.index文件(用于快速定位消息)和.timeindex文件(根据时间戳查找对应的偏移量)。
关于本问题的更多问答可点击原文查看:
https://developer.aliyun.com/ask/628377
问题二:Kafka在吞吐量,性能,持久性这几方面表现咋样?
Kafka在吞吐量,性能,持久性这几方面表现咋样?
参考回答:
• 高吞吐量:单机每秒处理几十上百万的消息量。即使存储了TB及消息,也保持稳定的性能。
• 零拷贝 减少内核态到用户态的拷贝,磁盘通过sendfile实现DMA 拷贝Socket buffer
• 顺序读写 充分利用磁盘顺序读写的超高性能
• 页缓存mmap,将磁盘文件映射到内存, 用户通过修改内存就能修改磁盘文件。
• 高性能:单节点支持上千个客户端,并保证零停机和零数据丢失。
• 持久化:将消息持久化到磁盘。通过将数据持久化到硬盘以及replication防止数据丢失。
• 分布式系统,易扩展。所有的组件均为分布式的,无需停机即可扩展机器。
• 可靠性 - Kafka是分布式,分区,复制和容错的。
• 客户端状态维护:消息被处理的状态是在Consumer端维护,当失败时能自动平衡。
关于本问题的更多问答可点击原文查看:
https://developer.aliyun.com/ask/628378
问题三:Kafka主要有哪些应用的场景?详细说说
Kafka主要有哪些应用的场景?详细说说
参考回答:
• 日志收集:用Kafka可以收集各种服务的Log,通过大数据平台进行处理;
• 消息系统:解耦生产者和消费者、缓存消息等;
• 用户活动跟踪:Kafka经常被用来记录Web用户或者App用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到Kafka的Topic中,然后消费者通过订阅这些Topic来做运营数据的实时的监控分析,也可保存到数据库;
关于本问题的更多问答可点击原文查看:
https://developer.aliyun.com/ask/628383
问题四:Kafka的生产消费基本流程是怎样的?
Kafka的生产消费基本流程是怎样的?
参考回答:
Kafka的生产消费基本流程包括以下几个步骤:
首先,Producer创建时会创建一个Sender线程并设置为守护线程;
然后,生产的消息会经过拦截器、序列化器、分区器的处理,并缓存在缓冲区;
接着,当缓冲区数据大小达到batch.size或者linger.ms达到上限时,会进行批次发送;
发送的消息会落盘到指定的broker分区,根据配置的acks参数确认消息是否发送成功;
如果生产者配置了retries参数大于0且未收到确认,会进行消息重试;
消息成功落盘后,broker会返回生产元数据给生产者。
关于本问题的更多问答可点击原文查看:
https://developer.aliyun.com/ask/628382
问题五:Kafka的Leader选举机制是怎样的?
Kafka的Leader选举机制是怎样的?
参考回答:
Kafka的Leader选举机制是在Zookeeper上为每个Topic维护一个称为ISR(In-Sync Replica)的集合。当ISR中的副本都跟Leader中的副本同步后,Kafka才认为消息已提交。只有这些跟Leader保持同步的Follower才应该被选作新的Leader。如果ISR中的副本都丢失了,可以选择等待ISR中的副本恢复或从OSR(Out-of-Sync Replica)中选出一个副本做Leader副本,但后者可能会造成数据丢失。
关于本问题的更多问答可点击原文查看: