Kafka KStream — значительная задержка запуска

#java #apache-kafka #apache-kafka-streams

#java #apache-kafka #apache-kafka-streams

Вопрос:

Я столкнулся с проблемой с моим приложением на основе KStreams: оно запускается один раз, и когда я останавливаю / перезапускаю, оно «застревает» и больше не будет развиваться, пока я не удалю различные созданные им разделы. Это происходит не каждый раз, но чаще, чем нет.

Обычно это происходит, когда я копирую новую (er) версию на рабочую виртуальную машину (в той же подсети, что и кластер kafka, по соображениям скорости).

Когда он будет заблокирован, я увижу;

  1. «Подключиться»: org.apache.zookeeper.ZooKeeper - Initiating client connection
  2. «Клиент»: [StreamThread-1] INFO o.a.k.s.p.internals.StreamTask - Creating restoration consumer client
  3. «Ping»: я увижу это, и приложение не завершит работу нормально. Это должно быть уничтожено.

В любом из этих случаев сообщение обычно будет повторяться бесконечно (ну, по крайней мере, на протяжении всего обеда собрания. Т.Е. Слишком долго).

Приложение завершает работу «чисто» до того, как это произойдет.

Что я делаю не так?


Редактировать:

Это самое последнее время — через 20 минут я получил поток ошибок:

org.apache.kafka.common.ошибки.Исключение TimeoutException: пакет, содержащий 101 запись (ы), истек из-за тайм-аута при запросе метаданных у брокеров

затем:

org.apache.kafka.clients.consumer.Исключение CommitFailedException: фиксация не может быть завершена, поскольку группа уже перебалансировала и назначила разделы другому члену

—> что является хорошим трюком, поскольку другого участника нет.

Комментарии:

1. Довольно странно. Что это за версия Kafka?

2. Последняя версия от Confluent.io . 3.0.1 Я верю.

3. Если это Confluent 3.0.1, это означает, что вы используете Kafka 0.10.0.1 — таким образом, смотрите Ответ Guozhang Wang ниже, который может быть проблемой, с которой вы столкнулись. Это может иметь место, особенно если вы работаете в несколько «медленной» среде (ваши прошлые вопросы SO указывают на то, что ранее у вас были такие проблемы).

Ответ №1:

Если вы работаете с Kafka 0.10.0.x, возможно, вы столкнулись с известной проблемой:

https://cwiki.apache.org/confluence/display/KAFKA/KIP-62: Allow consumer to send heartbeats from a background thread

Это было решено в готовящемся выпуске Kafka 0.10.1.0, и я бы рекомендовал вам попробовать новую версию, чтобы увидеть, исчезнет ли эта проблема.

Комментарии:

1. Я обновился до 0.10.1.0. Все еще вижу то же поведение.

2. Хм, это немного сложно, и мы еще не видели подобных сценариев в нашей среде тестирования. Не возражаете ли вы создать JIRA с самыми последними наблюдаемыми трассировками журналов для Apache Kafka, чтобы я мог лучше помочь в его расследовании. issues.apache.org/jira/browse/KAFKA