Как @kafkalistener в Springboot ведут себя, когда возвращаемый тип void, но внутренне использует завершаемое количество?JAVA

Программисты JAVA общаются здесь
Anonymous
Как @kafkalistener в Springboot ведут себя, когда возвращаемый тип void, но внутренне использует завершаемое количество?

Сообщение Anonymous »

Код: Выделить всё

    @KafkaListener(
topics = "${kafka.consumers.foo.schema.topicName}",
groupId = "${spring.kafka.group-id}",
autoStartup = "${kafka.consumers.foo.autoStartup}",
concurrency = "${kafka.consumers.foo.concurrency}",
containerFactory = "kafkaListenerContainerFactory"
)
public void consumeEvent(final ConsumerRecord events) {
final DomainEvents event = events.value().record;
final int action = event.getAction();

CompletionStage result = switch (action) {
case EventAction.CREATE -> onCreate(event);
case EventAction.UPDATE -> onUpdate(event);
case EventAction.DELETE -> onDelete(event);
default -> completedStage(null);
};

result.whenComplete((unused, ex) -> {
if (ex != null) {
logger.error("Error handling event: {}", ex.getMessage(), ex);
}
});
}
В этом примере я не называю .join () в будущем, так что внутренне это асинхронно, но возвращаемый тип void вместо завершения, который находится в документации Springboots здесь-https://docs.spring.io/spring-kafka/ref ... cevishresh /> Я хочу убедиться, что я обрабатываю /ACK сообщений по порядку. Мне также любопытно, если моя текущая настройка делает это так, что я обрабатываю слишком много событий одновременно, потому что я немедленно возвращаюсь (поскольку это все асинхронное) вместо того, чтобы ждать обработки одного события.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... but-intern

Вернуться в «JAVA»