Топологии Kafka Streams относительно различных приложений - PullRequest
0 голосов
/ 11 июня 2019

Если я объявлю две топологии, в которых узел-приемник Application1 является узлом-источником Application2, и я разверну их так: сначала я разверну приложение 2, которое должно ожидать данные в его узле-источнике, и после того, как я разверну приложение 1, которое предоставляет данныев его раковине.

Должна ли эта работа или когда две топологии относятся к двум приложениям, тогда я должен передать данные между ними через Apache Kafka Connector?

(документация не относится к топологиям, которые касаются двух приложений или более)

Другими словами данные не передаются из Application1 в Application2, мгновенно записывая запись по записи , но Application2 может считывать данные из своего раздела sourcenode только после того, как Application1 закончит обработку своих записей sourcenode.

Приложение1 Топология

toplogy.addSource(sourceNodeName, "Vectors")
.addProcessor(processorName, () -> new NodeProcessor(stateStoreName), sourceNodeName)
.addStateStore(vectorStoreBuilder, processorName)
.connectProcessorAndStateStores(processorName, stateStoreName)
.addSink(vectorSink,"IncreaseOfC", stringSerializer, stringSerializer, processorName);

Приложение2 Топология

  toplogy.addSource(sourceNodeName, "IncreaseOfC")
  .addProcessor(vectorProcessorName, () -> new NodeProcessor(stateStoreName), sourceNodeName)
  .addStateStore(vectorStoreBuilder, vectorProcessorName)
  .connectProcessorAndStateStores(vectorProcessorName, stateStoreName)
  .addSink(vectorSink,"Outliers", stringSerializer, stringSerializer, vectorProcessorName);
...