Você está na página 1de 22

01/03/2021 Gustavo Sabino - gsabino@gmail.

com
Tópicos

● Arquitetura do Kafka
● Conexão via Apache Camel
● Conexão via Spring Kafka
● Testes automatizados
● Ambientes internos
O que é o Kafka

Apache Kafka é uma plataforma open-source de


processamento de streams desenvolvida pela Apache
Software Foundation, escrita em Scala e Java. O projeto tem
como objetivo fornecer uma plataforma unificada, de alta
capacidade e baixa latência para tratamento de dados em
tempo real.
Arquitetura do Kafka
Kafka - Conceitos básicos

● Produtor
● Broker
● Consumidor
● Cluster
● Tópico
● Partição
● Offset
● Grupos de consumidores
● Zookeeper
Kafka - Conceitos básicos

Produtor - É uma aplicação que envia mensagens. Por analogia, podem ser desde uma
string simples até um objeto complexo, como um dado pequeno ou médio. Seja como
for, para o Kafka, é apenas uma simples matriz de bytes.

Broker - É o servidor Kafka. Em outras palavras, o Kafka Broker atua como um


intermediador de mensagens entre o Producer e o Consumer. Como não interagem
diretamente, usam o Kafka Broker para intermediar essa troca de mensagens.

Consumidor - É uma aplicação que recebe dados. Por isso, Consumers são os
destinatários. Mas, lembre-se: Producers só enviam dados ao servidor. E qualquer
interessado nesses dados pode ser um Consumer, que pode enviá-los por qualquer
Producer, desde que tenha permissão para lê-os.
Kafka - Conceitos básicos

Cluster - É um grupo de computadores executando uma instância do Kafka Broker.

Tópico - É onde o Kafka armazena o conjunto de informações recebidas pelos


produtores.

Partição - É uma subdivisão das mensagens dentro de um tópico. Elas permitem que o
Kafka escale aumentando a capacidade de processamento em paralelo.
Kafka - Conceitos básicos

Offset - É um número de sequência de uma mensagem em uma partição, que é


atribuído conforme as mensagens chegam e se tornam imutáveis.

Grupos de consumidores - Uma poderosa abstração proposta pelo Apache Kafka


relacionada aos consumidores é a definição de grupo de consumidores (Consumer
Groups). O consumer group é a junção de dois conceitos de sistemas de mensageria:
enfileiramento e publish-subscribe.

Zookeeper - fornece recursos de gerenciamento de configuração, sincronização


distribuída, participação em grupo e recebimento de eleição de líder.
+
Exemplo de implementação
Kafka Apache Camel

https://bitbucket.org/ciandt_it/archetype-javaee/src/master/
+
Exemplo de implementação
Spring Kafka

https://bitbucket.org/gsabino_cit/archetype-spring-batch/src/master/
Testes automatizados
Exemplo de implementação
Testes com Kafka Apache Camel

https://bitbucket.org/ciandt_it/archetype-javaee/src/master/
Exemplo de implementação de
Testas com Spring Kafka

https://bitbucket.org/gsabino_cit/archetype-spring-batch/src/master/
Ambientes internos
Criando um tópico no ambiente
interno

kubectl exec -it kafka-client -n kafka -- /bin/bash


root@kafka-client:/# cd /usr/bin
root@kafka-client:/usr/bin# kafka-topics --zookeeper confluentinc-kafka-cp-zookeeper:2181
--topic gpca-corp-transac-proposta --create --partitions 1 --replication-factor 3 --if-not-exists
Configuração de ambiente local

https://bitbucket.org/ciandt_it/bradesco_infrastructure/src/master/kafka/
Instalando o Kafkacat

sudo apt-get update


sudo apt-get install kafkacat
Validando o ambiente

Conectando um publicador com o Kafkacat

kafkacat -P -b localhost:9092 -t test-kafka

Conectando um consumidor com o Kafkacat

kafkacat -C -b localhost9092 -t test-kafka


Agora, bora subir a aplicação!!!
Thank You

Você também pode gostar