RabbitMQ

O que é?

O RabbitMQ é um servidor de mensageria que implementa o AMQP (Advanced Message Queuing Protocol standard) . Foi escrito em Erlang e é robusto, fácil de usar, roda nos principais sistemas operacionais, suporta um enorme número de plataformas de desenvolvimento. Além disso é Open Source, sua licença é Mozzila 1.1 e pode ter suporte comercial.

RabbitMQ
RabbitMQ

Para que serve?

A mensageria é uma técnica que visa solucionar a comunicação entre sistemas completamente diferentes de uma maneira confiável. Ela faz com que possamos integrar quaisquer sistemas e que estes possam trocar dados de forma desacoplada e assíncrona.

Qual a relevância para o mobile?

Para que tenhamos sistemas de mensagem robustos, à prova de erro é mais fácil utilizar uma implementação existente de algum protocolo de mensageria. O RabbitMQ implementa vários protocolos para várias linguagens tornando-o uma escolha fácil para utilizarmos mensageria no mobile.

AMPQ

O que é o AMQP?

O AMQP é um protocolo de comunicação em rede, tal qual o HTTP, que permite que aplicações se comuniquem.

Soluções para mensageria existem desde a década de 1970 com a ideia de resolver os problemas de integração entre diversos fornecedores. Sem o uso de um middleware de mensagens, a integração heterogênea de sistemas provou ser um processo muito caro e complexo.

Por exemplo, soluções para mensagens, como o IBM Websphere MQ e o TibCO Enterprise Message Service, são muito caras e tendem a ser utilizadas apenas por grandes companhias, especialmente a indústria de serviços financeiros.

Além destes percalços, existem também problemas de interoperabilidade entre estas soluções. Fornecedores, para contornar este problema, criaram seus próprios protocolos para mensageria. Já que cada um criava a sua solução, e estas não eram compatíveis entre si, criava-se o se chamava de Lock-in de Fornecedor.

O AMQP tem muitas vantagens, mas duas são mais importantes: produzir um padrão aberto para protocolos de mensageria e permitir a interoperabilidade entre muitas tecnologias e plataformas.

Existem muitos sistemas rodando em muitos Sistemas Operacionais, que são desenvolvidos com múltiplas linguagens de programação, rodando em várias arquiteturas de hardware e máquinas virtuais. AMQP não só torna a integração dentre esses vários sistemas diferentes possível, como também permite que produtos diferentes que implementem este protocolo possam trocar informações e isso faz do AMQP o pioneiro.

Exchange

Conceitos do RabbitMQ: Exchange

As mensagens não são publicados diretamente para uma fila, em vez disso, o produtor envia mensagens para uma exchange. Uma exchange é responsável pelo encaminhamento das mensagens para as diferentes filas de mensagem. Uma exchange aceita mensagens do aplicativo produtor e as encaminha para filas de mensagens com a ajuda de ligações e chaves de roteamento.

Fluxo de mensagens no RabbitMQ

  1. O produtor publica uma mensagem para uma Exchange. Quando você cria a Exchange, você tem que especificar o tipo dela. Os diferentes tipos de Exchange são explicados em detalhe mais adiante.
  2. A Exchange recebe a mensagem e é agora responsável pelo encaminhamento da mensagem. A Exchange leva diferentes atributos da mensagem em conta, tais como chave de roteamento, dependendo do tipo de exchange.
  3. Ligações têm de ser criadas a partir da exchange para as filas. Uma exchange pode ter várias filas de mensagens. A Exchange roteia a mensagem para as filas, dependendo dos atributos da mensagem.
  4. As mensagens permanecem na fila até que eles são consumidas por um consumidor.
  5. O consumidor processa a mensagem.

Tipos de Exchange

  • Direct: A troca direta entrega mensagens para filas com base em uma chave roteamento de mensagens. Em uma troca directa, as mensagens são encaminhadas para as filas cuja chave de ligação corresponde exatamente à chave de encaminhamento da mensagem.
  • Fanout: uma exchange fanout encaminha mensagens para todas as filas que estão vinculados a esta.
  • Topic: A exchange tópico usa os atributos do header como chave de roteamento para as mensagens.

exchanges_topic_fanout_direct

Busque mais

♦ Part 1: RabbitMQ for beginners – What is RabbitMQ?

Related posts