PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
Message Parsing - Integração assíncrona com Apache Kafka
1. Troca de mensagem (Message
Parsing)
Sistemas Distribuídos
Porf. Dr. Manoel Ribeiro
2. Message Parsing - SD
• É a forma de maior acoplamento para comunicação entre processos
• É necessário um serviço de mensageria (midware)
• Neste modelo, o emissor empacota os dados e envia para o serviço
de mensageria destinada ao receptor
• O receptor fica ouvindo (listener) seu canal no serviço de mensageria
e se chegar alguma a recupera
• O formato da mensagem e a maneira que ela será processada pelo
receptor são dependentes da aplicação
• Em algumas aplicações o receptor pode enviar uma mensagem de volta
3. Message Parsing - SD
• As mensagens contém somente dados livre de padrão ou convenção
• Não há reuso de componentes pois as aplicações não compartilham
bibliotecas de métodos ou procedimentos
• O Mideware pode compatibilizar velocidade de processamento
significativas entre emissor e receptor
• Fornece uma arquitetura assíncrona e não invasiva de IPC (Inter-
process Communication)
4.
5. Apache Kafka
• O Apache Kafka é uma plataforma distribuída de transmissão de
dados que é capaz de publicar, subscrever, armazenar e processar
fluxos de registro em tempo real.
• O Apache Kafka é uma alternativa aos sistemas de mensageria
empresariais tradicionais. Inicialmente, ele era um sistema interno
desenvolvido pela LinkedIn para processar 1,4 trilhão de mensagens
por dia. Mas agora é uma solução de transmissão de dados open
source aplicável a variadas necessidades empresariais.
6. Integração assíncrona com o Apache Kafka
• Os microsserviços mudaram o panorama do desenvolvimento. Eles
tornaram os desenvolvedores mais ágeis ao reduzir as dependências,
como as camadas de banco de dados compartilhado.
• No entanto, as aplicações distribuídas que estão sendo criadas pelos
desenvolvedores ainda precisam de algum tipo de integração para
compartilhar dados.
• Uma opção de integração muito usada, conhecida como método
síncrono, utiliza interfaces de programação de aplicações (APIs) para
compartilhar dados entre usuários diferentes. (RPC, RMI, CORBA,
SOAP)
7. Integração assíncrona com o Apache Kafka
• Uma segunda opção de integração, o método assíncrono, envolve a
replicação de dados em um armazenamento intermediário.
• É aí que o Apache Kafka entra em cena, na transmissão de dados de
outras equipes de desenvolvimento para preencher o
armazenamento de dados. Assim, é possível compartilhar os dados
entre várias equipes e respectivas aplicações.
8.
9. Apache Kafka - o que é
●O que é o Apache Kafka?
●“Apache Kafka é uma plataforma distribuída de
mensagens e streaming”.
10. Apache Kafka
● Você produz uma mensagem.
● Essa mensagem é anexada em um tópico.
● Você então consome essa mensagem.
11. Por que usar?
● “Se você quer mover e transformar um grande volume de dados em
tempo real entre diferentes sistemas, então Apache Kafka pode ser
exatamente o que você precisa”.
13. Apache Kafka
●Sistema de mensagens
○Distribuído
○Com alta vazão (throughput)
■De geração (publicação) e leitura (sub-inscrição)
●Principais casos de uso:
○Agregação de log
○Processamento em tempo real
○Monitoramento
14. Apache Kafka
●Originalmente desenvolvido pelo LinkedIn.
●Implementado em scala/Java.
●Producers & Consumers.
●Mensagens são associadas a tópicos, os quais
representam um stream específico.
○Logs web
○Dados de sensores
●Consumers se inscrevem em um ou mais tópicos.
17. Kafka: escalabilidade
●Kafka pode ser distribuído entre muitos processos em
vários servidores.
●Consumers também podem
ser distribuídos.
●Tolerante a falhas.
Fonte: https://kafka.apache.org/intro.html
18. Kafka: pontos a considerar
●Simples sistema de mensagens, não de processamento.
●Não vive sem o Zookeeper, o qual pode se tornar um
gargalo quando o número de tópicos/partições é muito
grande (>>10000).
●Não otimizado para latências de milissegundos.