Как получить сообщение из темы вывода KStream - PullRequest
2 голосов
/ 31 мая 2019

Я пишу в тему вывода, используя KStream.to ("outputtopic"); В документах apache упоминалось, что он будет автоматически создавать тему, переданную в (). Как потреблять сообщения из этой темы?

Могу ли я использовать consumer.subscribe () для сообщений вывода и опроса?

        KStreamBuilder builder = new KStreamBuilder();

        builder.stream(topic).filterNot((k, v) -> {
            v.toString().contains(tid);
        }).to("outputtopic");

        streams = new KafkaStreams(builder, config);
        streams.start();

        consumer.subscribe(Arrays.asList("outputtopic"));

1 Ответ

1 голос
/ 02 июня 2019
builder.stream(topic).filterNot((k, v) -> {
            v.toString().contains(tid);
        }) // i.e., without the last `to()` method

Результатом этой цепочки методов является KStream.Если ваш вопрос о том, как продолжить работу с этим результирующим KStream из того же приложения , то выполните следующие действия:

KStream<..., ...> myStream = builder.stream(topic).filterNot((k, v) -> {
            v.toString().contains(tid);
        });
myStream.to("outputtopic");

// Then continue to use the `myStream` instance for further work.
myStream.map(....).aggregate(...);

Если ваш вопрос о том, как прочитатьвыводить тему из другого приложения , тогда вы можете сделать это, прочитав эту тему из другого приложения Kafka Streams, из KSQL, от простого потребителя Kafka (подписавшись) и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...