Присоединяются ли KTable и KStream к публикации новой записи при обновлении KTable?

Я реализовал в своем приложении соединение KTable и KStream и ожидаю вывода сообщений в следующих случаях;

  1. Новое сообщение в KStream и соответствующая запись в KTable
  2. В KStream пришло обновленное сообщение, и в KTable есть соответствующая запись.
  3. Когда есть обновление в записи KTable

Я наблюдал, что мое приложение выполняет 1 и 2, как ожидалось, но не 3.

Есть ли какой-нибудь совет, который я могу получить, чтобы достичь пункта 3?

Спасибо!

1 ответ

Вы ищете соединение таблицы с таблицей. Это запускает выходное сообщение при поступлении новой записи в любую тему.

Начните с того, что записи, которые вы хотите объединить в разных темах, имеют один и тот же ключ и разделены на разделы. Тогда читайте обе темы как KTables.

      KTable<String, Long> left = ...;
KTable<String, Double> right = ...;

Наконец, выполните объединение обеих таблиц.

      KTable<String, String> joined = left.join(right, (x, y) -> "left=" + x + ", right=" + y);

https://docs.confluent.io/platform/current/streams/javadocs/javadoc/org/apache/kafka/streams/kstream/KTable.html#join-org.apache.kafka.streams.kstream.KTable-org. apache.kafka.streams.kstream.ValueJoiner-

Другие вопросы по тегам