Notas do estudo: protocolo de transmissão ActiveMQ

Protocolo de transmissão ActiveMQ

Protocolos de rede suportados por ActiveMQ

Configuração diferente, o desempenho do MQ é diferente

Visite o site oficial: https://activemq.apache.org/connectivity

 

 

(1) Protocolo de controle de transmissão (TCP) - 默认

1. Esta é a configuração padrão do Broker.O cliente TCP escuta na porta 616162. Antes de os dados serem transmitidos pela rede, os dados devem ser serializados.A mensagem é serializada em um fluxo de bytes por meio de um protocolo com fio.

2. Por padrão, o ActiveMQ chama o protocolo de conexão OpenWire e seu objetivo é promover a eficiência e a interação rápida de dados na rede.

3. A forma URI da conexão TCP é como: tcp: // hostname: port? key = value & key = value, os parâmetros a seguir são opcionais

4. Vantagens da transmissão TCP:
(4.1) A transmissão do protocolo TCP tem alta confiabilidade e forte estabilidade

(4.2) Alta eficiência: transmissão de fluxo de bytes, alta eficiência
(4.3) Eficácia e usabilidade: ampla aplicação, suporta qualquer plataforma                                                                                                        

5. Para os parâmetros configuráveis ​​do protocolo de transporte, consulte o site oficial: http://activemq.apache.org/configuring-version-5-transports.html

 

2) Novo protocolo I / O API (NIO)

Os protocolos de comunicação cliente-broker suportados pelo ActiveMQ são: TCP, NIO, UDP, SSL, Http (s), VM.

O arquivo para configurar o Conector de Transporte está na tag <transportConnectors> no conf / activemq.xml do diretório de instalação do activeMQ.
 

1. O protocolo NIO é semelhante ao protocolo TCP, mas o NIO se concentra mais nas operações de acesso subjacentes. Ele permite que os desenvolvedores tenham mais chamadas do cliente e chamadas do lado do servidor para o mesmo recurso.

Carga pesada

2. Cenários adequados para usar o protocolo NIO:

(2.1) Pode haver um grande número de Clientes para se conectar ao Broker.Em geral, um grande número de Clientes para se conectar ao Broker é restringido pelos threads do sistema operacional. Portanto, a implementação de NIO requer menos threads para executar do que TCP, por isso é recomendado usar o protocolo NIO

(2.2) Pode haver uma transmissão de rede muito lenta para o Broker, o NIO oferece melhor desempenho do que o TCP.

3. A forma URI da conexão NIO: nio / nome do host: porta? Chave = valor

4. Exemplo de configuração do conector de transporte, consulte o site oficial:

http://activemq.apache.org/configuring-version-5-transports.html
 

 

O Transporte NIO

Igual ao transporte TCP, exceto que o pacote New / O (NIO) é usado, que pode fornecer melhor desempenho. O pacote Java NIO não deve ser confundido com o pacote AlO4J da IBM.

Para mudar de TCP para Nlo, simplesmente altere a parte do esquema do URl. Aqui está um exemplo conforme definido no arquivo de configuração XML de um broker.
 

<broker>
  ...
  <transportConnectors>
    <transportConnector name="nio" uri="nio://0.0.0.0:61616"/>  
  </<transportConnectors>
  ...
</broker>

 

3) protocolo AMQP

Ou seja, o Advanced Message Queuing Protocol, um protocolo de enfileiramento de mensagens avançado padrão da camada de aplicativo que fornece serviços de unificação de mensagens, é um desenvolvimento do protocolo da camada de aplicativo.

Padrões de lançamento, projetados para middleware orientado a mensagens. Clientes e middleware de mensagem baseados neste protocolo podem transmitir mensagens e não são afetados por diferentes produtos de cliente / middleware.

Restrições na linguagem de desenvolvimento e outras condições.

ActiveMQ suporta o protocolo AMQP 1.0, que é um padrão OASIS.
 

Disponibilidade

Disponível a partir do ActiveMQ versão 5.8.

Habilitando o ActiveMQ Broker para AMQP

Para habilitar o suporte ao protocolo AMQP no broker, adicione a seguinte configuração de conector de transporte referenciando o esquema amqp em seu URl:

<transportConnectors>
    <transportconnector name="amqp"uri="amqp://0.0.0.0:5672"/>
</transportConnectors>


Ele é habilitado na configuração do servidor ActiveMQ padrão. Para obter mais ajuda, consulte Executar Broker.
 

(4) protocolo MQTT

 

MQTT (Message Queuing Telemetry Transport) é um protocolo de mensagens instantâneas desenvolvido pela IBM, que pode se tornar a Internet das Coisas

partes importantes de. O protocolo suporta todas as plataformas e pode conectar quase todos os itens da rede ao exterior, e pode ser usado como sensores e atuadores (como comunicação

O protocolo de comunicação de casas de conexão via Twitter).

Com preguiça de ler a versão oficial do site: https://s2.ax1x.com/2019/08/29/mL4W38.png
 

Ativando o ActiveMQ Broker para MQTT

É muito fácil habilitar ActiveMQ para MQTT. Basta adicionar um conector ao broker usando a URL MQTT.

<transportConnectors>
   <transportConnector name="mqtt" uri="mqtt://localhost:1883"/>
</transportConnectors>

 

5) Protocolo Secure Sockets Layer (SSL)

Forma de URL de conexão: ssl: // hostname: port? chave = valor

2. Exemplo de configuração do conector de transporte:

<transportConnectors>
   <transportConnector name="ssl" uri="ssl://localhost:61618?trace=true"/>
</transportConnectors>

 


 

6) Acordo STORM

STOMP, Streaming Text Orientated Message Protocol, é um Streaming Text Orientated Message Protocol, um tipo de Message Oriented Message Protocol (MOM).

Middleware, um protocolo de texto simples projetado por middleware orientado a mensagens.

Visite o site oficial: https://activemq.apache.org/stomp
 

(7) Protocolo WebSocket-ws

Ou visite o web café oficial: https://activemq.apache.org/websockets

 

2.3, aprimoramento de desempenho NIO


(1) Depois de configurar o NIO, o desempenho deve ser ok. Existe alguma otimização adicional?

O cabeçalho do formato URI começa com "nio", indicando que esta porta usa o modelo IO de rede NIO baseado no protocolo TCP. Mas este método de configuração só pode fazer com que este fim

A porta suporta o protocolo Openwire. Como fazer essa porta suportar o modelo de E / S da rede NIO e fazer com que ela suporte vários protocolos?

(2) Use a palavra-chave auto

Ainda é o site oficial a ser visitado: https://activemq.apache.org/auto

Habilitando AUTO sobre NIO


Para configurar a detecção automática de formato de fio do ActiveMQ em uma conexão NIO TCP, use o prefixo de transporte auto + nio. Por exemplo, adicione a seguinte configuração de transporte em seu arquivo XML:
 

 

3) Use o símbolo "+" para definir várias características para a porta

Se você não especificar as portas de escuta de rede do ActiveMQ, essas portas usarão o modelo IO de rede BIO. (OpenWire, STOMP, AMQP ..

…)

Portanto, para melhorar o desempenho do rendimento da rede de um único nó primeiro, preciso especificar claramente o modelo de E / S da rede ativa, conforme mostrado abaixo: O cabeçalho do formato URI começa com "nio", tabela

Mostra que esta porta usa o modelo IO de rede NIO baseado no protocolo TCP.
 

 

 


 

Acho que você gosta

Origin blog.csdn.net/m0_46405589/article/details/115131113
Recomendado
Clasificación