Níveis e Fluxos da Qualidade de Serviço do WebSphere MQ Telemetry Transport

O WebSphere MQ Telemetry Transport entrega mensagens de acordo com os níveis definidos em um QoS (Qualidade de Serviço). Os níveis são descritos abaixo:

Nível de QoS 0 Entrega no máximo uma vez
As mensagens são entregues de acordo com os melhores esforços da rede TCP/IP subjacente. Uma resposta não é esperada e nenhuma semântica de nova tentativa está definida no protocolo. A mensagem chega no intermediário uma vez ou nunca chega.

A tabela abaixo mostra o fluxo de protocolo de nível 0 de QoS.

Client Mensagem e Direção Intermediário
QoS = 0

PUBLISH
---------->

Ação: Publicar mensagem para assinantes
Nível de QoS 1 Entrega pelo menos uma vez
O recebimento de uma mensagem pelo intermediário é confirmado por uma mensagem PUBACK. Se houver um defeito identificado do link de comunicações ou do dispositivo de envio, ou se a mensagem de confirmação não for recebida após um período de tempo especificado, o emissor reenviará a mensagem com o conjunto de bits DUP no cabeçalho da mensagem. A mensagem chega no intermediário pelo menos uma vez. As mensagens SUBSCRIBE e UNSUBSCRIBE utilizando o nível QoS 1.

Uma mensagem com nível de QoS 1 possui um ID de Mensagem no cabeçalho da mensagem.

A tabela abaixo mostra o fluxo de protocolo de nível 1 de QoS

Client Mensagem e Direção Intermediário

QoS = 1
DUP = 0
ID da Mensagem = x

PUBLISH
---------->

Ações:
  • Armazenar mensagem no banco de dados
  • Publicar mensagem aos assinantes
Ação: Descartar mensagem

PUBACK
<----------

 

Se o cliente não receber uma mensagem PUBACK (em um período de tempo definido no aplicativo, ou se for detectado um defeito e a sessão de comunicação for reiniciada), o cliente reenviará a mensagem PUBLISH com o conjunto de sinalizadores DUP.

Quando ele recebe uma mensagem duplicada do cliente, o intermediário publica novamente a mensagem para os assinantes e envia outra mensagem PUBACK.

Nível de QoS 2 Entrega exatamente uma vez
Os fluxos de protocolos adicionais acima do nível de QoS 1 asseguram que mensagens duplicadas não sejam entregues para o aplicativo de recebimento. Este é o mais alto nível de entrega, para utilização quando mensagens duplicadas não forem aceitáveis. Ocorre um aumento no tráfego da rede, mas geralmente é aceitável, devido à importância do conteúdo da mensagem.

Uma mensagem com nível de QoS 2 possui um ID de Mensagem no cabeçalho da mensagem.

A tabela abaixo mostra o fluxo de protocolo de nível 2 de QoS.

Client Mensagem e Direção Intermediário

QoS = 2
DUP = 0
ID da Mensagem = x

PUBLISH
---------->

Ação: Armazenar mensagem no banco de dados
 

PUBREC
<----------

ID da Mensagem = x
ID da Mensagem = x

PUBREL
---------->

Ações:
  • Atualizar banco de dados
  • Publicar mensagem aos assinantes
Ação: Descartar mensagem

PUBCOMP
<----------

ID da Mensagem = x

Se for detectado um defeito, ou após um período de tempo definido, cada parte do fluxo do protocolo será tentada novamente com o conjunto de bits DUP. Os fluxos de protocolo adicionais asseguram que a mensagem seja entregue aos assinantes apenas uma vez.

Pois QoS1 e QoS2 indicam que mensagens devem ser entregues, o intermediário armazena mensagens em um banco de dados. Se o intermediário tem problemas ao acessar esses dados, as mensagens podem ser perdidas. Para obter detalhes adicionais e para quais ações pode ser executadas para reduzir esses problemas, consulte Projetando Aplicativos de Telemetria.

Suposições para os Níveis 1 e 2 de QoS

Em qualquer rede, é possível que dispositivos ou links de comunicação falhem. Se isso acontecer, um final do link pode não saber o que está acontecendo no outro final; esses são conhecidos como janelas em dúvida. Nesses cenários, é necessário fazer algumas suposições sobre a confiabilidade dos dispositivos e redes envolvidos na entrega das mensagens.

O WebSphere MQ Telemetry Transport assume que o cliente e o intermediário geralmente são confiáveis e que o canal de comunicações provavelmente parece não ser confiável. Se o dispositivo cliente falhar, provavelmente será por um defeito catastrófico, em vez de um transitório. A possibilidade de recuperar dados do dispositivo é pequena. Alguns dispositivos possuem armazenamento não-volátil, por exemplo, ROM flash. A provisão de armazenamento mais persistente no dispositivo do cliente protege os dados mais importantes contra alguns modos de defeito.

Além do defeito básico do link de comunicações, a matriz do modo de defeito se torna complexa, resultando em mais cenários do que a especificação para WebSphere MQ Telemetry Transport pode tratar.

O retardo de tempo(intervalo de novas tentativas) antes de reenviar uma mensagem cujo recebimento não foi confirmado é específico do aplicativo e não é definido pela especificação de protocolo.

Conceitos relacionados
WebSphere MQ Telemetry Transport
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac10850_