赞
踩
上节我们完成的内容:
Kafka 的架构设计使其成为一个高吞吐量、低延迟、分布式的数据流处理平台。通过理解这些核心概念,可以更好地设计和实现基于 Kafka 的数据处理解决方案。Kafka 的分区、复制和消费模型提供了强大的扩展能力和可靠性,使得它在实时数据流处理、日志聚合、事件溯源等场景中得到了广泛的应用。
Kafka 的基本工作流程如下:
生产者创建消息。
该角色将消息发布到Kafka的Topic中,Broker接收到生产者的消息之后,Broker将消息追加到当前的 segment 文件中。
一般情况下,一个消息会被发布到一个特定的主题上:
生产者是负责将数据发送到 Kafka 的组件。生产者可以是任何产生数据的应用程序,如日志记录系统、传感器、数据库变更日志等。Kafka 生产者以发布-订阅模式工作,将消息发送到一个或多个 Kafka 主题。
关键特性如下:
消费者读取消息
消费者是从 Kafka 主题中读取消息的组件。消费者通常被组织在消费者组中,以便多个消费者可以协同处理来自同一主题的消息。每个消费者组内的消费者分摊处理不同的分区,从而提高了系统的吞吐量和可扩展性。
关键特性如下:
一个独立的Kafka服务器称为Broker
Broker 是 Kafka 集群中的一个实例,它负责接收生产者发送的消息,将其存储到磁盘,并为消费者提供数据。一个 Kafka 集群通常由多个 Broker 组成,每个 Broker 负责管理一部分分区。
关键特性如下:
每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。
物理上不同的Topic的消息分开存储
主题就好比数据库的表,尤其是分库分表之后的逻辑表。
主题是 Kafka 中用于存储和分类消息的逻辑通道。每个主题可以有多个分区,消息在分区内是有序的,但在不同的分区之间可能是无序的。
关键特性如下:
分区是主题的物理分片,每个分区在磁盘上存储一部分消息。分区允许 Kafka 将数据分散在集群中的多个 Broker 上,从而实现横向扩展。
关键特性如下:
Kafka使用主题来组织数据,每个主题被分为若干个分区,每个分区有多个副本,那些副本被保存在Broker上,每个Broker可以保存成百上千属于不同主题和分区的副本。
副本有以下的两种类型:
消息写入的时候,每一个分区都有一个Offset,这个Offset就是生产者的Offset,同时也是这个分区的最新最大的Offset。
有些时候没有指定某一个分区的Offset,这个工作Kafka帮我们完成。
偏移量是 Kafka 中每条消息在分区内的唯一标识符。消费者通过维护偏移量来跟踪它们已经读取的消息位置。
关键特性如下:
这是某个分区的Offset情况,生产者写入的Offset是最新最大值12,当ConsumerA进行消费时,从0开始消费,一直消费到9,消费者的Offset就记录9,ConsumerB就记录在11。
等下一次消费的时候,他们可以选择从上一次消费的位置消费,也可以从头开始消费。
Kafka通过副本来保证高可用,副本分为:首领副本(Leader)和追随者副本(Follower)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。