KStream автоматически создает темы в kafka 2.2? - PullRequest
1 голос
/ 23 апреля 2019

Javadocs KStream / TopicNameExtractor указывают, что при использовании to(TopicNameExctractor extractor) эти темы не будут создаваться автоматически и вместо этого должны существовать. Я, однако, вижу иначе с 2.2.0. Документы не обновлены? Можно ли на это полагаться при> = 2.2.0?

Здесь указан Javadoc: https://kafka.apache.org/22/javadoc/org/apache/kafka/streams/processor/TopicNameExtractor.html

Я проверил примечания к выпуску здесь и не увидел никаких заметных изменений: https://www.apache.org/dist/kafka/2.2.0/RELEASE_NOTES.html

1 Ответ

1 голос
/ 24 апреля 2019

Вы должны различать два случая: (1) Kafka Streams создает темы, или (2) у вас установлено auto.create.topics.enable=true на посредниках.

Документы охватывают первый случай, т. Е. КафкуStreams не будет выдавать запрос CreateTopic брокерам.Следовательно, документы являются правильными.

Однако, если вы установили auto.create.topics.enable=true для брокеров, брокер создаст несуществующую тему, если вы попытаетесь читать или писать из / в нее, или даже еслиВы запрашиваете только метаданные (например, количество разделов).Я предполагаю, что вы попали в этот случай.

Кстати: не рекомендуется включать автоматическое создание тем на брокерах, потому что это приведет к созданию тем, которые, скорее всего, приведут к нежелательному количеству разделов, и это окажет семантическое влияние на мэра, еслиВы измените количество разделов позже.

...