Можно ли динамически настраивать конфигурацию num.stream.threads потока kafka во время работы программы? - PullRequest
0 голосов
/ 04 января 2019

Я запускаю несколько экземпляров потока kafka в службе.Я хочу динамически настроить конфигурацию num.stream.threads для управления приоритетом каждого экземпляра во время работы программы.

Я не нашел соответствующего метода в классе KafkaStream.

Интересно, есть ли другой способ?

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Это в настоящее время невозможно.

Если вы хотите изменить количество потоков, вам нужно остановить программу с помощью KafkaStreams#close(), создать новый экземпляр KafkaStreams с обновленной конфигурацией и запустить новуюэкземпляр с KafkaStreams#start().

0 голосов
/ 04 января 2019

невозможно обновить KafkaStreams конфигурацию во время выполнения, когда вы уже ее создали (это относится не только к свойству num.stream.threads, но и к другим).

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

Это может быть достигнуто несколькими вариантами.один из них - обновлять конфиги (например, num.stream.threads) в базе данных для каждого потока потока kafka, и из каждого экземпляра вашего приложения извлекать данные из базы данных (например, каждые 10 минут по выражению cron), и, если обнаружены какие-либо обновления - прекратить существующие изапустите новый KafkaStream, который требует обновленных конфигов.если у вас есть один экземпляр приложения, это может быть достигнуто гораздо проще с помощью REST.

...