Есть ли встроенная функция в потоки Kafka, которая позволяет динамически подключать один входной поток к нескольким выходным потокам? KStream.branch
позволяет разветвляться на основе истинных/ложных предикатов, но это не совсем то, что я хочу. Я бы хотел, чтобы каждый входящий журнал определял тему, в которую он будет транслироваться во время выполнения, например, журнал {"date": "2017-01-01"}
будет транслироваться по теме topic-2017-01-01
, а журнал {"date": "2017-01-02"}
будет транслироваться по теме topic-2017-01-02
.Динамическое подключение входного потока Kafka к нескольким выходным потокам
Я мог бы позвонить forEach
в поток, а затем написать продюсеру Kafka, но это не кажется очень изящным. Есть ли лучший способ сделать это в рамках Streams?
Что вы подразумеваете под «на основе строки» - btw: 'KStream.branch' принимает несколько предикатов (ваш вопрос указывает, что вы пропустили это). Поэтому 'branch' должен позволять делать то, что вы хотите. Может быть, вы можете привести пример данных? –
Я должен быть более ясным. Я знаю, что он принимает несколько предикатов - это было бы прекрасным решением, если бы у меня было фиксированное количество тем, которые я хотел бы передать. Однако то, что я хочу сделать, это написать на темы с именем 'foo- {date}'. – kellanburket