Kafka:分区日志VS集群

时间:2018-06-23 12:31:45

标签: apache-kafka

我从这里读过,对分区日志有些不确定。

首先他们说:

  

对于每个主题,Kafka集群维护一个分区日志,该日志   看起来像这样:

然后他们显示图片:

enter image description here

他们也说

  

日志中的分区有多种用途。首先,他们允许   日志的规模将超出可容纳在一台服务器上的大小。每   单个分区必须适合承载该分区的服务器,但是一个主题   可能有许多分区,因此它可以处理任意数量的数据。   其次,它们充当并行性的单元-稍后对此进行详细介绍。

我是否正确理解:

  1. 在群集上,它只能有一个主题的分区日志吗?换句话说,同一主题的两个分区不能位于同一群集中吗?
  2. 一个群集可以有来自不同主题的多个分区日志吗?
  3. 有关主题的图片应该更像这样? enter image description here

2 个答案:

答案 0 :(得分:1)

一个主题包含1个或多个分区。创建主题时,您可以指定分区数,创建后也可以添加分区。

Kafka会将分区分布在群集中尽可能多的代理上。如果您只有一个经纪人,那么他们将全部位于此经纪人上。

来自同一主题的许多分区可以位于同一代理上。这种情况一直存在,因为大多数集群只有十二个代理,并且拥有50个分区并不罕见,因此,来自同一主题的多个分区将位于同一代理上。

医生说的是,分区是无法拆分的单元。是否在经纪人上。而主题只是具有相同名称和配置的分区的集合。

答案 1 :(得分:1)

回答您的问题:

  1. 对于由 b 代理组成的Kafka集群以及具有 p 分区的主题,每个代理将大致容纳 p / b 分区作为主副本。它们也可能包含副本分区,但这取决于您的复制因素。因此,例如如果您有一个3节点群集,并且主题 test 具有6个分区,则每个节点将有2个分区。

  2. 是的,肯定可以。扩展上一点,如果您有两个主题 test1 test2 ,每个主题有6个分区,那么每个代理总共将拥有4个分区(每个主题2个)。

  3. 我猜在图中,您将经纪人标签为集群。