когда брокер недоступен? В таком случае на poll() возвращается пустая коллекция рекордов и в лог пишется ворнинг. Но пустая коллекция возможна и когда нет новых сообщений, как отличить эти два кейса?
А при вызове метода пол никакие таймеры на таймаут ставить нельзя? Как обычно когда web-request формируешь, можно указать время ожидания. Если оно истекло, то можно получить exception и с ним работать.
Там API по умолчанию принимает duration: https://kafka.apache.org/26/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll-java.time.Duration- но, когда ответ получен, я не знаю как отличить кейс с недоступным брокером, от кейса с пустым ответом. В списке исключений нет ничего похожего, да он его и не бросает, я бы сразу это поймал.
если duration превышен, должен быть экзепшн по таймауту. Но то есть у тебя соединение оборвалось без подтверждения
Это предположение, или где-то в документации такое есть? У меня как раз вызов poll() обернут в try/catch и нет исключения. С точки зрения проектирования API, действительно, это было бы ожидаемо, если оно бы было.
Это только предположение
Обсуждают сегодня