Junior — Middle
105
Wie sollten Verbraucher in einer Gruppe effektiv zugewiesen werden, um die Last auf die drei Partitionen eines Themas zu verteilen?
Unternehmen wurden gefragt
Antwort von AI
sobes.tech KI
Для эффективной балансировки нагрузки по трем разделам (partition) одного топика в Kafka следует создать группу потребителей (consumer group) с количеством потребителей, не превышающим количество разделов. В вашем случае оптимально создать ровно три потребителя в группе, чтобы каждый потребитель обрабатывал один раздел. Если потребителей меньше, некоторые разделы будут не обслуживаться; если больше — некоторые потребители останутся без работы.
Пример настройки в Java:
Properties props = new Properties();
props.put("group.id", "my-group");
props.put("bootstrap.servers", "localhost:9092");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
consumer.subscribe(Collections.singletonList("my-topic"));
Запустите три экземпляра такого потребителя с одинаковым group.id — Kafka автоматически распределит три раздела между ними, обеспечивая балансировку нагрузки.