В соединениях потоков Kafka будут ли вторые поля объединения go стоять в очереди на ожидание соединения первых полей в окне? - PullRequest
3 голосов
/ 10 января 2020

Допустим, у нас есть два потока Кафки, где A потока 1 должен соединиться с A потока 2. А B потока 1 должен соединиться с B потока 2. Пример примерно так:

A1 -> A2
B1 -> B2

Где '->' обозначает соединение, а соответствующий номер с буквой обозначает номер потока.

Теперь давайте рассмотрим пример ниже:

Поток 1 --- Поток 2 --- Присоединиться
A
B
B (B, B)

Теперь мой вопрос: (B, B) Соединение произойдет, или оно сначала будет ждать прибытия А потока 1, так что A1 -> A2 может произойти первым?

1 Ответ

1 голос
/ 10 января 2020

Согласно документам Confluent:

В Kstreams есть три объединения: 1. Внутреннее объединение 2. Соединение слева 3. Соединение справа

Sr.no. -> LeftStream1 -> RightStream -> Внутреннее соединение -> левое соединение -> Внешнее соединение

  1. -> null -> A -> null -> null -> null

  2. -> B -> ноль -> [B, A] -> [B, A] -> [B, A]

  3. -> ноль - > B -> [B, A], [B, B] | -> [B, A], [B, B] -> [B, A], [B, B]

Соединение между [B, A] произойдет первым поскольку правый поток уже имеет существующее значение и когда значение входит в левый поток (как указано в ст. № 2), он выполнит все три соединения.

...