Todos os produtos
Search
Central de documentação

Simple Message Queue (formerly MNS):Push messages from a topic to a queue

Última atualização: Jun 27, 2026

Ao publicar uma mensagem em um tópico do Simple Message Queue (anteriormente MNS), o SMQ a entrega automaticamente a uma ou mais filas por meio de assinaturas. Esse padrão de publicação/assinatura desacopla produtores e consumidores: os produtores publicam no tópico sem precisar saber quais filas processarão as mensagens, e cada fila assinante recebe sua própria cópia de forma independente.

Casos de uso comuns incluem:

  • Processamento de pedidos: um sistema de e-commerce publica eventos de pedido em um tópico. Filas separadas tratam atualizações de estoque, processamento de pagamentos e envio de notificações em paralelo.

  • Distribuição de logs: um tópico centralizado de logging distribui entradas de log para diferentes filas, permitindo alertas em tempo real, arquivamento de longo prazo e processamento analítico.

  • Compartilhamento de eventos entre contas: um tópico compartilhado entrega eventos a filas de diferentes contas da Alibaba Cloud, viabilizando arquiteturas com múltiplas equipes ou aplicações.

Este guia aborda todo o processo de configuração: crie uma fila, crie um tópico, vincule-os com uma assinatura, publique uma mensagem e verifique a entrega.

Pré-requisitos

Antes de começar, certifique-se de ter:

  • Uma conta Alibaba Cloud com acesso ao console do SMQ

  • (Apenas para cenários entre contas) Uma função do RAM com autorização entre contas e seu Alibaba Cloud Resource Name (ARN)

Etapa 1: Crie uma fila

A fila recebe e armazena as mensagens enviadas pelo tópico. Configure-a conforme o processamento de mensagens da sua aplicação consumidora.

  1. Faça login no console do SMQ.

  2. No painel de navegação à esquerda, escolha Queue Model > Queues.

  3. Na barra de navegação superior, selecione uma região.

  4. Na página Queues, clique em Create Queue.

  5. No painel Create Queue, configure os parâmetros a seguir e clique em OK.

    Parâmetro

    Descrição

    Name

    Nome da fila. Exemplo: order-processing-queue.

    Maximum Message Length

    Tamanho máximo do corpo de uma única mensagem enviada à fila, em bytes.

    Long Polling Period

    Tempo máximo (em segundos) que uma solicitação ReceiveMessage aguarda a chegada de uma mensagem antes de retornar uma resposta vazia. Defina como 0 para desativar o long polling.

    Visibility Timeout Period

    Após um consumidor receber uma mensagem, ela permanece invisível para outros consumidores durante este período (em segundos). Caso a mensagem não seja excluída dentro desse prazo, ela se torna visível novamente. Para mais informações, consulte Visibilidade da mensagem.

    Message Retention Period

    Tempo máximo (em segundos) que uma mensagem permanece na fila. Após esse período, a mensagem é excluída independentemente de ter sido recebida.

    Message Delay Period

    Tempo (em segundos) durante o qual todas as mensagens enviadas para esta fila ficam ocultas antes de ficarem disponíveis para consumo.

    Enable Logging Feature

    Ative o logging para enviar logs de operações da fila a um Logstore. Consulte rastreamentos de mensagens, atrasos e outros dados operacionais nos logs. Para mais informações, visualize Gerenciamento de logs.

Após a criação, a fila aparece na página Queues.

Etapa 2: Crie um tópico

O tópico funciona como ponto de entrada para as mensagens publicadas. Toda mensagem publicada no tópico é entregue a todos os endpoints assinantes.

  1. No painel de navegação à esquerda, escolha Topic Model > Topics.

  2. Na página Topics, clique em Create Topic.

  3. No painel Create Topic, configure os parâmetros abaixo e clique em OK.

    Parâmetro

    Descrição

    Name

    Nome do tópico. Exemplo: order-events-topic.

    Maximum Message Length

    Tamanho máximo do corpo de uma única mensagem publicada no tópico, em bytes.

    Enable Logging Feature

    Ative o logging para enviar logs de operações do tópico a um Logstore. Consulte rastreamentos de mensagens, atrasos e outros dados operacionais nos logs. Para mais informações, visualize Gerenciamento de logs.

Após criar o tópico, o console redireciona para a página Topic Details.

Etapa 3: Crie uma assinatura

Uma assinatura vincula um tópico a uma fila. Quando uma mensagem é publicada no tópico, o SMQ envia uma cópia para a fila assinante. A configuração varia dependendo se a fila pertence à mesma conta ou a uma conta diferente.

Assinatura na mesma conta

Utilize este método quando o tópico e a fila pertencem à mesma conta da Alibaba Cloud.

  1. No painel de navegação à esquerda, escolha Topic Model > Subscriptions.

  2. Na página Subscriptions, clique em Create Subscription.

  3. No painel Create Subscription, configure as opções a seguir e clique em OK.

    Parâmetro

    Descrição

    Topic Name

    Tópico monitorado por esta assinatura.

    Subscription Name

    Nome desta assinatura. Exemplo: order-topic-to-queue.

    Subscription

    Selecione Queue.

    Cross-Account

    Selecione Intra-Account.

    Receiver Endpoint

    Selecione a fila criada na Etapa 1.

    Message Filtering Tag

    (Opcional) String de tag para filtragem de mensagens. Apenas mensagens publicadas com uma tag correspondente são entregues a esta fila.

    Retry Policy

    Comportamento de nova tentativa quando a entrega da mensagem falha. Consulte Políticas de nova tentativa.

    Message Format

    Formato de envio das mensagens para a fila.

Assinatura entre contas

Adote este método quando a fila pertence a uma conta diferente da Alibaba Cloud.

  1. No painel de navegação à esquerda, escolha Topic Model > Subscriptions.

  2. Na página Subscriptions, clique em Create Subscription.

  3. No painel Create Subscription, configure as opções abaixo e clique em OK.

    Parâmetro

    Descrição

    Topic Name

    Tópico monitorado por esta assinatura.

    Subscription Name

    Nome desta assinatura. Exemplo: cross-account-order-sub.

    Subscription

    Selecione Queue.

    Cross-Account

    Selecione Cross-Account.

    Receiver Endpoint

    ARN da fila de destino. Encontre o ARN na seção Basic Information da página Queue Details. Formato: acs:mns:cn-hangzhou:${accountId}:/queues/${queueName}.

    Service-linked Role

    ARN da função do RAM autorizada para entrega de mensagens entre contas. Para detalhes sobre como conceder permissões e obter o ARN, consulte Autorização de envio entre contas.

    Message Filtering Tag

    (Opcional) String de tag para filtragem de mensagens. Apenas mensagens publicadas com uma tag correspondente são entregues a esta fila.

    Retry Policy

    Comportamento de nova tentativa quando a entrega da mensagem falha. Consulte Políticas de nova tentativa.

    Message Format

    Formato de envio das mensagens para a fila.

Políticas de nova tentativa

Política

Comportamento

BACKOFF_RETRY

Tenta até 3 vezes. O intervalo entre as tentativas é um valor aleatório entre 10 e 20 segundos.

DECAY_RETRY

Executa até 176 tentativas ao longo de 1 dia. O intervalo (em segundos) aumenta exponencialmente: 1, 2, 4, 8, ..., 512, mantendo-se em 512 segundos nas tentativas restantes.

Etapa 4: Publicar uma mensagem

Com a assinatura configurada, publique uma mensagem no tópico. O SMQ a entregará automaticamente à fila assinante.

  1. Na página Topics, localize o tópico e clique em Publish Message na coluna Actions.

  2. Na página Publish Message To Topic - Quick Start, configure as opções a seguir e clique em Publish Message.

    Parâmetro

    Descrição

    Message Content

    Corpo da mensagem. Exemplo: {"orderId": "123-456", "item": "Widget", "quantity": 2}.

    Message Tag

    (Opcional) String de tag para filtragem. Somente assinaturas com uma tag de filtragem correspondente recebem esta mensagem.

    Subscription Type

    Selecione Queue.

Etapa 5: Verifique a entrega da mensagem

Confirme se a mensagem publicada chegou à fila.

  1. Na página Queues, localize a fila e, na coluna Action, escolha More > Send Messages.

  2. (Opcional) Na página Send And Receive Messages In Queue - Quick Start, na seção Receive Message, clique em Edit Parameters of Receiving Messages. No painel Edit Parameters of Receiving Messages, defina Receive Times e Polling Period e clique em OK.

  3. Na seção Receive Message, clique em Receive Message. As mensagens recebidas aparecem em uma lista abaixo do botão.

  4. (Opcional) Na lista de mensagens, clique em Details na coluna Actions para abrir a caixa de diálogo Message Details e verificar o conteúdo da mensagem.

Se o conteúdo da mensagem corresponder ao publicado na Etapa 4, o envio do tópico para a fila está funcionando corretamente.

Tópicos relacionados