In rabbitmq, quando o produtor cria uma mensagem que não será enviada diretamente para uma fila, em vez disso, primeiro a mensagem será enviada para as trocas, depois um agente de roteamento lê e a envia para a fila apropriada com ajuda de atributos de cabeçalho, bindings e chaves de roteamento.
RabbitMQ Tipos de Trocas
Em rabbitmq, temos quatro tipos de Trocas disponíveis para rotear a mensagem de diferentes maneiras.
Seguindo são os diferentes tipos de trocas disponíveis em rabbitmq.
- Direct
- Fanout
- Topic
- Headers
RabbitMQ Direct Exchange
Em rabbitmq, a troca directa irá entregar uma mensagem para as filas com base na chave de encaminhamento de mensagem. Na troca direta, a mensagem é roteada para as filas cuja chave de vinculação coincide exatamente com a chave de roteamento da mensagem.
Following é a representação pictórica do fluxo de mensagens na troca direta do coelho.
RabbitMQ Fanout Exchange
In rabbitmq, fanout exchange irá encaminhar as mensagens para todas as filas que estão vinculadas a ele.
Following é a representação pictórica do fluxo de mensagens na troca de fanout de coelhos.
RabbitMQ Topic Exchange
Em rabbitmq, troca de tópico irá realizar uma correspondência de wildcard entre a chave de roteamento e o padrão de roteamento especificado no binding para publicar uma mensagem para a fila.
Following é a representação pictórica do fluxo de mensagens na troca de tópico em rabbitmq.
RabbitMQ Headers Exchange
In rabbitmq, headers exchanges will use the message header attributes for routing.
Following is the pictorial representation of message flow in rabbitmq headers exchange.
Agora vamos ver como adicionar trocas em rabbitmq usando o plugin de gerenciamento web.
RabbitMQ Create Exchange
Para criar novas trocas, primeiro abra o portal de gerenciamento web rabbtimq, digite as credenciais padrão para fazer o login e depois escolha a aba Exchanges.
Após navegar para a aba Exchanges, você verá “Adicionar um novo painel de trocas” basta clicar nesse painel para expandir e ele conterá propriedades diferentes para criar uma nova troca, como mostrado abaixo.
Propriedades de troca RabbitMQ
Seguindo são os diferentes tipos de propriedades que precisamos preencher para criar uma nova troca em coelhomq.
Propriedade | Descrição |
---|---|
Nome | O nome será um nome de troca que você definirá e deve ser único. |
Tipo | Você pode selecionar o tipo de troca necessário, seja tópico ou fanout, etc. com base em seus requisitos. |
Durabilidade | Usando propriedades de durabilidade (Durável, Transiente), podemos fazer a mensagem para sobreviver mesmo após o reinício do servidor. Se selecionarmos Durable, então a mensagem sobreviverá mesmo após o reinício do servidor. No caso, se selecionarmos Tansient, então a mensagem não irá sobreviver mesmo após o reinício do servidor. |
Auto Delete | Usando a propriedade auto delete, podemos definir se uma troca pode excluir se destravarmos a fila atribuída. |
Internal | Se definirmos esta propriedade sim, então a troca não pode ser usada diretamente pelos editores, mas somente quando vinculada a outras trocas. |
Alternate-exchange | Se houver um problema na publicação da mensagem a ser trocada, então, usando esta propriedade, podemos especificar uma troca alternativa para enviar uma mensagem para a fila. |
Após inserirmos todos os detalhes necessários, então clique no botão Adicionar troca para criar uma nova troca, como mostrado abaixo.