Можно ли определить топологию декларативным способом (скажем, в Json или чем-то еще), который не требует кодификации топологии?
KStreams DSLдекларативный, но я предполагаю, что вы имеете в виду нечто иное, чем DSL?
Если так, ответ - нет. Однако вы можете посмотреть на KSQL.
Возможно липерезагрузить существующий Kafka Stream, чтобы использовать новое определение топологии Kafka Streams?
Вы имеете в виду, может ли существующее приложение Kafka Streams перезагрузить новое определение топологии обработки?Если да, то ответ «Нет». В таких случаях вы развернете новую версию своего приложения.
В зависимости от того, как определены старые / новые топологии, может потребоваться простое обновление вашего приложения (примерно: если изменение топологии было минимальным), но, вероятно, вам нужно будет развернуть новое приложение отдельно, а затем, после проверки нового, вывести из эксплуатации старое приложение.
Примечание: KStreams - это библиотека Java иПо замыслу, не включает в себя функциональность для управления / управления Java-приложениями, использующими библиотеку KStreams.
Для упомянутой выше # 2, предоставляет ли Kafka Streams DSL способ «перезагрузить» новые определения топологиис помощью внешнего триггера или системного вызова?
Нет.