https://www.safaribooksonline.com/library/view/kafka-the-definitive/9781491936153/ch04.html упоминается, что "Пока потребитель отправляет контрольные сообщения через регулярные промежутки времени, предполагается, что он находится в рабочем состоянии и обрабатывает сообщения из своих разделов. , опрос сообщений - это то, что заставляет потребителя отправлять эти контрольные сигналы. Если потребитель перестанет посылать контрольные сигналы на достаточно долгое время, его сеанс истечет по таймауту, и координатор группы сочтет его мертвым и инициирует перебалансировку ".
Аналогичным образом https://kafka.apache.org/090/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaConsumer.html указывает, что «Брокер автоматически обнаруживает неудачные процессы в тестовой группе, используя контрольный сигнал. Механизм. Потребитель будет периодически автоматически проверять связь с кластером, что позволяет кластеру узнать, что он активен. Пока потребитель может это сделать, он считается живым и сохраняет за собой право потреблять данные из назначенных ему разделов. прекращает биение в течение периода времени дольше, чем session.timeout.ms, тогда он будет считаться мертвым, а его разделы будут назначены другому процессу ".
В моем приложении обработка сообщений, полученных от предыдущего опроса (), может занять несколько часов, прежде чем он вызовет другой опрос (). Примечание. Я отключаю автоматическую фиксацию, потому что не всегда знаю, сколько времени потребуется для обработки всех предыдущих сообщений.
а) Приведет ли это к тому, что координатор группы посчитает потребителя мертвым или бездействующим?
б) Есть ли другие способы отправки контрольных сообщений координатору группы, чтобы поддерживать сеанс в активном состоянии?
c) Будет ли здесь session.timeout.ms как-то влиять на поддержание активности / активности потребителя?