-
Broker:Kafka服务端,负责接收和处理生产者和消费者的请求。
-
Producer:生产者。
-
Comsumer:消费者。
-
ComsumerGroup:消费(者)组,多个消费者可以组成消费组,消费组保证每个Partition只能被消费者组中的一个消费者使用,避免重复消费。如果消费者组内一个消费者失效,消费组可以通过Rebalance重新分区,接管失效消费者的工作。
-
Relalance:重平衡,消费组内消费者实例数量变更后,其他消费者实例重新分配消费订阅主题的分区。
-
Record:消息,Kafka处理的基本单元,可以把消息看成是数据库里的一个「数据行」或一条「记录」
-
Offset:消息位移,分区中每条消息的位置信息,单调递增。
-
Batch:批次,为了提高效率,消息将分批写入Kafka。
-
Topic:主题,是一种逻辑概念,Kafka通过主题将消息进行分类,类似数据库中的表。
-
Partition:分区,是一种物理概念,一个
Topic
由若干个Partition
组成,可以分布于kafka集群中,方便扩容。单个分区内消息是有序的,只有将Partition
设置为1才能保证消息全局有序。 -
LogSegment:一个分区由多个
LogSegment
组成,一个LogSegment
由.log .index .timeindex
等组成。.log
追加是顺序写入的,文件名是以文件中第一条消息的offset来命名的;.Index
进行日志删除的时候和数据查找的时候可以快速定位;.timeStamp
则根据时间戳查找对应的偏移量。 -
Replica:副本,副本是针对
Partition
而言的,Partition
的副本可以分布在不同的Broker中,副本又分为Leader和Follower,Leader可读可写,Follower仅做数据冗余,以提升Kafka数据可靠性。 -
AR
(Assigned Replicas)
:分区中全部副本集合。 A R = I S R + O S R AR = ISR + OSR AR=ISR+OSR -
ISR
(In-Sync Replicas)
:所有和Leader副本(包括)保持一定程度同步的副本集合。 -
OSR
(Out-of-Sync Replicas)
:与Leader副本滞后过多的副本集合。 -
LEO
(Log End Offset)
:用于标识当前日志文件下一条待写入消息的offset。分区中每个副本都会维护自己的LEO。 -
HW
(High Watermark)
:高水位,标识了一个特定的offset,消费者只能拉取到HW之前的消息。 H W = M i n I S R ( L E O ) HW = Min_{ISR}(LEO) HW=MinISR(LEO)
Kafka中必知必会的基础概念
于 2022-05-14 13:21:27 首次发布