gpt4 book ai didi

apache-kafka - 主题、分区和键

转载 作者:行者123 更新时间:2023-12-03 11:49:17 30 4
gpt4 key购买 nike

我正在寻找有关该主题的一些说明。
在 Kafka 文档中,我发现以下内容:

Kafka 仅提供分区内消息的总顺序,而不是主题中不同分区之间的消息。对于大多数应用程序而言,按分区排序与按键分区数据的能力相结合就足够了。但是,如果您需要对消息进行总排序,这可以通过只有一个分区的主题来实现,尽管这意味着每个消费者组只有一个消费者进程。

所以这是我的问题:

  • 这是否意味着如果我想让超过 1 个消费者(来自同一组)从一个主题中读取,我需要有超过 1 个分区?
  • 这是否意味着我需要与同一组的消费者数量相同的分区数量?
  • 一个分区可以读取多少个消费者?

  • 还有一些关于 API 的键和分区之间关系的问题。我只查看了 .net API(尤其是来自 MS 的 API),但看起来像是模仿 Java API。
    我看到使用生产者向主题发送消息时有一个关键参数。但是当消费者从一个主题中读取时,会有一个分区号。
  • 分区如何编号?从0还是1开始?
  • 键和分区之间究竟有什么关系?
    据我了解,键上的某些功能将确定一个分区。那是对的吗?
  • 如果我在一个主题中有 2 个分区,并且希望某些特定消息转到一个分区,而其他消息转到另一个分区,我应该为一个特定分区使用特定键,而其余的用于另一个分区?
  • 如果我有 3 个分区和一种类型的消息到一个特定的分区而其余的到其他 2 怎么办?
  • 一般来说,我如何将消息发送到特定分区以便知道消费者从哪里阅读?
    或者我最好处理多个主题?

  • 提前致谢。

    最佳答案

    Does it mean if i want to have more than 1 consumer (from the same group) reading from one topic I need to have more than 1 partition?



    让我们看看kafka的以下属性:
  • 每个分区仅由组中的一个消费者使用
  • 组中的一个消费者可以消费多个分区
  • 组中的消费者进程数必须 <= number
    分区数

  • 有了这些属性,kafka 可以巧妙地同时提供 ordering guaranteesload balancing在一个消费者进程池上。

    要回答您的问题,是的,在同一组的上下文中,如果您想拥有 N consumers , 你必须有 at least N partitions .

    Does it mean I need same amount of partitions as amount of consumers for the same group?



    我认为这已在第一个答案中进行了解释。

    How many consumers can read from one partition?


    number of consumers可以从一个分区读取的总是等于 number of consumer groups订阅该主题。

    Relationship between keys and partitions with regard to API



    首先,我们必须了解 producer负责选择将哪条记录分配给主题中的哪个分区。

    现在,让我们看看生产者是如何做到的。首先,让我们看看 ProducerRecord.java 的类定义:
    public class ProducerRecord<K, V> {

    private final String topic;
    private final Integer partition;
    private final Headers headers;
    private final K key;
    private final V value;
    private final Long timestamp;

    }

    在这里,我们必须从类中了解的字段是 partition .

    来自 ProducerRecord docs ,
  • 如果有效 partition number已指定,即 partition发送记录时会用到。
  • 如果未指定分区但 key如果存在,将使用 hash of the key 选择分区.
  • 如果两者都没有 key也不是 partition存在的分区将分配到 round-robin fashion .
  • 关于apache-kafka - 主题、分区和键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37511922/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com