kafka的基本概念

kafka的基本概念

1.主题
Kafka将一组消息抽象归纳为一个主题(Topic),也就是说,一个主题就是对消息的一个分类

2.消息
消息是Kafka通信的基本单位,由一个固定长度的消息头和一个可变长度的消息体构成。

3。分区和副本
Kafka将一组消息归纳为一个主题,而每个主题又被分为一个或者多个分区(Partition)。每个分区由一系列有序,不可变的消息组成,是一个有序队列。,每个分区又有一至多个副本(Replia),分区的每个副本分布在集群的不同代理上,以提高可用性。

Kafka只能保证一个分区内消息的有序性,不能保证跨分区消息有序性。

4.Leader副本和Follower副本
Kafka会选择该分区的一个副本作为Leader副本,而该分区其他副本即为Follower副本,只有Leader副本才负责处理客户端读/写请求,Follower副本从Leader副本同步数据。、
如果没有Leader副本,那就需要所有的副本都同时负责读/写请求处理,同时还得保证这些副本之间数据的一致性,假设有n个副本则需要有n×n条通路来同步数据,这样数据的一致性和有序性就很难保证。

5.偏移量
任何发布到分区的消息会被直接追加到日志文件(分区目录下以“.log”为文件名后缀的数据文件)的尾部,而每条消息在日志文件中的位置都会对应一个按序递增的偏移量。偏移量

6.日志段
一个日志又被划分为多个日志段(LogSegment),日志段是Kafka日志对象分片的最小单位。与日志对象一样,日志段也是一个逻辑概念,一个日志段对应磁盘上一个具体日志文件和两个索引文件。

7.代理
。Kafka集群就是由一个或多个Kafka实例构成,我们将每一个Kafka实例称为代理(Broker),通常也称代理为Kafka服务器(KafkaServer)。

8.生产者
生产者负责将消息发送给代理

9.消费者和消费组
消费者以拉取方式拉取数据,它是消费者的客户端

10.ISR
Kafka在ZooKeeper中动态维护了一个ISR(In-sync Replica),即保存同步的副本列表,该列表中保存的是与Leader副本保持消息同步的所有副本对应的代理节点id。

在这里插入图片描述