【发布时间】:2016-09-27 11:20:10
【问题描述】:
我正在寻找有关该主题的一些说明。 在 Kafka 文档中,我发现以下内容:
Kafka 仅提供分区内消息的总顺序,而不是主题中不同分区之间的总顺序。对于大多数应用程序来说,按分区排序与按键分区数据的能力相结合就足够了。但是,如果您需要对消息进行总排序,这可以通过只有一个分区的主题来实现,尽管这意味着每个消费者组只有一个消费者进程。
所以这是我的问题:
这是否意味着如果我希望有超过 1 个消费者(来自同一组)从一个主题读取我需要有超过 1 个分区?
这是否意味着我需要与同一组的消费者数量相同的分区数量?
一个分区可以读取多少个消费者?
还有一些关于 API 的键和分区之间关系的问题。我只查看了 .net API(尤其是来自 MS 的 API),但看起来像是模仿 Java API。 我看到使用生产者向主题发送消息时有一个关键参数。但是当消费者从一个主题中读取时,会有一个分区号。
- 分区如何编号?从 0 还是 1 开始?
- 键和分区之间究竟有什么关系? 据我了解,键上的某些功能将确定一个分区。对吗?
- 如果我在一个主题中有 2 个分区,并且希望某些特定消息转到一个分区,而其他消息转到另一个分区,我应该为一个特定分区使用特定键,而将其余的用于另一个分区?
- 如果我有 3 个分区和一种类型的消息到一个特定的分区,其余的到另外 2 个呢?
- 一般而言,我如何将消息发送到特定分区以便让消费者知道从哪里读取? 还是我最好处理多个主题?
提前致谢。
【问题讨论】:
标签: apache-kafka kafka-consumer-api kafka-producer-api