Streaming de mensagens de um Kafka Cluster para outro
Atualmente, estou tentando, facilmente, transmitir mensagens de um Tópico em um cluster Kafka para outro (Remoto -> Cluster Local).
A idéia é usar o Kafka-Streams imediatamente, para que não seja necessário replicar as mensagens reais no cluster local, mas apenas obter os "resultados" do processamento do Kafka-Streams nos nossos Tópicos do Kafka.
Então, digamos que a demonstração do WordCount esteja em uma instância Kafka em outro PC que não a minha. Eu também tenho uma Instância Kafka em execução na minha máquina local.
Agora, quero permitir que a demonstração do WordCount seja executada no tópico ("remoto") que contém as frases em que as palavras devem ser contadas.
A contagem, no entanto, deve ser gravada em um tópico no meu sistema local, em vez de um tópico "remoto".
É algo possível com a API Kafka-Streams?
Por exemplo.
val builder: KStreamBuilder = new KStreamBuilder(remote-streamConfig, local-streamconfig)
val textLines: KStream[String, String] = builder.stream("remote-input-topic",
remote-streamConfig)
val wordCounts: KTable[String, Long] = textLines
.flatMapValues(textLine => textLine.toLowerCase.split("\\W+").toIterable.asJava)
.groupBy((_, word) => word)
.count("word-counts")
wordCounts.to(stringSerde, longSerde, "local-output-topic", local-streamconfig)
val streams: KafkaStreams = new KafkaStreams(builder)
streams.start()
Muito obrigado
- Tim