Как присоединиться к Kafka KStream в Kstream of 3 Topics

У меня есть 3 темы: «НАЧАТЬ», «ПРОДОЛЖИТЬ» и «КОНЕЦ». Эти три темы необходимо объединить в одно сообщение темы, где я могу получить модель результата, которая представляет собой комбинацию трех сообщений темы.

Есть много примеров, которые показывают, как объединить 2 темы. Если кто-нибудь может дать мне пример или намек на то, как я могу присоединиться к этим 3 темам.


person Anthony    schedule 21.03.2018    source источник
comment
Немного непонятно, чего вы пытаетесь достичь. У всех сообщений есть идентификатор, который вы хотите использовать для присоединения? Будет ли в каждой теме одно сообщение, к которому нужно присоединиться, или их может быть несколько (например, из ПРОДОЛЖИТЬ) темы? Какова временная связь между этими событиями?   -  person Matthias J. Sax    schedule 21.03.2018


Ответы (2)


До функции совместной группы вам нужно будет сначала объединить первые 2 темы в промежуточную тему, а затем соединить ее с третьей темой.

Пример того, как это сделать, см. в разделе когруппа KIP.

person Frederic A.    schedule 21.03.2018

Я зависит от того, какое соединение вы хотите сделать. Как вы говорите, у вас есть KStream, вы должны выполнить два последовательных оконных соединения:

KStream stream1 = builder.stream(...);
KStream stream2 = builder.stream(...);
KStream stream3 = builder.stream(...);

KStream joined = stream1.join(stream2, ...)
                        .join(stream3, ...);
person Matthias J. Sax    schedule 21.03.2018