gpt4 book ai didi

apache-kafka - Apache Kafka 使用分区扩展主题

转载 作者:行者123 更新时间:2023-12-05 01:19:54 24 4
gpt4 key购买 nike

我们开始使用 Apache Kafka 将时间序列数据保存到时间序列数据库中。我们一开始只有一个主题,一个生产者写入这个主题,一个消费者读取这个主题并将数据转储到 Timeseries 数据库。

我们有 3 个代理实例,我们在第一次尝试中注意到生产者向主题写入消息的速度相当快。在 30 分钟内,我们收到了大约 150 万条消息。消费者每秒只处理 300 条消息。

我们的下一个方法是对主题进行分区并拥有更多的消费者实例(等于分区数)。这无疑提高了消费者写入速度。现在我的问题是:

  1. 如果我将主题分区设置为 6,但我只有 3 个代理实例,会发生什么情况。哪个代理实例将成为分区 1 到 6 的领导者?

  2. 是否有公式可以确定我需要多少个分区?由于这是我们的测试环境,我们可以使用它并对其进行扩展。我们可能无法在我们的生产环境中做同样的事情。那么如何确定分区大小呢?

最佳答案

分区在您的经纪人之间分配。不可能知道哪个代理将被选为给定分区的领导者——而且它会随着时间而改变。根据您使用的 Kafka 版本和消费者 API,您的消费者可能会也可能不会自行发现分区领导者。使用 SimpleConsumer,您必须自己找到分区领导者,并在您的代码中响应新的领导者选举(而不是由 API 自动处理)。

至于分区的数量——除此之外没有真正的“公式”:你不能拥有比分区更多的并行度。如果你有 4 个分区和 5 个消费者,其中一个消费者会饿死。对于大型主题的分区数,我通常使用 12 或 60 或其倍数之类的数字。在可变数量的消费者之间轻松、干净地划分的东西。

另请注意,您稍后可以更改分区数量,但有一些注意事项。参见 this answer有关注意事项的方式和内容。

关于apache-kafka - Apache Kafka 使用分区扩展主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36945521/

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