O Simple Message Queue (anteriormente MNS) utiliza os termos a seguir para mensagens baseadas em filas. Familiarize-se com esses conceitos antes de configurar filas, enviar e receber mensagens ou gerencie o ciclo de vida das mensagens pela API.
Conta
ID da conta Alibaba Cloud. A conta que cria uma fila torna-se sua proprietária.
Fila
Destino que armazena mensagens até os consumidores as recuperarem. Produtores enviam mensagens para uma fila e consumidores as recebem. Cada mensagem em uma fila é identificada exclusivamente pela combinação do ID da mensagem e do handle de recebimento (ReceiptHandle).
Tipos de fila
|
Propriedade |
Fila padrão |
Fila com atraso |
|
Comportamento |
Mensagens disponíveis para consumo imediato |
Mensagens permanecem ocultas durante um período de atraso configurável antes de ficarem disponíveis |
|
Configuração de atraso |
DelaySeconds não definido ou definido como 0 |
Defina DelaySeconds por meio de CreateQueue ou SetQueueAttributes |
|
Quando usar |
Processamento em tempo real, quando as mensagens devem ser consumidas imediatamente |
Processamento diferido, quando é necessário um período de espera antes do consumo |
Proprietário da fila
A conta Alibaba Cloud que cria uma fila é sua proprietária. Os proprietários da fila têm autorização para executar todas as operações nela. Após ativar o Simple Message Queue (anteriormente MNS), chame a operação da API CreateQueue para criar uma fila. Consulte o ID da conta do proprietário da fila no site da Alibaba Cloud.
Produtor e consumidor
Produtor: cliente que envia mensagens para uma fila.
Consumidor: cliente que recebe mensagens de uma fila.
Endpoint
URL de acesso para chamadas à API do Simple Message Queue (anteriormente MNS). O formato é:
http://<AccountId>.mns.<Region>.aliyuncs.com
|
Espaço reservado |
Descrição |
|
|
Seu ID de conta Alibaba Cloud. Substitua pelo seu ID de conta real ao chamar operações da API. |
|
|
Região onde o Simple Message Queue (anteriormente MNS) está implantado, como |
Tipos de mensagem
|
Propriedade |
Mensagem padrão |
Mensagem com atraso |
|
Comportamento |
Disponível para consumo logo após a entrega |
Oculta por um período de atraso especificado antes de ficar disponível |
|
Configuração |
Comportamento padrão quando nenhum DelaySeconds por mensagem está definido |
Defina DelaySeconds na solicitação SendMessage |
Uma mensagem com atraso usa um atraso por mensagem definido no momento do envio. Uma fila com atraso aplica um atraso no nível da fila a todas as mensagens recebidas. Ambos usam DelaySeconds, mas em escopos diferentes.
ID da mensagem vs. handle de recebimento
|
Propriedade |
ID da mensagem |
Handle de recebimento |
|
Gerado quando |
Uma mensagem é enviada para uma fila |
Uma mensagem é consumida de uma fila |
|
Unicidade |
Exclusivo dentro de uma fila, não entre filas |
Exclusivo por operação de consumo |
|
Tempo de vida |
Permanente e imutável |
Temporário; expira quando o status da mensagem muda |
|
Uso principal |
Rastrear e verifique dados |
Exclua uma mensagem consumida ou modifique seu VisibilityTimeout |
|
Reutilização |
Válido durante todo o tempo de vida da mensagem |
Uso único; consuma a mensagem novamente para obter um novo handle |
Para exclua uma mensagem, use seu handle de recebimento, não o ID da mensagem.
Status da mensagem
Cada mensagem passa pelos seguintes status:
|
Status |
Descrição |
|
Active |
Disponível para consumo. Apenas mensagens neste status podem ser consumidas. |
|
Inactive |
Consumida e temporariamente oculta durante a duração do VisibilityTimeout. |
|
Delayed |
Aguardando o término do período DelaySeconds antes de se tornar Active. |
|
Deleted |
Excluída explicitamente por um consumidor usando seu handle de recebimento. |
|
Expired |
Excedeu o MessageRetentionPeriod e foi reciclada automaticamente. |
Transições de status
Mensagem padrão em uma fila padrão
A mensagem chega à fila com status Active.
Um consumidor recebe a mensagem. O status muda para Inactive durante o período do VisibilityTimeout.
-
Dois resultados são possíveis:
O consumidor exclui a mensagem dentro do período do VisibilityTimeout. O status muda para Deleted.
O período do VisibilityTimeout expira sem exclusão. O status retorna para Active e a mensagem fica disponível para consumo novamente.
Mensagem padrão em uma fila com atraso
A mensagem chega à fila com status Delayed.
Após o término do período DelaySeconds, o status muda para Active.
A partir desse ponto, a mensagem segue as mesmas transições de uma mensagem padrão em uma fila padrão.
Mensagem com atraso (atraso por mensagem)
A mensagem é enviada com um valor DelaySeconds por mensagem. O status inicial é Delayed.
Após o término do período DelaySeconds, o status muda para Active.
A partir desse ponto, a mensagem segue as mesmas transições de uma mensagem padrão em uma fila padrão.
Expiração da mensagem
Se uma mensagem não for excluída antes que seu MessageRetentionPeriod expire, o status mudará para Expired, independentemente do status atual. Mensagens expiradas são recicladas automaticamente.
Diagrama de transição de status

Diagrama do ciclo de vida da mensagem
