Примечание к дублирующимся маркерам : I DID проверьте другой вопрос, но он не отвечает на мой конкретный вопрос ниже.
Итак, представьте, что у меня есть тема Kafka на одном сервере с одним разделом. Так что это очень похоже на очередь.
Теперь давайте предположим, что я хочу, чтобы 100 слушателей ожидали получения значений из очереди.
Таким образом, по замыслу, если все 100 потребителей находятся в одной группе, содержимое журнала (или очереди здесь) будет распределено среди потребителей. Таким образом, операция будет закончена в 1/100 времени.
Проблема заключается в том, что прослушиватель Spring Kafka настраивается только с именем темы.
@Service
public class Consumer {
@KafkaListener(topics = "${app.topic}")
public void receive(@Payload String message,
@Headers MessageHeaders headers) {
System.out.println("Received message="+message);
headers.keySet().forEach(key -> System.out.println(key+"->"+headers.get(key)));
}
}
Может показаться, что Кафка породил 100 потребителей для обработки сообщений из «очереди» (журналов).
Как это можно сделать?