O documento discute a integração de sistemas usando RabbitMQ como middleware de mensagens. Ele explica como RabbitMQ funciona usando componentes como exchanges, queues e bindings para encaminhar mensagens de produtores para consumidores de maneira assíncrona e com baixo acoplamento. O documento também discute porque o RabbitMQ é uma boa opção para integração e fornece exemplos de como criar produtores e consumidores.
6. Integração com arquivos
❖
Formatos que tem suporte para múltiplas linguagens e múltiplas plataformas
(CSV, JSON, XML, etc);!
❖
Fraco acoplamento entre sistemas que precisam ser integrados;!
❖
Nome, tempo de atualização e remoção precisam ser acordados entre as
aplicações;!
❖
Implementação de como processar o arquivo em cada aplicação;!
❖
Concorrência leitura e escrita;!
❖
Aplicações acessando o mesmo disco ou transferência de arquivos entre discos;!
❖
Alta probabilidade dos sistemas ficarem fora de sincronia e de conflitos de
dados.
7. Banco de dados compartilhado
❖
Consistência entre os dados;!
❖
Concorrência feita através do sistema de transação do banco de
dados;!
❖
Uso da linguagem SQL para integração;!
❖
Estrutura que satisfaça todas as aplicações envolvidas na integração;!
❖
Distribuir o banco de dados;!
❖
Performance prejudicada devido a vários “locks”;!
❖
“Deadlock”;
8. Remote Procedure Call (RPC)
❖
Permite a construção de aplicações responsáveis pelos
dados que elas mantém;!
❖
Capacidade de prover múltiplas interfaces para um
mesmo dado;!
❖
Produz acoplamento entre as aplicações envolvidas na
integração;!
❖
Requisições síncronas (Não necessariamente…);
13. ❖
Fácil de instalar;!
❖
Fácil de monitorar;!
❖
Fácil de usar;!
❖
“Clustering” dinâmico, fácil de criar e manter;!
❖
Documentação excelente;!
❖
Utiliza o protocolo AMQP e não o utiliza quando o assunto é performance;!
❖
Plugins;!
❖
Extensão PECL e phpamqp-lib;!
❖
Open source;!
❖
Suporte comercial;
34. AMQP: Mensagens
❖
Criadas pelo “producer”;!
❖
Roteadas pelo exchange e entregues às filas (ou não…);!
❖
Filas encaminham a mensagem aos “consumers”;!
❖
Podem ser persistidas em disco (Mas, você não vai
querer fazer isso…);!
❖
Podem ser aceitas ou rejeitadas pelo “consumer”.