Você está na página 1de 23

Mensageria com Delphi

RabbitMQ
Luiz Sfolia

luizsfolia luiz.sfolia@tmrti.com.br
Monolítico

SistemaXX
Sistema
Sistema X
Microsserviços

Aprovação Envio de
de Crédito Email

Integração
com Filiais

Salvar
Registros
Sistema X

Integração
com App
BD
RPC
Remote Procedure Call

Send

Receive

Send

Receive
Integração de informações

Transferência de Arquivos

...
Serviço A Serviço B
Integração de informações

Banco de Dados
Serviço A Serviço B Serviço C
Integração de informações

Message Broker
RPC
Remote Procedure Call
Message Broker
Producer/Publisher - Quem publica mensagem

Consumer - Quem consome mensagem

- Resiliência
- Escalabilidade
- Confiabilidade
Message Broker

Publisher Consumer
Message Broker
Consumer

Queue

Publisher Exchange Consumer

Queue

Consumer
Exchange
Default exchange = Fila

Direct = Encaminhamento para a fila de mesmo nome

Fanout = Encaminha a mensagem para todas as filas associadas

Topic = Regras : Ex : Log.Error, Log.Login, Log.*

Headers = Usa cabeçalhos para definir a fila


RabbitMQ
Funcionamento
Protocolos
Opções com Delphi
https://www.habarisoft.com/habari_rabbitmq.html

https://github.com/danieleteti/delphistompclient

STOMP (Simple Text Oriented Messaging Protocol)


Softwares
Instalação
Exemplo
Publicando na Fila
Exemplo
Consumindo da Fila
ACK (acknowledgement) - Reconhecimento de Mensagem NACK - Mensagem não reconhecida

● Auto - Sem confirmação de recebimento


● Client - Confirmação de todas as mensagens
● Client-Individual - Confirmação individual

Prefetch - Limite de quantidades de mensagens distribuídas para cada inscrito


Obrigado

luizsfolia

luiz.sfolia@tmrti.com.br

Você também pode gostar