kafka基本概念

本文概述

  • 主题
  • 分区
  • 代理
  • 示例:代理和主题
在上一节中,我们简要介绍了Apache Kafka,消息传递系统以及流处理过程。在这里,我们将讨论Kafka的基本概念和作用。
主题通常,主题是指某些特定的相互关联的概念的特定标题或名称。在Kafka中,“主题”一词是指用于存储和发布特定数据流的类别或通用名称。基本上,Kafka中的主题类似于数据库中的表,但不包含所有约束。在Kafka中,我们可以根据需要创建n个主题。它由其名称标识,这取决于用户的选择。生产者将数据发布到主题,而消费者则通过订阅从主题中读取数据。
分区【kafka基本概念】主题分为几个部分,这些部分称为主题的分区。这些分区按顺序分开。数据内容存储在主题内的分区中。因此,在创建主题时,我们需要指定分区数(该数是任意的,以后可以更改)。每条消息都以增量ID(称为偏移值)存储在分区中。偏移值的顺序只能在分区内保证,不能在整个分区内保证。分区的偏移量是无限的。
注意:一旦写入分区,数据将永远无法更改。这是一成不变的。偏移值始终保持递增状态,永远不会返回空白空间。同样,数据仅在有限的时间内保留在分区中。让我们看一个示例,以了解其分区的主题。
kafka基本概念

文章图片
假设一个主题包含三个分区0, 1和2。每个分区都有不同的偏移号。数据分布在每个分区的每个偏移量中,分区0的偏移量1中的数据与分区1的偏移量1中的数据没有任何关系。但是,分区0的偏移量1中的数据与分区0的偏移量2中包含的数据相互关联。
代理这就是Apache Kafka的角色。
Kafka群集由一台或多台称为代理或Kafka代理的服务器组成。代理是一个包含多个主题及其多个分区的容器。集群中的代理仅由整数ID标识。 Kafka代理也称为Bootstrap代理,因为与任何一个代理的连接都意味着与整个集群的连接。尽管代理不包含全部数据,但是集群中的每个代理都知道所有其他代理,分区以及主题。
kafka基本概念

文章图片
这是代理程序在图中包含一个n个分区的主题的样子。
示例:代理和主题假设一个由三个代理组成的Kafka集群,即代理1,代理2和代理3。
kafka基本概念

文章图片
每个代理都拥有一个主题,即带有三个分区0、1和2的Topic-x。请记住,所有分区都不仅仅属于一个代理,它总是分布在每个代理中(取决于数量)。代理1和代理2包含另一个主题y,它具有两个分区0和1。因此,代理3不保存来自主题y的任何数据。还可以得出结论,代理号和分区号之间不存在任何关系。

    推荐阅读