Configure o sistema de Mensageria
Aprenda
A arquitetura de mensageria do TNF baseia-se nos conceitos da especificação AMQP. Com a abrangência de cenários e o extenso detalhamento da especificação AMQP foi criado uma abstração fortemente baseada no protocolo. Além de padronizar a comunicação com diferentes provedores também permite que outros protocolos, como por exemplo o MQTT, sejam utilizados dentro do TNF de forma transparente.
Atualmente o TNF suporta o RabbitMQ versão 3.6.14. Obs: para que o RabbitMQ trabalhe com o protocolo AMQP você deve habilita-lo nas configuração de plugins. |
| Termo | Definição | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Binding | É o relacionamento entre um ExchangeRouter e uma Queue. O binding de uma Queue em um Exchange Router utilizando uma routingkey, permite o roteamento de mensagens. | ||||||||
| Mensagem | É um objeto serializado que é enviado para o sistema de mensageria. O TNF vincula fortemente o objeto de mensagem, tanto para sua publicação ou assinatura, afim de garantir que uma dada mensagem será manipulada. | ||||||||
| Tópicos | O Tópico é uma abstração que garante que toda a mensagem que for enviada para o sistema de mensageria seja manipulada por uma classe concreta. Isso é feito através o relacionamento que o Tópico cria entre Routing Keys, Queues e Mensagens. | ||||||||
| Routing Key | É uma string utilizada como chave para identificar um Bind entre ExchangeRouter e Queues. Essa identificação faz o roteamento de mensagens na infraestrutura de mensageria e TNF. A Routing Key trabalha com os seguintes coringas:
| ||||||||
| Exchange Router | É um centralizador de Filas, contendo uma ou mais filas. | ||||||||
| Exchange Type | Define o comportamento de um Exchange Router, sendo:
* Not implemented yet | ||||||||
| Ação | Descrição | |||||
|---|---|---|---|---|---|---|
| Crie uma mensagem | Implemente uma classe que represente a mensagem e herde da classe Message
| |||||
| Defina o ponto de publicação | Escolha ou crie uma classe que será responsável por publicar uma ou mais mensagem.
| |||||
| Implemente a interface IPublish<> e publique | Toda classe que publica mensagem deve implementar a interface IPublish<T> onde T é um Message. Substitua T pela mensagem que será publicada e implemente a interface.
|
| Ação | Descrição | |||||
|---|---|---|---|---|---|---|
| Crie uma mensagem | Implemente uma classe que represente a mensagem recebida e herde da classe Message
| |||||
| Defina o ponto de subscrição | Escolha ou crie uma classe que será responsável por subscreber uma ou mais mensagens.
| |||||
| Implemente a interface ISubscribe<T> e assine | Toda classe que subscrever uma ou mais mensagens implementa a interface ISubscribe<T> onde T é um Message. Substitua T pela mensagem que será assinada e implemente a interface.
|