У меня есть прослушиватель Kafka, который реализует интерфейс прослушивателя подтверждающего сообщения со следующими свойствами:
- ackMode - MANUAL_IMMEDIATE
- idleEventInterval - 3 мин.
При получении сообщения от прослушивателя он решает, следует ли подтверждать конкретную запись с помощью acceptment.acknowledge (), и он работает как положено.
Кроме того, у меня есть сценарий для подтверждения последнего номера смещения (сохранение его в памяти) через X минут (также, если сообщения не поступили).Чтобы преодолеть это требование, я решил использовать ListenerContainerIdleEvent, который запускается каждые 3 минуты в соответствии с моей конфигурацией.
Мои вопросы:
Есть ли способ подтвердить смещение Кафки как триггер для события простоя?Событие idle содержит ссылку на KafkaMessageListenerContainer, но оно инкапсулирует ListenerConsumer, который содержит KafkaConsumer.
синхронизируется ли отправка события ожидания сообщения (с тем же потоком KafkaListenerConsumer)?Исходя из кода, реализацией по умолчанию является SimpleApplicationEventMulticaster, который инициализируется без TaskExecutor, поэтому он вызывает прослушиватель в том же потоке.Вы можете это одобрить?
Я использую spring-kafka 1.3.9.