Kafka

定义

Kafka传统定义:Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Quque),主要应用于大数据实时处理领域。

发布/订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接收感兴趣的消息。

Kafka最新定义:Kafka是一个开源的分布式事件流平台( Event StreamingPlatform),被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。

传统消息队列的应用场景

传统的消息队列的主要应用场景包括:缓存/消峰、解耦和异步通信。

kafka基础架构

image-20231113104314477

  1. 为方便扩展,并提高吞吐量,一个topic分为多个partition
  2. .配合分区的设计,提出消费者组的概念,组内每个消费者并行消费
  3. 为提高可用性,为每个partition增加若干副本,类似NameNode HA
  4. Zookeeper中记录谁是leader,kafka2.8后 可配置不采用ZK

ZooKeeper在Kafka中的作用

image-20231113105258187

存储记录存储上下限的信息与每个分区下的leader副本