1
resposta

Duvida sobre o nome da fila

O publish define um nome de fila. O subscribe não precisa saber o nome da fila que irá consumir?

Por exemplo, o publish mais de uma fila, e o subscribe precisa saber qual fila pega os dados, correto?

No exemplo do vídeo, como o subscribe sabe qual fila deve consumir?

1 resposta

Olá Jose! Tudo bem?

No contexto do RabbitMQ, quando utilizamos o padrão de troca fanout, como no seu exemplo, o publish envia mensagens para uma exchange, e não diretamente para uma fila. A exchange é responsável por distribuir essas mensagens para todas as filas que estão ligadas a ela.

No caso do subscribe, ele não precisa saber o nome da fila antecipadamente. O que acontece é que o subscribe se conecta à mesma exchange que o publish está usando. No seu exemplo, a exchange é chamada de "trigger". Quando o subscribe se conecta a essa exchange e declara uma fila, ele automaticamente começa a receber as mensagens que são publicadas na exchange.

No código que você está seguindo, o RabbitMqSubscriber declara uma fila anônima (ou seja, sem um nome específico) e a associa à exchange usando o QueueBind(). Isso significa que qualquer mensagem enviada para a exchange "trigger" será recebida por essa fila anônima.

Portanto, o subscribe não precisa saber o nome da fila, pois ele se inscreve na exchange e automaticamente recebe as mensagens através da fila que ele mesmo declara e vincula à exchange.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.