Kafka-之术语(名词解释)
我觉得吧,有些小伙伴其实对Kafka只有一个笼统的了解,对kafka相关的名词解释呢也是一知半解。那么这边博客就对kafka相关的名词作出比较完整的解释吧!~,以下是需要解释的名词
-
Producer
- kafka生产者,Kafka集群的数据都是生产者发送上报的;
-
leastLoadedNode
- kafka集群中负载最低的节点,通常生产者客户端向其发送MetaDataRequest获取元数据信息,从而获取各个消息发送请求对应的元数据更新;
-
Broker
- 每个Broker算是一个Kafka的集群节点;
-
Consumer
- 每个Kafka的数据都会被1个或者多个Consumer线程所消费;
- kafka一个分区的数据只能同时被一个Consumer组中的一个Consumer线程所消费;
-
Partition
- 每个Topic对应多个分区,根据Partitioner分区器将数据保存在不同的分区(Partition)中;
-
Replication
- 每个partition数据包含1到N个Replication,称为分区副本,一个分区对应的副本分布在不同的broker节点上;
-
AR
- 每个Partition的Leader副本在内存中维护的副本队列,AR(All Replications)= ISR + OSR;
- 每个Partition的Leader副本在内存中维护的副本队列,AR(All Replications)= ISR + OSR;
-
ISR
- 内部副本同步队列=ISR,ISR中由leader按照LEO同步情况维护着Leader以及其它同步数据完整性较高的Follower;
- 如果ISR中Follower的数据同步落后到某个标准,Leader会将其剔出ISR=>OSR
-
OSR
- OSR是AR中分给ISR,但是ISR不要的孩纸们,可怜
-
Leader
- 一个分区中负责读、写的副本,它的数据一定是>=其它副本的,如果它挂了,通过ZK来选举一个新的Leader;
-
Follower
- 一个分区中负责从Leader副本中同步数据,保持对齐的小弟副本,混的好进ISR,混不好进OSR
-
LEO
- 每个副本上下一条数据将被插入的offset;
- 防止误解,我配个图
上图中leader的HW=6,LEO=9,可能有些人之前理解的是HW=5,LEO=8,那显然是不对的。
-
HW
- 消费者只能消费<HW之前offset的数据,因为>=HW的数据对于Consumer来说是不可见的;
- HW=一个分区副本对列中所有副本中最低的那个LEO。
以下是副本同步流程中HW与LEO的变换流程图: