Apache kafka 主题、分区和键
我想澄清一下这个问题。 在卡夫卡文献中,我发现了以下内容: Kafka只提供分区内消息的总顺序,而不是主题中不同分区之间的顺序。对于大多数应用程序来说,每个分区的顺序加上按键对数据进行分区的能力就足够了。但是,如果您需要对消息进行总排序,则可以使用只有一个分区的主题来实现,尽管这意味着每个使用者组只有一个使用者进程 下面是我的问题:Apache kafka 主题、分区和键,apache-kafka,kafka-consumer-api,kafka-producer-api,Apache Kafka,Kafka Consumer Api,Kafka Producer Api,我想澄清一下这个问题。 在卡夫卡文献中,我发现了以下内容: Kafka只提供分区内消息的总顺序,而不是主题中不同分区之间的顺序。对于大多数应用程序来说,每个分区的顺序加上按键对数据进行分区的能力就足够了。但是,如果您需要对消息进行总排序,则可以使用只有一个分区的主题来实现,尽管这意味着每个使用者组只有一个使用者进程 下面是我的问题: 这是否意味着如果我想让多个消费者(来自同一组)阅读一个主题,我需要多个分区 这是否意味着我需要与同一组的使用者数量相同的分区数量 一个分区可以读取多少用户 还有一些
- 每个分区仅由组中的一个使用者使用
- 组中的一个使用者可以使用多个分区
- 组中的使用者进程数必须是发送到哪个分区的消息最好的规则。感谢您解释密钥和分区号之间的区别。这让我在试用卡夫卡控制台制作工具时感到很不舒服。消息并没有出现在我以为已经指定了键值的分区中。两个键可以有相同的分区吗?如何使用不同的键将消息存储在同一分区中?当键和分区都存在分区记录时,会发生什么情况?它将根据分区号或按键保存记录?
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; }