AgilizaTI
AgilizaTI
Sep 2, 2018 · 3 min read

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.

www.agilizati.com.br

Kafka: tutorial iniciante — como enviar e consumir mensagem

Se você nunca mexeu com kafka, este tutorial vai lhe mostrar como usar uma imagem do docker e enviar/consumir mensagens, via linha de comando.

    AgilizaTI

    Written by

    AgilizaTI

    Kafka: tutorial iniciante — como enviar e consumir mensagem

    Se você nunca mexeu com kafka, este tutorial vai lhe mostrar como usar uma imagem do docker e enviar/consumir mensagens, via linha de comando.

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade