
Chegou a hora de inicar no Kafka.
Cada vez mais, nosso mundo está precisando de informações em Real-Time(RT), ou Near Real-Time (NRT), e a plataforma da Apache, chamada de Kafka, vem para ser a estrada onde esses milhares de dados precisam trafegar muito rapidamente.
A plataforma Apache Kafka traz muitas vantagens para este contexto de integração RT/NRT como, por exemplo, possibilidade de alto throughput(100k/seg) e de “Replay” das informações já trafegadas por um determinado tópico, a partir de um momento desejado pelo cliente. Pra exemplificar, é possível um consumidor totalmente novo se conectar a um tópico e pedir TUDO que este tópico recebeu até hoje.
Na nova tendência de Arquitetura Orientada a Eventos(EDA — Event-Driven Architeture), o Kafka se torna realmente uma peça fundamental no tráfego das informações/notificações entre os mais variados tipos de consumidores/produtores desses dados.
Neste tutorial básico sobre Kafka, vamos mostrar como:
1. Levantar um container docker Kafka simples, sem customização.
2. Criar um tópico.
3. Criar um consumidor deste tópico.
4. Criar um produtor de mensagens.
1. Execute o seguinte comando para subir o kafka, usando a imagem do docker. Ao final deste comando, se tudo deu certo, já estaremos no prompt de dentro do ambiente do Kafka.
sudo docker run --rm -it -d -p 2181:2181 -p 9092:9092 -p 3030:3030 -p 8081:8081 -p 8082:8082 -p 8083:8083 -e ADV_HOST=127.0.0.1 --name meukafka landoop/fast-data-dev
Após, isso, execute o seguinte comando para entrar na maquina do kafka:
sudo docker exec -it meukafka bash
Para ter certeza que está tudo correto, execute kafka-topics --zookeeper 127.0.0.1:2181 --list, que deve retornar alguns tópicos que já vem na imagem do kafka.
Beleza, mas e aí, vamos enviar uma mensagem para o broker?
Vamos, mas primeiro temos que criar um tópico para onde vamos enviar nossas mensagens. Um tópico pode, e deve, ter várias partições e réplicas definidas em sua configuração de acordo com a necessidade de cada caso. Neste tutorial, não vamos explorar isso, pois o objetivo é dar somente um primeiro passo pras pessoas que nunca conectaram e nem usaram um Kafka.
2. Voltando ao passo a passo, para criar o tópico "topicoAgilizati", execute kafka-topics --zookeeper 127.0.0.1:2181 --create --topic topicoAgilizati --partitions 1 --replication-factor 1. Se tudo correu bem, você enxergou a seguinte mensagem: Created topic “topicoAgilizati”.
Com nosso tópico criado, vamos criar primeiro um consumer pra receber as mensagens que enviaremos para ele depois.
3. Para criar nosso consumidor, vamos usar o comando kafka-console-consumer --bootstrap-server 127.0.0.1:9092 --topic topicoAgilizati
Então, estamos com o Consumer criado e aguardando novas mensagens serem enviadas para nosso tópico de nome “topicoAgilizati”.
Chegou a hora de criar o nosso producer.
Para isso, deixe o terminal atual como está, pois o consumidor está aguardando as mensagens serem enviadas, para consumi-las.
4. Então abra uma nova janela do seu terminal e execute o comando novamente pra entrar no container do kafka:
sudo docker exec -it meukafka bash
Depois disso, para criar o produtor de mensagens para o tópico, execute:
kafka-console-producer --broker-list 127.0.0.1:9092 --topic topicoAgilizati
Agora é só digitar a mensagem que você quiser, por exemplo "teste de mensagem kafka", teclar ENTER e verificar a mesagem sendo mostrada na janela onde você deixou o consumidor ligado.
Bom pessoal, é isto. Como falei, é um tutorial muito básico mesmo, mas que já dá um start em quem precisa começar trabalhar com Kafka e não sabia nem o que era.
Em breve faremos um novo tutorial, conectando um sistema Java ou um Node-RED na fila pra ler algum grande volume de dados (IoT ou Tweeter).
Obrigado e sigam-nos no twitter e no linkedIn.


