Внезапно приложение Kafka Streams (scala) попадает в процесс воссоединения (без очевидной причины) и никогда не завершает его - PullRequest
0 голосов
/ 03 апреля 2020

Я возиться с потоками Кафки, которые обрабатываются K8. Пока все идет более-менее хорошо, но в тестовой среде наблюдается странное поведение:

[Consumer clientId = dbe-livestream-kafka-streams-77185a88-71a7-40cd-8774-aeecc04054e1- StreamThread-1-consumer, groupId = dbe-livestream-kafka-streams] Мы получили назначение [_livestream.dbe.tradingcore.sporteventmappings-table-0, _livestream.dbe.tradingcore.sporteventmappings-table-2, _livestream.dbe.tradingcore .sporteventmappings-table-4, _livestream.dbe.tradingcore.sporteventmappings-table-6, livestream.dbe.tennis.results-table-0, livestream.dbe.tennis.results-table-2, livestream.dbe.tennis.results -table-4, livestream.dbe.tennis.results-table-6, _livestream.dbe.betmanager.sporteventmappings-table-0, _livestream.dbe.betmanager.sporteventmappings-table-2, _livestream.dbe.betmanager.sporteventmappings-table -4, _livestream.dbe.betmanager.sporteventmappings-table-6], который не соответствует нашей текущей подписке Подписаться (_livestream.dbe.betmanager.sporteventmappings-table | _livestre am.dbe.trading_states | _livestream.dbe.tradingcore.sporteventmappings стол | livestream.dbe.tennis.markets | livestream.dbe.tennis.markets стол); вполне вероятно, что подписка изменилась с тех пор, как мы присоединились к группе. Попробуем повторно присоединиться к группе с текущей подпиской

Насколько я понимаю, внутреннее состояние каким-то образом нарушено, а источник истины Stream конфликтует с источником брокера / зоопарка. Такое поведение никогда не прекращается: я просто позволяю ему зависать в течение нескольких дней, будучи занятым другими вещами, и все же это то, о чем сообщается на уровне WARN. Более того: за это время не сообщалось ERROR с.

Я ничего не изменил; не развертывать новые экземпляры; не манипулировал брокерами Kafka любым способом, который может повлиять на вышеупомянутое приложение Kafka Streams. Есть идеи что не так?

1 Ответ

1 голос
/ 03 апреля 2020

Само сообщение об ошибке указывает, что с вашей подпиской что-то не так. Это может произойти, если у вас есть два экземпляра Kafka Streams, использующих один и тот же application.id, но оба не подписаны на некоторые конкретные темы.

В вашем случае подписка не содержит livestream.dbe.tennis.results-table, но соответствующие разделы

Обратите внимание, что Kafka Streams требует, чтобы все экземпляры с одинаковым application.id требовали выполнения точных некоторых Topology и, таким образом, подписывались на точные некоторые темы.

...