0% acharam este documento útil (0 voto)
33 visualizações5 páginas

Comunicação em Tempo Real com Kafka

Sobre o Apache kafka

Enviado por

Guilherme Belote
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
33 visualizações5 páginas

Comunicação em Tempo Real com Kafka

Sobre o Apache kafka

Enviado por

Guilherme Belote
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

CENTRO UNIVERSITÁRIO FUNDAÇÃO SANTO ANDRÉ

COMUNICAÇÃO EM TEMPO REAL EM SISTEMAS DISTRIBUÍDOS COM APACHE


KAFKA E AMAZON MSK

Guilherme Belote Lima da Silva – 749574

Marcos Roberto dos Santos Junior – 752509

Vinicius Santos Barboza – 747855

SANTO ANDRÉ – SP
2025
1 INTRODUÇÃO
A comunicação entre sistemas distribuídos é fundamental na transformação digital. Para
possibilitar a troca eficiente de informações entre aplicações e serviços, soluções de mensageria
permitem o envio, processamento e consumo de mensagens de forma confiável e escalável.
Dentre as principais tecnologias, o Apache Kafka se destaca por suportar workloads de alto
volume e baixa latência, viabilizando arquiteturas de dados em tempo real.

2 SOLUÇÕES DE MENSAGERIA
As soluções de mensageria intermediam a comunicação entre aplicações distintas por meio de
mensagens. Diferentemente das chamadas síncronas, a mensageria desacopla produtores e
consumidores, aumentando a resiliência do sistema. Exemplos incluem RabbitMQ, ActiveMQ e
Apache Kafka.

Exemplo de Producer RabbitMQ em Java


// Exemplo simples com RabbitMQ (Producer)
import [Link];
import [Link];
import [Link];

public class ProdutorRabbit {


public static void main(String[] args) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
[Link]("localhost");
try (Connection connection = [Link]();
Channel channel = [Link]()) {
String fila = "filaTeste";
[Link](fila, false, false, false, null);
String mensagem = "Olá RabbitMQ!";
[Link]("", fila, null, [Link]());
[Link]("Mensagem enviada: " + mensagem);
}
}
}

3 APACHE KAFKA
O Apache Kafka é uma plataforma distribuída de streaming orientada a logs. Seu objetivo é
processar grandes volumes de dados em tempo quase real, com baixa latência e alta vazão. O
exemplo a seguir mostra um produtor simples em Java enviando mensagens a um tópico.

Exemplo de Producer Kafka em Java


import [Link].*;
import [Link];

public class ProdutorKafka {


public static void main(String[] args) {
Properties props = new Properties();
[Link]("[Link]", "localhost:9092");
[Link]("[Link]",
"[Link]");
[Link]("[Link]",
"[Link]");

Producer<String, String> producer = new KafkaProducer<>(props);


ProducerRecord<String, String> record =
new ProducerRecord<>("topicoTeste", "chave1", "Mensagem
Kafka!");
[Link](record);
[Link]();
[Link]("Mensagem enviada com sucesso!");
}
}

4 FORMA DE TRANSMISSÃO DAS MENSAGENS NO KAFKA


O modelo de comunicação do Apache Kafka baseia-se em tópicos e utiliza o padrão publish-
subscribe. A seguir, um exemplo de consumidor em Java que lê mensagens de um tópico.

Exemplo de Consumer Kafka em Java


import [Link].*;
import [Link].*;

public class ConsumidorKafka {


public static void main(String[] args) {
Properties props = new Properties();
[Link]("[Link]", "localhost:9092");
[Link]("[Link]", "grupoTeste");
[Link]("[Link]",
"[Link]");
[Link]("[Link]",
"[Link]");

KafkaConsumer<String, String> consumer = new


KafkaConsumer<>(props);
[Link]([Link]("topicoTeste"));

while (true) {
ConsumerRecords<String, String> registros =
[Link](1000);
for (ConsumerRecord<String, String> reg : registros) {
[Link]("Mensagem recebida: " +
[Link]());
}
}
}
}

4.1 TRANSMISSÃO DAS MENSAGENS NO KAFKA VIA AWS


Na AWS, o Apache Kafka pode ser utilizado por meio do serviço Amazon Managed Streaming
for Apache Kafka (MSK). O código a seguir mostra uma configuração típica de conexão com
MSK usando autenticação SASL_SSL.

Configuração de conexão a um cluster MSK


Properties props = new Properties();
[Link]("[Link]", "[Link],b-
[Link]");
[Link]("[Link]", "SASL_SSL");
[Link]("[Link]", "SCRAM-SHA-512");
[Link]("[Link]",
"[Link] required
username=\"user\" password=\"senha\";");
[Link]("[Link]",
"[Link]");
[Link]("[Link]",
"[Link]");

5 CONSIDERAÇÕES FINAIS
O uso de soluções de mensageria como o Apache Kafka, aliado ao Amazon MSK, permite
implementar arquiteturas modernas baseadas em dados. Abaixo, destacam-se algumas
configurações recomendadas para boas práticas em produção:

Configurações recomendadas em Producer Kafka


[Link]("acks", "all"); // garante confirmação
[Link]("[Link]", "true"); // evita duplicações
[Link]("retries", 5); // tentativas de reenvio
[Link]("[Link]", 5); // agrupa mensagens para eficiência

6 REFERÊNCIAS
KLEPPMANN, Martin. Designing Data‑Intensive Applications. Sebastopol: O’Reilly Media,
2017.

APACHE SOFTWARE FOUNDATION. Apache Kafka Documentation. Disponível em:


[Link] Acesso em: 28 ago. 2025.

AMAZON WEB SERVICES. Amazon Managed Streaming for Apache Kafka (Amazon MSK)
Developer Guide. Disponível em: [Link]
[Link]. Acesso em: 28 ago. 2025.

HOHPE, Gregor; WOOLF, Bobby. Enterprise Integration Patterns. Boston: Addison‑Wesley,


2003.
RABBITMQ. RabbitMQ Documentation. Disponível em:
[Link] Acesso em: 28 ago. 2025.

Você também pode gostar