Apache kafka Kafka:分区日志与集群

Apache kafka Kafka:分区日志与集群,apache-kafka,Apache Kafka,我在这里读过,对分区日志有点不确定 首先他们说: 对于每个主题,Kafka集群都维护一个分区日志 看起来像这样: 然后他们展示了一幅图片: 他们还说 日志中的分区有多种用途。首先,他们允许 日志的大小不能扩展到适合单个服务器的大小。每个 单独的分区必须适合托管它的服务器,但主题 可能有许多分区,因此它可以处理任意数量的数据。 第二,它们作为并行性的单位,在某种程度上更多地依赖于并行性 我是否正确理解: 在集群上,一个主题只能有一个分区日志?换句话说,同一主题的两个分区不能在同一集群中 一个集群

我在这里读过,对分区日志有点不确定

首先他们说:

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

然后他们展示了一幅图片:

他们还说

日志中的分区有多种用途。首先,他们允许 日志的大小不能扩展到适合单个服务器的大小。每个 单独的分区必须适合托管它的服务器,但主题 可能有许多分区,因此它可以处理任意数量的数据。 第二,它们作为并行性的单位,在某种程度上更多地依赖于并行性

我是否正确理解:

  • 在集群上,一个主题只能有一个分区日志?换句话说,同一主题的两个分区不能在同一集群中
  • 一个集群可以有来自不同主题的多个分区日志
  • 关于主题的图片应该更像这样?

  • 一个主题由一个或多个分区组成。您可以在创建主题时指定分区数,也可以在创建后添加分区

    Kafka将在集群中尽可能多的代理上分布分区。如果你只有一个经纪人,那么他们都在这个经纪人身上

    来自同一主题的许多分区可以位于同一代理上。这种情况经常发生,因为大多数集群只有十几个代理,而且有50个分区并不少见,因此来自同一主题的多个分区将位于同一个代理上


    文档所说的是分区是一个不能分割的单元。要么是经纪人,要么不是。而主题只是具有相同名称和配置的分区集合。

    主题由1个或多个分区组成。您可以在创建主题时指定分区数,也可以在创建后添加分区

    Kafka将在集群中尽可能多的代理上分布分区。如果你只有一个经纪人,那么他们都在这个经纪人身上

    来自同一主题的许多分区可以位于同一代理上。这种情况经常发生,因为大多数集群只有十几个代理,而且有50个分区并不少见,因此来自同一主题的多个分区将位于同一个代理上


    文档所说的是分区是一个不能分割的单元。要么是经纪人,要么不是。而主题只是具有相同名称和配置的分区集合。

    要回答您的问题:

  • 对于由b代理组成的Kafka集群和具有p分区的主题,每个代理大致将p/b分区作为主副本。它们也可能保存副本分区,但这取决于您的复制因素。因此,例如,如果您有一个3节点集群,并且一个主题测试有6个分区,那么每个节点将有2个分区

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

  • 我猜在图中,您将代理错误地标记为集群


  • 回答你的问题:

  • 对于由b代理组成的Kafka集群和具有p分区的主题,每个代理大致将p/b分区作为主副本。它们也可能保存副本分区,但这取决于您的复制因素。因此,例如,如果您有一个3节点集群,并且一个主题测试有6个分区,那么每个节点将有2个分区

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

  • 我猜在图中,您将代理错误地标记为集群


  • 1.你的理解是错误的。一个主题可以有许多分区,这些分区分布在集群中的不同机器(代理节点)上1。你的理解是错误的。一个主题可以有许多分布在集群中不同机器(代理节点)上的分区