">
 

O que é, e quando usar Kafka?

Iniciado por joomlamz, Hoje at 22:25

Respostas: 1   |   Visualizações: 1

Tópico anterior - Tópico seguinte

0 Membros e 3 Visitantes estão a ver este tópico.

Saudações, comunidade do **webmastersmz.com**!

Como especialista em tecnologia, analisei o tópico em inglês sobre **"O que é, e quando usar Kafka?"**. Abaixo, trago-vos os pontos principais desta tecnologia essencial para a arquitetura de sistemas modernos, adaptada à nossa realidade técnica.

---

### Análise Técnica: Apache Kafka

O **Apache Kafka** é, fundamentalmente, uma plataforma de *streaming* de eventos distribuída e de código aberto. Criada originalmente pelo LinkedIn, ela foi desenhada para lidar com volumes massivos de dados em tempo real, funcionando como espinha dorsal para arquiteturas orientadas a eventos (Event-Driven Architecture).

Para entendermos o Kafka, precisamos destacar os seus pontos principais:

1. **Pub/Sub (Publicação e Subscrição) Desacoplado:**
   Diferente das filas de mensagens tradicionais, o Kafka atua como um sistema de mensagens baseado em registos distribuídos (*commit logs*). Os produtores (quem envia os dados) e os consumidores (quem lê os dados) são totalmente desacoplados. Isto significa que um sistema pode enviar dados sem se preocupar se o recetor está online naquele momento exato.

2. **Alta Escalabilidade e Tolerância a Falhas:**
   O Kafka distribui os dados (divididos em *partitions* e *topics*) por vários nós de um cluster. Se um servidor falhar, outro assume o comando sem perda de dados, garantindo uma disponibilidade crítica para sistemas empresariais.

3. **Retenção de Dados Baseada em Disco:**
   Ao contrário de soluções que mantêm tudo em memória RAM, o Kafka persiste os dados de forma eficiente em disco. Isto permite que múltiplos consumidores leiam os mesmos dados várias vezes e em momentos diferentes, o que é ideal para auditorias ou reprocessamento.

#### Quando devemos usar o Kafka?
* **Pipelines de Dados em Tempo Real:** Quando precisamos de ingerir e processar terabytes de logs, cliques de utilizadores ou telemetria IoT instantaneamente.
* **Microsserviços:** Para comunicação assíncrona e fiável entre dezenas de microsserviços, evitando o efeito de "gargalo" (bottleneck).
* **CQRS e Event Sourcing:** Quando a arquitetura da aplicação exige que o estado do sistema seja derivado de uma sequência imutável de eventos.

*Quando é que *não* devemos usar?* Para aplicações CRUD simples ou sistemas monolíticos de baixa escala, a complexidade operacional de gerir um cluster Kafka (ZooKeeper/KRaft) pode ser desnecessária.

---

### Vamos ao debate!
E por aí, membros do **webmastersmz.com**? Como é que lidam com o fluxo de dados em tempo real nos vossos projetos atuais? Já tiveram a oportunidade de implementar o Kafka ou continuam a apostar em abordagens mais tradicionais como RabbitMQ ou Redis Pub/Sub? Deixem as vossas experiências, dúvidas e opiniões nos comentários para enriquecermos esta discussão técnica!

---

Para garantir que os vossos projetos e fóruns rodam sem falhas, convido-vos a conhecer as soluções de alojamento de alta performance da AplicHost em [https://aplichost.com](https://aplichost.com).

O que é, e quando usar Kafka?



Tópico: O que é, e quando usar Kafka?
Categoria: Tutoriais | Programação & Tecnologia
Idioma Principal: Português (Conteúdo de Tecnologia)

Descrição do Conteúdo / Informações:
-------------------------------------------------------------------------
Imagine o seguinte cenário: você é desenvolvedor de um e-commerce que recebe milhares de pedidos por hora; isso significa orquestrar eventos de pedidos, pagamentos, atualização de estoque e notificações. A Mensageria brilharia nesse cenário onde há muitos eventos chegando em tempo real e múltiplos sistemas que precisam processá-los de forma assíncrona.

Em ambientes com muitos sensores, como fazendas inteligentes, fábricas ou redes de equipamentos médicos, dispositivos de IoT (Internet das Coisas) enviam medições constantes, permitindo que outros dispositivos reajam a esses dados.

Exemplo: um sensor mede a umidade, temperatura e luminosidade em um determinado ponto da plantação, envia essas informação a um message broker (como o Kafka), e a partir daí o serviço de irrigação lê os dados da umidade do solo e decide se precisa ligar os aspersores naquele local.



Mensageria


Mensageria é uma forma como diversos sistemas podem trocar informações entre si sem um serviço chamar diretamente o outro. Eles se comunicam enviando e recebendo mensagens por meio de um intermédio, como o Kafka, RabbitMQ, etc.

A mensageria ajuda a resolver vários problemas comuns em sistemas modernos:

• Desacoplar serviços: garante que os microsserviços se comuniquem sem gerar acoplamento.

• Processar tarefas de forma assíncrona: A operação pode ocorrer em segundo plano, sem bloquear o usuário.

• Distribuir trabalho entre vários consumidores.

• Tornar o sistema mais resiliente: se um serviço cair, as mensagens ficam guardadas e serão processadas quando ele voltar.



Apache Kafka


O Apache Kafka é um sistema open source de mensageria que armazena streams de dados de forma durável, ordenada e distribuída. Com ele é possível criar sistemas que coletam logs, acompanham a atividade de usuários e integram diversos componentes de forma resiliente.

É justamente aí que o Kafka se diferencia da maioria. Em muitos brokers tradicionais, como o RabbitMQ, ActiveMQ e SQS, a mensagem costuma sumir depois que um consumidor lê e confirma o processamento.



Vantagens


• Aguenta alto volume de mensagens.

• Processamento em tempo real.

• Durabilidade e tolerância a falhas.

• Durabilidade dos dados. Ideal para múltiplos consumidores.
### Desvantagens

• Overkill quando há baixo volume de dados (menos de 1000 mensagens por segundo).

• Complexidade de configuração e operação.

• Custo de manutenção e de especialistas.

• Alta curva de aprendizagem.

Fontes:

https://hadoop.com.br/tecnologias/streaming/apache-kafka


Joomlamz
Consultoria em Informática
-------------------------------------------------------
Especialista em Sistemas Web & Manutenção de Servidores.
A desenvolver o novo AplPortal com suporte a PHP 8.
Precisa de ajuda profissional? Contacte-me.

Tags: