我正在学习Kafka,并想知道如何在消费主题消息时指定分区。
我找到了几张像这样的图片:
这意味着一个消费者可以从多个分区中消费消息,但每个分区只能被单个消费者(在消费者组内)读取。
此外,我看了几个消费者的例子,它们长得像这样:
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "consumer-tutorial");
props.put("key.deserializer", StringDeserializer.class.getName());
props.put("value.deserializer", StringDeserializer.class.getName());
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
并且:
订阅:
consumer.subscribe(Arrays.asList(“foo”, “bar”));
投票
try {
while (running) {
ConsumerRecords<String, String> records = consumer.poll(1000);
for (ConsumerRecord<String, String> record : records)
System.out.println(record.offset() + ": " + record.value());
}
} finally {
consumer.close();
}
这是如何运作的?我将从哪个分区读取消息?这是如何运作的?我将从哪个分区读取消息?