Junior — Middle
Bir konu içindeki üç bölüme yük dengelemesi yapmak için tüketicilerin bir grupta nasıl etkili bir şekilde atanması gerekir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Для эффективной балансировки нагрузки по трем разделам (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 автоматически распределит три раздела между ними, обеспечивая балансировку нагрузки.