Kafka原理条例

  • 一、Kafka术语解释
  • 1、领导者和追随者消息的备份与存储图解
  • 二、Kafka工作流程图


kafka集群压力测试 kafka集群工作原理_数据

一、Kafka术语解释

  1. Producer:kafka生产者,Kafka集群的数据都是生产者发送上报的;
  2. leastLoadedNode:kafka集群中负载最低的节点,通常生产者客户端向其发送MetaDataRequest(元数据请求)获取元数据信息,从而获取各个消息发送请求对应的元数据更新;
  3. Broker:每个Broker算是一个Kafka的集群节点;
  4. Consumer:a、每个Kafka的数据都会被1个或者多个Consumer线程所消费;b、kafka一个分区的数据只能同时被一个Consumer组中的一个Consumer线程所消费
  5. Partition:每个Topic对应多个分区,根据Partitioner分区器将数据保存在不同的分区(Partition)中;
  • Replication:每个partition数据包含1到N个Replication,称为分区副本,一个分区对应的副本分布在不同的broker节点上;
  • AR:每个Partition的Leader副本在内存中维护的副本队列,AR(All Replications)= ISR + OSR;
  • kafka集群压力测试 kafka集群工作原理_数据_02

  • ISR:内部副本同步队列=ISR,ISR中由leader按照LEO同步情况维护着Leader以及其它同步数据完整性较高的Follower,如果ISR中Follower的数据同步落后到某个标准,Leader会将其剔出ISR=>OSR
  • OSR:OSR是AR中分给ISR,但是ISR不需要的子项(被删除的无用Follower)
  1. Leader:一个分区中负责读、写的副本,它的数据一定是>=其它副本的,如果它挂了,通过ZK来选举一个新的Leader;
  2. Follower:一个分区中负责从Leader副本中同步数据,响应正常的为ISR,响应超时或故障则丢弃为OSR
  3. LEO:每个副本上下一条数据将被插入的offset;

    leader领导者的数据部分。
  4. HW:消费者只能消费 < HW 之前 offset 的数据,因为 >= HW 的数据对于 Consumer 来说是不可见的(HW = 一个分区副本对列中所有副本中最低的那个LEO)。

1、领导者和追随者消息的备份与存储图解

HW 与 LEO 之间的转换

kafka集群压力测试 kafka集群工作原理_kafka集群压力测试_03


kafka集群压力测试 kafka集群工作原理_kafka_04


kafka集群压力测试 kafka集群工作原理_数据_05


kafka集群压力测试 kafka集群工作原理_kafka集群压力测试_06


kafka集群压力测试 kafka集群工作原理_数据_07


kafka集群压力测试 kafka集群工作原理_kafka_08

二、Kafka工作流程图

kafka集群压力测试 kafka集群工作原理_消息队列_09


不管生产消息,还是消费消息,都是面向消息队列(topic),但消息队列实际上不过是逻辑上的概念,而分区(partition)才是物理上存储数据的概念。分区对于着data数据文件(.log)源于生产者,生产的新数据追加到log文件末端,每条数据都有自己的偏移量(offset),消费者根据记录自身消费到的offset来确定上次消费到的数据。便于恢复。