Порядок потоков для групп потребителей kafka различается при каждом запуске - PullRequest
0 голосов
/ 07 мая 2019

Я использую kafka-streams 2.0.1 в контексте Spring Boot 2.1.4. CONSUMER-ID имеет следующий шаблон (автоматически сгенерированные bei kafka-streams !?):

<client.id>-StreamThread-<threadSequenceNumber>-<consumer|producer|restore-consumer> (source: StreamsConfig.java)

Я выяснил, что значение: threadSequenceNumber при запуске моего приложения не всегда одно и то же, потому что у меня есть два StreamThread, предоставленные Beans. Я уже пытался навязать правильный порядок с пометкой компонента с @DependsOn.

Каждый раз, когда threadSequenceNumber изменяется, последние смещения теряются. У кого-нибудь есть идеи, как заставить навести правильный порядок?

1 Ответ

1 голос
/ 08 мая 2019

Ваше наблюдение верно. Порядковый номер потока создается Kafka Streams. Spring Boot ничего не может с этим поделать.

Обратите внимание, что это поведение изменится в следующей версии 2.3: https://issues.apache.org/jira/browse/KAFKA-8285

Каждый раз, когда threadSequenceNumber изменяется, последние смещения теряются.

Почему это? Смещения фиксируются на основе application.id.

...