Os Protocolos

AQMP

Advanced Messaging Queuing Protocol (AMQP) é o protocolo base no qual foi construído o RabbitMQ. Este protocolo trabalha na camada de aplicação, determinando como devem ser transmitidos os dados ao longo da rede.

O protocolo, orientado por mensagens, trabalha com controle de fluxo e balanceamento de carga, e divide sua configuração em garantias de entrega como at-most-once, onde a mensagem é entregue apenas uma vez ou nunca entregue, at-least-once, onde uma mensagem com certeza será entregue mas, as vezes, será entregue mais de uma vez, e exactly-once, que garante a entrega garantida e somente uma vez. Também, baseia sua autenticação e encriptação em Simple Authentication and Secutiry Layer(SASL), um framework para esse tipo de necessidade. Outra suposição do protocolo é que as aplicações que se baseiem nele estejam no topo de protocolos resilientes como o TCP.

O AMQP define padrões em diferentes camadas, como um sistema de tipagem, um protocolo de troca de mensagens assíncrono entre processos, um formato padrão de mensagens e um conjunto padrão de opções para envio destas mensagens.

O protocolo foi criado em 2003 por John O’Hara, um desenvolvedor do escritório da JP Morgan Chase em Londres. Desde o princípio, o projeto foi concebido como um projeto aberto e colaborativo, com intuito de desenvolver um protocolo capaz de suprir a demanda de troca de mensagens vigente. Muitos outros grupos passaram a participar, como a Cisco, Redhat, Microsoft e, como sabemos, a Rabbit Technologies, que iniciou a criação do RabbitMQ.

MQTT

Message Queue Telemetry Transport (MQTT) é um protocolo para troca de mensagens em ambientes onde se tem pouca memória disponível ou banda é limitada. Também funciona como publisher-subscribe no topo do protocolo TCP. É utilizado por aplicações como o Facebook Messenger, por exemplo.

STOMP

Streaming Text Oriented Message Protocol (STOMP) é um protocolo baseado em texto construido para trabalhar com middleware orientado a mensagem. Provê uma forma de comunicação independente da linguagem utilizada.

Esconder/Apresentar Menu