💡
原文中文,约6700字,阅读约需16分钟。
📝
内容提要
Kafka是一种分布式的基于发布/订阅模式的消息队列,应用场景包括缓冲/消峰、解耦和异步通信。其架构包括生产者、分区、Broker和消费者。使用分区提高吞吐量和并行处理能力。副本机制和幂等配置保证数据可靠性。具有顺序写日志、零拷贝和页缓存等特性。消费者组和再平衡机制实现并行消费和解决压力不平衡问题。
🎯
关键要点
-
Kafka是一种分布式的基于发布/订阅模式的消息队列。
-
消息队列的应用场景包括缓冲/消峰、解耦和异步通信。
-
Kafka的架构包括生产者、分区、Broker和消费者。
-
使用分区可以提高吞吐量和并行处理能力。
-
副本机制和幂等配置保证数据的可靠性。
-
Kafka具有顺序写日志、零拷贝和页缓存等特性。
-
消费者组和再平衡机制实现并行消费和解决压力不平衡问题。
-
生产者通过send方法发送数据,支持同步和异步方式。
-
分区策略包括指定分区、根据key的hash映射分区和使用上一次的分区。
-
生产者可以通过调整batch.size、linger.ms等参数提高吞吐量。
-
幂等配置用于保证数据不重复发送,开启后每条数据会加上唯一标识。
-
Kafka使用pull方式,消费者从Kafka集群拉取数据,offset存储在__consumer_offsets主题中。
-
消费者组由多个消费者组成,限制在于同一消费者组中的消费者不能同时消费同一分区的数据。
-
Kafka提供多种分区分配策略,包括Range、Roundrobin和Sticky。
-
再平衡机制用于防止消费者下线后引起的消费者压力不平衡。
-
Kafka的文件存储机制包括数据、索引和时间索引文件。
-
Kafka通过稀疏索引和零拷贝技术提高数据处理速度。
➡️