9.2 KAFKA Flashcards
9.2 Ferramentas Kafka, NATS Streaming, ActiveMQ, RabbitMQ e WebSphereMQ. (27 cards)
Apache Kafka: Definição
É um middleware, um software que fica entre outros softwares e serve como um barramento corporativo, sendo uma maneira de comunicar uma aplicação com outra.
Dessa forma, ele é um barramento de eventos para possibilitar que haja comunicação assíncrona entre as aplicações.
Streaming de Eventos
É a prática de capturar dados em tempo real de fontes de eventos;
Armazenar esses fluxos de eventos de forma durável para recuperação posterior; manipular, processar e reagir aos fluxos de eventos em tempo real e retrospectivamente;
Rotear os fluxos de eventos para diferentes tecnologias de destino, conforme
necessário;
3 recursos principais
– Para publicar (gravar) e assinar (ler) fluxos de eventos, incluindo importação/exportação contínua de seus dados de outros sistemas;
– Para armazenar fluxos de eventos de forma durável e confiável pelo tempo que desejar;
– Para processar fluxos de eventos à medida que ocorrem ou retrospectivamente;
Fornecimento
– Distribuída – pode haver vários servidores;
– Altamente escalável – É possível ir aumentando a potência do sistema, criando mais servidores;
– Elástica – há a possibilidade de aumentar ou diminuir a potência do sistema;
– Tolerante a falhas e segura – em caso de alguma falha, pode-se recuperar;
Funcionamento: Definição
Kafka é um sistema distribuído que consiste em servidores e clientes que se comunicam através de um protocolo de rede TCP de alto desempenho
Funcionamento: Servidores
Kafka é executado como um cluster de um ou mais servidores que podem abranger vários datacenters ou regiões de nuvem
Funcionamento: Clientes
Permitem escrever aplicativos distribuídos e microsserviços que leem, gravam e processam fluxos de eventos em paralelo, em escala e de maneira tolerante a falhas, mesmo no caso de problemas de rede ou falhas de máquina
Diagrama
Para que as aplicações se comuniquem, o Apache Kafka funciona como uma espinha dorsal
CONCEITOS E TERMINOLOGIAS: produtores
Os produtores são os aplicativos clientes que publicam (gravam) eventos no Kafka e os consumidores são aqueles que assinam (leem e processam) esses eventos;
CONCEITOS E TERMINOLOGIAS: tópicos
São sempre multiprodutores e multiassinantes: um tópico pode ter zero, um ou muitos produtores que gravam eventos nele, bem como zero, um ou muitos consumidores que assinam esses eventos
CONCEITOS E TERMINOLOGIAS: tópicos são particionados
Significa que um tópico é distribuído por vários
“baldes” (“bucket”) localizados em diferentes corretores Kafka
API Admin
gerenciar e inspecionar tópicos, agentes e outros objetos Kafka
APIs do produtor
publicar (gravar) um fluxo de eventos para um ou mais tópicos do Kafka
APIs Consumer
assinar (ler) um ou mais tópicos e processar o fluxo de eventos
produzidos para eles
API Kafka Streams
implementar aplicativos de processamento de fluxo e
microsserviços
API Kafka Connect
criar e executar conectores de importação/exportação de
dados reutilizáveis que consomem (leem) ou produzem (gravam) fluxos de eventos de
e para sistemas e aplicativos externos para poderem se integrar ao Kafka
Conceitos: Tópicos
um fluxo de mensagens pertencentes a uma determinada categoria é chamado tópico. Os dados são armazenados em tópicos. Os tópicos são divididos em partições. Para cada tópico, Kafka mantém um mínimo de uma partição. Cada partição contém mensagens
em uma sequência ordenada imutável. Uma partição é implementada como um conjunto de arquivos de segmentos de tamanhos iguais
Conceitos: Partição
os tópicos podem ter muitas partições, portanto, podem manipular uma quantidade arbitrária de dados
Conceitos: Offset da partição
cada mensagem particionada tem um id de sequência exclusivo chamado offset
Conceitos: Réplicas de partição
as réplicas nada mais são do que backups de uma partição. As réplicas nunca são dados de leitura ou gravação. Eles são usados para evitar a perda de dados;
Brokers: os Brokers são sistemas simples responsáveis por manter os dados publicados. Cada broker pode ter zero ou mais partições por tópico;
Conceitos: Cluster Kafka
Kafka ter mais de um Broker é chamado de cluster Kafka Um cluster
Kafka pode ser expandido sem tempo de inatividade. Esses clusters são usados para gerenciar a persistência e a replicação de dados de mensagens
Conceitos: Produtores
os produtores são os editores de mensagens para um ou mais tópicos
Kafka. Produtores enviam dados para Brokers Kafka. Toda vez que um produtor publica uma mensagem para um broker, o broker simplesmente anexa a mensagem ao último arquivo de
segmento. Na verdade, a mensagem será anexada a uma partição. O produtor também pode enviar mensagens para uma partição de sua escolha
Conceitos: Consumidores
os consumidores leem dados de Brokers. Os consumidores se inscrevem em um ou mais tópicos e consomem mensagens publicadas extraindo dados dos Brokers.
Leader: Leader é o nó responsável por todas as leituras e gravações para a partição especificada. Cada partição tem um servidor atuando como líder
Conceitos: Follower
o nó que segue as instruções do líder é chamado de follower. Se o líder falhar, um dos seguidores se tornará automaticamente o novo líder. Um seguidor atua como consumidor normal, extrai mensagens e atualiza seu próprio armazenamento de dados