9.2 KAFKA Flashcards
9.2 Ferramentas Kafka, NATS Streaming, ActiveMQ, RabbitMQ e WebSphereMQ.
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