terça-feira, 24 de novembro de 2015

RabbitMQ Exchange

Introdução

    Este artigo vem complementar o rabbitMQ conceitos iniciais escrito recentemente. Como uma séries de artigos referente ao RabbitMQ que irei apresentar no PHPConference dia 04/12/2015

Exchange

    No modelo AMQP, um produtor de mensagem envia mensagens para um exchange, que distribui a mensagens para queues. A exchange é um algorítmo que determina qual queues deve receber a mensagem.

Tipos

    Existe 4 tipos de algorítmos diferentes, que se diferem pelo algoritimo utilizado

Fonout

    É o tipo mais simples. Envia cada mensagem para cada fila ligada a troca.


Direct Exchange

    O Producer identifica a mensagem com uma chave de roteamento, que nada mais é do que uma string que indica o tipo de mensagem. O algoritmo de roteamento se preocupa em levar a mensagem para as filas cuja chave de ligação corresponde exatamente a chave de roteamento da mensagem.











Default Exchange

    Utiliza o nome da fila como chave de ligação. Se um producer envia uma mensagem e a chave de identificação é o nome da fila, por padrão o exchange envia esta mensagem para esta fila. Toda exchange deve ter um nome. Caso ela não o tenha, ela é considerada exchange padrão.

Topic Exchange

    É semelhante a uma troca direta. Entretanto usa chaves separadas por um delimitador, que deve ser uma lista de palavras, delimitada por pontos. As palavras podem ser qualquer coisa, mas geralmente especifícam algumas características ligadas à mensagem. A chave deve estar limitada a 255 bytes.
    
    Estas chaves pode incluir caracteres curingas, como exemplo temos o '#' que substitui uma ou mais palavras; ou '*' substitui exatamente uma palavra.




Headers Exchange

    A AMQP fornece uma headers exchange, que permite consultas símples em headers de uma mensagem. A ligação contém uma lista headers name, propriedades, e argumentos especificando se 'all' (todos os campos de cabeçalho devem corresponder) ou "any" (se qualquer campo corresponder).
Cada AMQP 0-10 corretor contém uma predeclared cabeçalhos trocar amq.match nomeado. Trocas de cabeçalho adicionais podem ser declarados como necessário.
    A AMQP permite implementar tipos de exchange que não estão definidos na norma. Neste caso falamos de Intercâmbios personalizados, eles não são pré-declarados. Para isso, o MRG Messaging fornece um Exchange XML, que pode encaminhar mensagens XML com base em seu conteúdo. As ligações para uma troca XML usar um Xquery, que é aplicada ao conteúdo e cabeçalhos de cada mensagem para determinar se a mensagem deve ser encaminhada.

Veja também RabbitMQ na prática com PHP

Referências

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_MRG/1.1/html/Messaging_User_Guide/chap-Messaging_User_Guide-Exchanges.html

Nenhum comentário:

Postar um comentário