Kafka概念详解

tech2023-02-12  107

Kfaka架构图

1、Producer

生产者,即数据的发布者,该角色将数据发布到Kafka的Topic中。Broker接受到生产者发送的数据后,会将该消息追加到当前的segment文件中。生产者发布的消息,将被存储在一个partition中,同时,生产者也可以指定要存储数据的partition。

2、Consumer

消费者,消费者可以从Broker中读取数据。消费者可以消费多个topic的数据,但是同一个消费组内的消费者同一时间只能消费一个partition中的数据。

3、Topic

在Kafka中,使用Topic来划分数据的所属,划分数据的这个类被称为Topic。可以将topic理解为数据库内的一张表。

4、Partition

一个Topic内的数据可以分割为一个或多个partition,每个topic内最少含有一个partition,每个partition内的数据使用多个segment文件来存储。在一个Topic内,Kafka保证partition内数据有序(生产时序),但是不保证多个partition间的数据有序。因此,如果业务场景要求保证严格消费顺序的情况下,此时partition数量应为1。

5、Partition Offset

Partition内的每条消息都有一个当前Partition下唯一的64字节的offset信息,指明该条消息的偏移位置。

6、Replication

副本是基于partition存在的,只用来备份和容灾,不会被消费者所消费。即消费者不会从followr的partition中消费数据,只会从leader的partition中消费。副本是一主多从的关系。

7、Broker

Broker即Kafka的物理节点。Broker用于存储实际的消息数据。通常情况下,多partition的topic,每个partition将会对应一台Broker。因此,不建议partition的数量超过broker的数量。

8、Leader和Follower

如果一个partition拥有多个replication,那么这些replication中有且仅有一个作为Leader(主),该角色用于消费者的消费,其他replcation作为Follower,这些角色仅用于备份和容灾,消费者不可消费。

9、Zookeeper

Zookeeper在Kafka集群中负责维护和协调Broker的状态。

10、AR(Assigned Replication)

分区内的所有副本统称为AR。

11、ISR(In-Sync Replication)

所有与Leader保持一致的副本(包括Leader在内)组成ISR。

12、OSR(Out-of-Sync Replication)

未能与Leader保持一致的滞后过多的副本的统称。

13、HW(Hight Watermark)

高水位标识,标识了一个特定的offset,消费者只能拉取该offset之前的数据。用于保证数据的一致性。

14、LEO(Log End Offset)

即日志的末端位移,记录了该副本底层日志中的吓一条数据的位移值。例如某副本内保存了10条消息,那么该LEO值为10,位移范围为[0,9]。

最新回复(0)