Início
topics
O que é Apache Kafka?
O Apache Kafka (Kafka) é uma plataforma de streaming distribuída de software livre que permite (entre outras coisas) o desenvolvimento de aplicativos em tempo real orientados a eventos. Então, o que isso significa?
Atualmente, bilhões de origens de dados geram continuamente fluxos de registros de dados, incluindo fluxos eventos. Um evento é um registro digital de uma ação que aconteceu e o horário em que aconteceu. Normalmente, um evento é uma ação que promove outra ação como parte de um processo. Um cliente fazendo um pedido, escolhendo um assento em um voo ou enviando um formulário de inscrição são todos exemplos de eventos. Um evento não precisa envolver uma pessoa, por exemplo, um relatório da temperatura de um termostato conectado em um determinado horário também é um evento.
Esses fluxos oferecem oportunidades para aplicativos que respondem a dados ou eventos em tempo real. Uma plataforma de fluxo permite que os desenvolvedores construam aplicativos que consumem e processam continuamente esses fluxos em velocidades extremamente altas, com alto nível de fidelidade e precisão com base na ordem correta de sua ocorrência.
O LinkedIn desenvolveu o Kafka em 2011 como um broker de mensagens de alto rendimento para seu próprio uso e, em seguida, o transformou em um software livre e doou para a Apache Software Foundation (link externo à ibm.com). Atualmente, o Kafka evoluiu para a plataforma de fluxo mais utilizada, capaz de ingerir e processar trilhões de registros por dia sem qualquer atraso de desempenho perceptível à medida que os volumes aumentam. Organizações da Fortune 500, como Target, Microsoft, AirBnB e Netflix, contam com a Kafka para oferecer experiências em tempo real e acionadas por dados a seus clientes.
O vídeo a seguir fornece informações adicionais sobre o Kafka (9:10):
A Kafka tem três recursos principais:
Os desenvolvedores podem utilizar esses recursos do Kafka por meio de quatro APIs:
O Kafka é uma plataforma distribuída que é executada como um cluster altamente disponível e tolerante a falhas que pode abranger vários servidores e até mesmo vários data centers. Os tópicos do Kafka são particionados e replicados de tal forma que eles podem aumentar a escala para atender altos volumes de consumidores simultâneos sem impactar o desempenho. Como resultado, de acordo com Apache.org, "o Kafka terá o mesmo desempenho quer você tenha 50 KB ou 50 TB de armazenamento persistente no servidor."
O Kafka é usado principalmente para criar dois tipos de aplicativos:
RabbitMQ é um broker de mensagens de software livre muito popular, um tipo de middleware que permite que aplicativos, sistemas e serviços se comuniquem uns com os outros ao converter protocolos de mensagens entre eles.
Como Kafka começou como uma espécie de broker de mensagens (e pode, em teoria, ainda ser usado como um) e como o RabbitMQ suporta um modelo de publicação/assinatura de mensagens (entre outros), Kafka e RabbitMQ são frequentemente comparados como alternativas. Mas as comparações não são realmente práticas e muitas vezes entram em detalhes técnicos que não vêm ao caso ao escolher entre os dois. Por exemplo, que os tópicos Kafka podem ter múltiplos assinantes, enquanto cada mensagem RabbitMQ pode ter apenas um; ou que os tópicos Kafka são duráveis, enquanto as mensagens RabbitMQ são apagadas uma vez consumidas.
O resultado é:
O Kafka é usado frequentemente com várias outras tecnologias Apache como parte de um processamento de fluxos maiores, arquitetura acionada por eventos ou solução de análise de Big Data.
O Apache Spark é um mecanismo de análise para processamento de dados em grande escala. É possível usar o Spark para executar análise em fluxos fornecidos pelo Apache Kafka e produzir aplicativos de processamento de fluxo em tempo real, como a análise de sequência de cliques supramencionada.
O Apache NiFi é um sistema de gerenciamento de fluxo de dados com uma interface visual de arrastar e soltar. Como o NiFi pode ser executado como um produtor do Kafka e um consumidor do Kafta, ele é uma ferramenta ideal para gerenciar os desafios de fluxo de dados que o Kafka não pode enfrentar.
O Apache Flink é um mecanismo para executar cálculos em fluxos de eventos em escala, com velocidade consistentemente alta e baixa latência. O Flink pode ingerir fluxos como um consumidor do Kafka, executar operações baseadas nesses fluxos em tempo real e publicar os resultados no Kafka ou em outro aplicativo.
O Apache Hadoop é um framework de software distribuído que permite armazenar significativas quantidades de dados em um cluster de computadores para uso em análise de Big Data, machine learning, mineração de dados e outros aplicativos acionados por dados que processam dados estruturados e não estruturados. O Kafka é frequentemente usado para criar um pipeline de dados de fluxo em tempo real para um cluster Hadoop.
Desenvolva, modernize e gerencie aplicativos de maneira segura em qualquer cloud com confiança.
A automação impulsionada por IA pode ajudar sua empresa, dos fluxos de trabalho de negócios às operações de TI.
Conecte aplicativos, serviços e dados com IBM Cloud Pak for Integration, a plataforma de integração mais abrangente do mercado.