Notas de estudo do RabbitMQ: conceitos básicos e protocolo AMQP

O que é AMQP Advanced Message Queuing Protocol?

  • Nome completo do AMQP: Advanced Message Queuing Protocol (tradução: Advanced Message Queuing Protocol);
  • Definição AMQP:
  1. É um protocolo binário com características modernas;
  2. É um protocolo de enfileiramento de mensagens avançado padrão da camada de aplicativo que fornece serviços de unificação de mensagens;
  3. É um padrão aberto de protocolo de camada de aplicativo, projetado para middleware orientado a mensagens;
  • As principais características do AMQP são orientado a mensagens, fila, roteamento (incluindo ponto a ponto e publicar / assinar), confiabilidade e segurança.
  • Modelo de protocolo AMQP:
  1. O servidor de aplicativos do produtor = "lança a mensagem para o servidor (nó rabbitmq). Host virtual host virtual é, na verdade, um conceito de lógica de roteamento de nível superior. Exchange também é o núcleo do protocolo AMQP de nível superior; o produtor irá A mensagem é entregue ao switch Exchange do servidor. (A entrega da mensagem deve passar pelo nome de usuário da conexão do serviço, senha, endereço IP e, em seguida, pelo host virtual Host virtual e, por fim, entregue ao Exchange específico).
  2. Servidor de aplicativos do consumidor = "monitorar Message Queue (message queue); Binding => Exchange e Message Queue (MQ) têm uma relação de ligação, MQ é o portador de mensagens específicas;

O produtor entrega a mensagem à central. Uma central pode ser vinculada a várias filas de mensagens. A central tem uma estratégia de roteamento que especifica dois atributos:
1. Qual central enviar a mensagem;
2. A mensagem carrega a chave de roteamento, que é vinculado à troca e à fila Vinculação Defina o relacionamento, roteie a mensagem para a fila especificada por meio da chave de roteamento e envie-a ao consumidor; 

O AMQP impõe regulamentações obrigatórias sobre o comportamento dos provedores de mensagens e clientes, para que diferentes fornecedores possam realmente alcançar a interoperabilidade.
O JMS é uma tentativa de padronizar o middleware de mensagens iniciais. Ele é padronizado apenas no nível da API e está longe de criar recursos de interoperabilidade.
Diferente do JMS, o AMQP é um protocolo de nível de fio, que descreve o formato dos dados transmitidos na rede, usando bytes como um fluxo. Portanto, qualquer ferramenta que esteja em conformidade com este formato de dados pode interoperar com outras ferramentas compatíveis para criar e interpretar mensagens.

Versão de especificação AMQP:
0-8 lançado em junho de 2006
0-9 lançado em dezembro de 2006
0-9-1 lançado em novembro de 2008
0-10 lançado no segundo semestre de 2009
rascunho 1.0 (documento ou rascunho)

 

Quais são as implementações do protocolo AMQP?

1) OpenAMQ 【http://freshmeat.sourceforge.net/projects/openamq

A implementação de software livre do AMQP, escrito em linguagem C, é executado em Linux, AIX, Solaris, Windows e OpenVMS.

2) Apache Qpid 【https://qpid.apache.org/

O projeto de código aberto do Apache oferece suporte a C ++, Ruby, Java, JMS, Python e .NET.

3) Redhat Enterprise MRG 【https://access.redhat.com/documentation/en-us/red_hat_enterprise_mrg/3/

Implementou a versão mais recente 0-10 do AMQP, fornecendo um rico conjunto de recursos, como gerenciamento completo, federação, cluster Ativo-Ativo, um console da Web e muitos recursos de nível corporativo. O cliente oferece suporte a C ++, Ruby, Java e JMS ., Python e .NET.

4)RabbitMQhttps://www.rabbitmq.com/documentation.html

Uma implementação independente de código aberto, o servidor é escrito na linguagem Erlang, suporta vários clientes, como: Python, Ruby, .NET, Java, JMS, C, PHP, ActionScript, XMPP, STOMP, etc., e suporta AJAX.

Sistemas e plataformas suportados / Sistemas operacionais e plataformas

5) Infraestrutura AMQP 【https://fedoraproject.org/wiki/Features/AMQP_Infrastructure

No Linux, inclui Broker, ferramentas de gerenciamento, Agente e cliente.

6) ØMQ 【https://zeromq.org/

Uma plataforma de mensagens de alto desempenho que pode ser usada como um nó Broker compatível com AMQP em uma rede de mensagens distribuída, ligada a várias linguagens, incluindo Python, C, C ++, Lisp, Ruby, etc.

7) Escritório 【)

É um Broker que implementa o protocolo RestMS e o protocolo AMQP e fornece a capacidade de acessar a rede AMQP via HTTP RESTful.

Com base no protocolo AMQP, existem 7 intermediários de mensagem. A indústria escolhe RabbitMQ. As vantagens e desvantagens deles não se repetem aqui. O foco de nossa série é RabbitMQ. Antes de iniciar a introdução, vamos primeiro entender o protocolo AMQP.

 

Qual é o conceito central do AMQP?

  • Editor : o produtor da mensagem, ou seja, o programa que entrega a mensagem;
  • Conexão : conexão TCP entre editor / consumidor e corretor. A operação de desconexão será realizada apenas no lado do cliente, e o Broker não se desconectará, a menos que haja uma falha de rede ou um problema com o serviço do broker;
  • Servidor : também conhecido como Broker, aceita conexões de clientes e implementa serviços de entidade AMQP (aplicativos que recebem e distribuem mensagens, RabbitMQ Server é Message Broker);
  • Canal : Comunicação de rede. Quase todas as operações são realizadas em Canal. Canal é o canal de leitura e escrita de mensagens (fluxo de mensagens, limpeza de mensagens, adição de usuários, etc.). O cliente pode estabelecer vários canais, e cada canal representa uma sessão tarefa. (Obter a conexão e criar o canal); Se uma conexão for estabelecida toda vez que o RabbitMQ for acessado, o custo de estabelecer uma conexão TCP será enorme e a eficiência será baixa quando a quantidade de mensagens for grande. Canal é uma conexão lógica estabelecida dentro da conexão. Se o aplicativo suportar multithreading, geralmente cada thread cria um canal separado para comunicação. O método AMQP inclui o id do canal para ajudar o cliente e o corretor de mensagens a identificar o canal, então os canais são completamente isolado. O canal, como uma conexão leve, reduz bastante a sobrecarga do sistema operacional para estabelecer uma conexão TCP;
  • Mensagem : A mensagem, dado transmitido entre o servidor e a aplicação, é composta por Propriedades e Corpo. As propriedades podem modificar a mensagem, como a prioridade da mensagem, entrega atrasada e outros recursos avançados, e o Corpo é o conteúdo do corpo da mensagem;
  • Troca : troque, receba a mensagem, e a mensagem chega na primeira parada do corretor. De acordo com as regras de distribuição, ela corresponde à chave de roteamento na tabela de consulta e encaminha a mensagem para a fila vinculada (Fila); o comumente usado os tipos são: direto (ponto a ponto), tópico (publicar-assinar) e fanout (multicast);
  • Vinculação : Vinculação, uma conexão virtual entre o Exchange e a Fila. A vinculação pode conter uma chave de roteamento. As informações de vinculação são armazenadas na tabela de consulta em troca da base de distribuição da mensagem. A função é vincular o Exchange e a Fila de acordo com as regras de roteamento. Defina-o acima
  • Chave de roteamento : uma regra de roteamento que a máquina virtual pode usar para determinar como rotear uma mensagem específica;
  • Fila : portadora da mensagem, também conhecida como Message Queue (fila de mensagens), a mensagem é finalmente enviada aqui para esperar que o consumidor (consumidor) a retire. Uma mensagem pode ser copiada para uma ou mais filas ao mesmo tempo;
  • Consumidor : consumidor da mensagem, ou seja, o programa que recebe a mensagem;

 

[Artigo de referência]

Acho que você gosta

Origin blog.csdn.net/ChaITSimpleLove/article/details/109062216
Recomendado
Clasificación