Apache Kafka - 基础知识

在深入Kafka之前,您必须了解主题,经纪人,制作人和消费者等主要术语.下图说明了主要术语,表格详细描述了图表组件.

Fundamentals

在上图中,主题配置为三个分区.分区1有两个偏移因子0和1.分区2有四个偏移因子0,1,2和3.分区3有一个偏移因子0.副本的id与托管它的服务器的id相同.

假设,如果主题的复制因子设置为3,那么Kafka将为每个分区创建3个相同的副本,并将它们放在群集中以使其可用于其所有操作.为了平衡群集中的负载,每个代理存储一个或多个这些分区.多个生产者和消费者可以同时发布和检索消息.

S.No组件和描述
1

主题

属于的消息流特定类别称为主题.数据存储在主题中.

主题分为多个分区.对于每个主题,Kafka都保留了一个分区的最小化.每个这样的分区包含不可变有序序列中的消息.分区实现为一组大小相等的段文件.

2

分区

主题可能有很多分区,因此可以处理任意数量的数据.

3

分区偏移

每个分区消息都有一个唯一的序列ID,称为.

4

分区的副本

副本只是分区的.副本永远不会读取或写入数据.它们用于防止数据丢失.

5

经纪人

  • 经纪人是简单的系统负责人用于维护发布的数据.每个代理可以在每个主题上具有零个或多个分区.假设,如果主题中有N个分区和N个代理,则每个代理将有一个分区.

  • 假设主题中有N个分区并且超过N个代理(n + m),第一个N代理将有一个分区,而下一个M代理将没有该特定主题的任何分区.

  • 假设主题中有N个分区且少于N个代理(nm),则每个代理将在它们之间共享一个或多个分区.由于代理之间的负载分配不均,建议不要使用此方案.

6

Kafka Cluster

Kafka拥有多个经纪人被称为Kafka集群.无需停机即可扩展Kafka集群.这些集群用于管理消息数据的持久性和复制.

7

制作人

制作人是一个或多个Kafka主题的消息的发布者.生产者向Kafka经纪人发送数据.每次生产者向代理发布消息时,代理只是将消息附加到最后一个段文件.实际上,该消息将附加到分区.制作人还可以将消息发送到他们选择的分区.

8

消费者

消费者从经纪人处读取数据.消费者订阅一个或多个主题并通过从经纪商处提取数据来消费已发布的消息.

9

领导

是负责给定分区的所有读写的节点.每个分区都有一个服务器充当领导者.

10

关注者

跟随领导者指令的节点被称为关注者.如果领导者失败,其中一个追随者将自动成为新的领导者.跟随者充当普通消费者,提取消息并更新其自己的数据存储.