Como conectar Kafka com Camel Spring Boot

Sep 10 2020

Que opções tenho para conectar o Kafka ao Spring Boot Camel?

Estou executando o ActiveMQ Artemis e Camel para fazer rotas JMS / MQTT e REST de / para clientes. Gostaria de adicionar Kafka a essa dupla para transmitir / trocar dados (vídeo + áudio, arquivos / texto).

Até agora eu baixei o Kafka Confluent Platform (versão gratuita) e estou testando o que eles oferecem. Na Confluent Platform, vejo que é possível adicionar conectores como "plug-ins". Presumo que assim posso adicionar o conector Camel, mas isso me parece uma solução ruim porque gostaria de brincar com as rotas e ver o que há por baixo do capô e aqui não vejo que seja possível, ou estou errado?

Outra opção que estou pensando é fazer o download do Apache Kafka, Zookeeper, adicionar a dependência do Kafka Spring Boot ao Camel pom.xmle fazer rotas de Camel como nos exemplos aqui . Estou no caminho certo?

Respostas

burki Sep 10 2020 at 21:39

Kafka-Broker

Se você quiser brincar, eu recomendo instalar o Kafka (ele também traz o Zookeeper) em sua máquina de desenvolvimento . É mais fácil usar um gerenciador de pacotes para o seu sistema operacional. Por exemplo, se você trabalha no Windows, pode instalar o Scoop .

Então você pode instalar a versão atual do Kafka simples (plataforma não confluente) com uma linha:

scoop install kafka

Após a instalação, você pode iniciar primeiro o zookeeper e depois fazer o kafka com os scripts bat / sh fornecidos na pasta bin.

Camelo

Em seu projeto Camel (não importa se Spring Boot ou não), você só precisa adicionar camel-kafka às suas dependências.

O URI do endpoint da rota para um corretor Kafka em execução em sua máquina local é

kafka:[topic-name]?brokers=localhost:9092

Você pode usar esses URIs para consumidor ( from("kafka:...")) ou produtor ( .to("kafka:..."))