Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 8397|Resposta: 0

Introdução aos três modos de troca (fanout, direct e topic) do RabbitMQ

[Copiar link]
Publicado em 29/03/2018 14:30:45 | | | |
Introdução:
No RabbitMQ, todas as mensagens enviadas pelos produtores são aceitas pela Exchange, que então as encaminha para a Fila para armazenamento de acordo com uma política específica
O RabbitMQ oferece quatro tipos de trocas: fanout, direto, tópico e cabeçalho
O modo cabeçalho é menos utilizado na prática, e este artigo compara apenas os três primeiros modos.

1. Troca Direta


Quaisquer mensagens enviadas para a Direct Exchange são encaminhadas para a Fila especificada na RouteKey.

1. Em geral, você pode usar a Exchange que vem com rabbitMQ:" (o nome da Exchange é uma string vazia, doravante chamada de Exchange padrão).

2. Neste modo, não há necessidade de realizar operações de vinculação no Exchange

3. Uma "RotaChave" é necessária para a mensagem, que pode ser simplesmente entendida como o nome da fila para a qual será enviada.

4. Se o nome da fila especificado no RouteKey não existir no vhost, a mensagem é descartada.

2. Troca de Dispersão


Quaisquer mensagens enviadas para a Fanout Exchange são encaminhadas para todas as Filas vinculadas a essa Troca.

1. Pode ser entendido como um padrão da tabela de roteamento

2. Este modo não requer um RouteKey

3. Este modo exige vincular o Exchange à Queue com antecedência, um Exchange pode vincular múltiplas Queues e uma Queue pode ser vinculado a múltiplas Exchanges.

4. Se o Exchange que recebeu a mensagem não estiver vinculado a nenhuma Fila, a mensagem é descartada.

3. Troca de Temas


Quaisquer mensagens enviadas para o Topic Exchange são encaminhadas para todas as Filas que se preocupam com os tópicos especificados no RouteKey

1. Esse padrão é mais complexo, simplificando, cada fila tem seu próprio tópico de preocupação, todas as mensagens têm um "título" (RouteKey), e o Exchange encaminha a mensagem para todas as filas que possam corresponder ao RouteKey do tema em questão.

2. Este modo requer uma RouteKey, talvez vinculando Exchange e Queue antecipadamente.

3. Ao vincular, forneça um tópico que a fila se importe, como "#.log.#" para indicar que a fila se importa com todas as mensagens relacionadas a logs (uma mensagem com um RouteKey de "MQ.log.error" será encaminhada para a fila).

4. "#" significa 0 ou várias palavras-chave, e "" significa uma palavra-chave. Por exemplo, "log." Ele pode corresponder a "log.warn", mas não pode corresponder a "log.warn.timeout"; Mas "log.#" corresponde ao acima.

5. Da mesma forma, se o Exchange não encontrar uma Fila que corresponda à RouteKey, ela soltará essa mensagem.




Anterior:Use o XPosed para contornar a validação forte dos certificados SSL do Android
Próximo:.net/c# Desconexão e reconexão da conexão RabbitMQ
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com