Escolar Documentos
Profissional Documentos
Cultura Documentos
Pode ser mais fácil migrar para essa arquitetura. Por exemplo, a
atual arquitetura já pode ter essa divisão em
diferentes endpoints de comunicações síncronas ou equipes
podem existir para cada uma das funcionalidades
Síncrono
Entrega garantida
Em um sistema assíncrono, a entrega de mensagens pode ser
garantida se o sistema for implementado adequadamente. O
remetente faz com que o sistema de mensagens confirme que
recebeu a mensagem. Posteriormente, o sistema de mensagens
faz com que o destinatário da mensagem reconheça
o recebimento (acknowledge). No entanto, se o destinatário
nunca coleta os dados e, portanto, impede a entrega, o remetente
tem uma confirmação, mas a mensagem ainda não chega ao
destinatário.
Assíncrono
Idempotência
Se as mensagens não forem confirmadas (ack) pelo destinatário,
elas serão enviadas novamente. Quando o microsserviço receptor
processa a mensagem, mas não consegue reconhecê-la devido a
um problema ou falha, o destinatário recebe a mensagem uma
segunda vez, embora já tenha processado a mensagem.
Assíncrono
Direct Exchange
Uma troca direta entrega mensagens para filas com base na
routing key de mensagens. Uma troca direta é ideal para o
roteamento unicast de mensagens (embora elas também possam
ser usadas para o roteamento multicast).
AMQP
Fanout Exchange
Fanout Exchange roteia mensagens para todas as filas que estão
vinculadas a ela e a chave de roteamento é ignorada. Se N filas
estiverem vinculadas a uma troca de fanout, quando uma nova
mensagem for publicada nessa troca, uma cópia da mensagem
será entregue a todas as N filas. As trocas de fanout são ideais
para o broadcast de mensagens.
AMQP
AMQP
Queues
Queues no modelo AMQP 0-9-1 são muito semelhantes às filas
em outros sistemas de enfileiramento de mensagens e tarefas:
elas armazenam mensagens consumidas pelos aplicativos.
AMQP
Name
Durable (a fila sobreviverá a uma reinicialização do broker)
Exclusive (usado por apenas uma conexão e a fila será excluída
quando a conexão for fechada)
Auto-delete (a fila que teve pelo menos um consumidor é excluída
quando o último consumidor cancela a inscrição)
Arguments (opcional; usado por plug-ins e recursos específicos do
broker, como TTL da mensagem, limite de comprimento da fila,
etc.)
AMQP
Bindings
Bindings são regras que as exchanges usam (entre outras coisas)
para rotear mensagens para queues. Para instruir uma exchange E
a rotear mensagens para uma queue Q, Q deve estar vinculado a
E. As ligações podem ter um atributo de routing key opcional
usado por alguns tipos de exchange. O objetivo da routing key é
selecionar determinadas mensagens publicadas em uma
exchange serem roteadas para a queue vinculada. Em outras
palavras, a routing key atua como um filtro.
AMQP
erl
RabbitMQ
Instalando RabbitMQ
9 – Verificar status
12 – Habilitar Dashboard
sudo ufw allow proto tcp from any to any port 5672,15672
firefox http://localhost:15672
Username: guest
Password: guest
RabbitMQ
Criando Queues
RabbitMQ
Criando Exchange
RabbitMQ
Configurar Bindings
Ferramentas
Spring Boot + RabbitMQ
RabbitMQ
Criando uma Aplicação - Producer
3 - Confirme
RabbitMQ
Criando uma Aplicação - Producer
3 - Confirme
RabbitMQ
Criando uma Aplicação - Consumer
O que é?
https://www.enterpriseintegrationpatterns.com/
Apache Camel
Configurando
Apache Camel
Adicione as dependências ao .pom
<camel.version>2.24.2</camel.version>
camel:
component:
rabbitmq:
addresses: localhost:5672
username: guest
password: guest
route:
fiap:
input:
endpoint: rabbitmq:fiap.scp.input.exchange?queue=fiap.scp.input.fila
output:
endpoint: rabbitmq:fiap.scp.output.exchange?queue=fiap.scp.output.fila
Apache Camel
Implementação
Apache Camel
Implementação Rota
Apache Camel
Execução
Ferramentas
Kettle
Kettle
Ferramenta de Integração de Dados
O Pentaho Data Integration é o componente
da suíte Pentaho usado para criar processos
de extração, transformação e carga
(Extraction, Transformation and Loading)
que alimentam o banco de dados.
Com o Pentaho Data Integration é possível
fazer inúmeras operações de Integração de
Dados:
• Tratamento de dados.
• Movimentação de grande massa de
dados.
• Input de diversas fontes de dados e
output para diversos componentes como
Base de dados Relacional, NoSQL,
Message Broke, etc...
Kettle
Instalando
1 – Acesse a URL
https://sourceforge.net/projects/pentaho/files/Pentaho%209.0/client-tools/
Kettle
Instalando
mkdir -p ~/pentaho
3– Executar Spoon
./spoon.sh
Kettle
Primeiro Contato
Kettle
Criar uma Transformação
<CTRL> + <N>
Kettle
Criar uma Transformação
2 – Adicione um step CSV File Input
Kettle
Criar uma Transformação
3 – Adicione um Step Sort rows
Kettle
Criar uma Transformação
4 – Adicione um Step Group by
Kettle
Criar uma Transformação
4 – Adicione um Step Text file output
Kettle
Criar uma Transformação
5 – Adicione um Step Text file output (configure Fields)
Kettle
Execute a Transformação
1 – Acione o botão play ou F9
Kettle
Execute a Transformação
2 – Valide o arquivo gerado
Copyright © 2020 Prof. Carlos Hesketh