🐇 Publish/Subscribe #2
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Publish/Subscribe
Dessa vez iremos entregar uma mensagem para vários consumidores, criaremos um registro simples com dois programas, onde um emitirá mensagens de registro e outro que vai receber e imprimir, no nosso programa, cada cópia em execução do receptor receberá as mensagens, onde o receptor poderá se comunicar com os dois queues ao mesmo tempo.
Toda ideia do Rabbit é que, na verdade o producer nunca envie mensagem diretamente para fila (pois na realidade é que o producer nem sabe se a mensagem chegará até lá), mas ao invés disso ele envie mensagens para uma
exchange
, pois ela sabe exatamente o que fazer com a mensagem que recebeu para empurrá-lá para uma queue.Há alguns tipos de exchanges, mas vamos trabalhar em cima do
fanout
: Ela transmite todas as mensagens que recebe para todas as filas que ela tem conhecimento.Filas temporárias
Dar o nome para uma fila é importante para compartilharmos ela entre os produces e consumers, mas no caso dessa aplicação de logs, não precisamos criar uma fila permanente, deixaremos o nome da fila vazio para que o próprio servidor possa dar um nome aleatório, já que nesse momento isso não é prioritário visto que a fila, depois de ser consumida, deverá ser apagada automaticamente.
Depois de todo o processo de criar exchange e as filas temporárias agora vamos fazer nossa exchange enviar mensagem para a fila.
Chamamos de
binding
o relacionamento entre exchange (troca) e uma queue (fila).