As filas armazenam mensagens em buffer até que os consumidores as recuperem. Crie, monitore, vincule e exclua filas no console do ApsaraMQ for RabbitMQ.
Pré-requisitos
Certifique-se de ter:
Uma instância do ApsaraMQ for RabbitMQ
Um vhost na instância onde deseja criar filas
(Opcional) Para usuários RAM: Conceder permissões (opcional).
Criar uma fila
Faça login no console do ApsaraMQ for RabbitMQ. No painel de navegação à esquerda, clique em Instances.
Na barra de navegação superior, selecione a região da instância e clique no nome dela.
No painel de navegação à esquerda, clique em Queues.
Na página Queues, clique em Change ao lado de vhost e selecione o vhost no qual deseja criar a fila. Em seguida, clique em Create Queue.
-
No painel Create Queue, configure os parâmetros a seguir e clique em OK.
Parâmetro
Descrição
Queue Name
Nome da fila. Regras de nomenclatura:
1. The queue name supports only letters, digits, hyphens (-), underscores (_), periods (.), pound signs (#), slashes (/), at signs (@), colons (:), commas (,), spaces ( ), and greater-than signs (>). Length: 1–255 characters.
2. After a queue is created, you cannot modify its name. If you want to modify its name, delete the queue and re-create it.
amq.é um prefixo reservado e não pode ser utilizado.
Auto Delete
Exclui a fila após o cancelamento da assinatura pelo último consumidor. Yes: ativado. No: desativado.
Retry Policy
Parâmetros opcionais de nova tentativa.
Dead-letter Policy
Parâmetros opcionais de dead-letter. Clique para expandir.
Política de nova tentativa
|
Parâmetro |
Descrição |
|
Inherit Instance Configurations |
Indica se a política de nova tentativa no nível da instância deve ser usada. |
|
Maximum Number of Deliveries |
Número máximo de tentativas de entrega de uma mensagem. |
|
Consumption Timeout Period |
Tempo máximo para processamento de uma mensagem pelo consumidor. |
Política de dead-letter
|
Parâmetro |
Descrição |
|
DeadLetterExchange |
Exchange receptora de mensagens de dead-letter. |
|
DeadLetterRoutingKey |
Chave de roteamento para encaminhar mensagens de dead-letter à fila de destino. |
|
MessageTTL |
Tempo de vida em milissegundos. Mensagens não consumidas tornam-se dead letters após esse período e são roteadas para a exchange de dead-letter. TTL da mensagem. |
Perguntas frequentes
P: Posso especificar qual cliente consome mensagens?
Não. O ApsaraMQ for RabbitMQ não permite especificar um cliente consumidor específico. A distribuição de mensagens segue os mecanismos padrão do RabbitMQ de round-robin ou despacho baseado em prioridade.
P: Como crio uma fila sequencial (x-single-active-consumer) via código?
O console do ApsaraMQ for RabbitMQ não suporta a configuração do parâmetro x-single-active-consumer. Para criar uma fila sequencial, utilize o SDK. Chame o método channel.queueDeclare e defina "x-single-active-consumer": true no parâmetro arguments.
Exemplo:
Map<String, Object> arguments = new HashMap<>();
arguments.put("x-single-active-consumer", true);
channel.queueDeclare("my-queue", true, false, false, arguments);
P: Por que a criação automática de fila falha (Failed to declare queue)?
O ApsaraMQ for RabbitMQ não suporta a criação automática de filas. Antes de declarar uma fila no código, crie-a manualmente no console ou chame a API.
Quantidade máxima de filas
Se a cota de filas da instância atingir o limite:
Para instâncias das edições Enterprise, Professional e Platinum Edition, clique em Upgrade para fazer o upgrade.
Para instâncias (Shared) Pay-by-Messaging-Request, (Shared) Pay-by-Provisioned-Capacity-and-Elastic-Traffic e (Exclusive) Pay-by-Provisioned-Capacity-and-Elastic-Traffic, clique em Change Quota para ajustar o limite de quantidade de filas.
Para consultar os limites de quantidade de diferentes instâncias, veja Queues per instance em Cluster limits no tópico Limites.
Visualize estatísticas da fila
As métricas variam conforme a edição da instância.
Na página Queues, localize a fila desejada e clique em Details na coluna Actions.
-
Na página Queue Details, clique na aba Dashboard.
Edição da instância
Fonte de monitoramento
Referência
Enterprise Edition, Enterprise Platinum Edition
Managed Service for Prometheus e Managed Service for Grafana
Standard Edition, Professional Edition
Cloud Monitor
A Standard Edition não está mais disponível para compra. Instâncias existentes ainda podem ser utilizadas.
Vincular uma exchange a uma fila
Na página Queues, localize a fila desejada e clique em Details na coluna Actions.
Na página Queue Details, clique na aba Bound as Destination. Em seguida, clique em Add Binding.
No painel Add Binding, configure Source Exchange e Routing Key, depois clique em OK.
Para exchanges x-consistent-hash, a chave de roteamento especifica o peso da fila (um número inteiro de 1 a 20).
Enviar mensagens para uma fila
Envie mensagens para uma fila a partir de uma exchange vinculada.
Na página Queues, localize a fila desejada e clique em Details na coluna Actions.
Na página Queue Details, clique na aba Bound as Destination.
Na lista de vínculos, localize o vínculo desejado e clique em Send Message na coluna Actions.
No painel Send Message, selecione uma opção mandatory, insira um Message ID e o Message Body, e clique em OK.
Ao enviar mensagens usando a exchange padrão (com nome de exchange vazio), a chave de roteamento deve corresponder exatamente ao nome de uma fila existente. A conta do cliente também precisa ter permissões de gravação na fila de destino. Se a fila não existir ou as permissões forem insuficientes, as mensagens serão descartadas silenciosamente, sem registro de envio no console. Antes de enviar mensagens, verifique se a fila foi declarada corretamente e se a conta do cliente possui as permissões de gravação necessárias.
Visualize consumer tags
Uma consumer tag identifica exclusivamente um cliente consumidor. O broker gera uma automaticamente caso o cliente não especifique nenhuma. Utilize a tag gerada automaticamente em vez de uma personalizada.
Cada consumer tag deve ser exclusiva para um único cliente. O SDK rastreia consumidores em uma conexão usando um Map<String, Consumer> indexado pela consumer tag. Se consumidores na mesma conexão compartilharem uma tag, apenas um será retomado após a reconexão automática. Os demais não serão restaurados.
Para visualizar as consumer tags, o cliente consumidor deve estar conectado ao broker. Na página Queues, localize a fila desejada e clique em Consumer Tags na coluna Actions.
Limpar uma fila
Na página Queues, localize a fila desejada e escolha More > Clear Messages na coluna Actions.
Excluir filas
A exclusão de uma fila remove permanentemente todas as mensagens não consumidas. Essa ação não pode ser desfeita.
-
Na página Queues, exclua filas usando um dos métodos a seguir:
Fila única: Localize a fila e escolha More > Delete na coluna Actions. Alternativamente, clique no nome da fila ou em Details, e então clique em Delete no canto superior direito da página Queue Details.
Múltiplas filas: Selecione as filas e clique em Batch Delete abaixo da lista de filas.
Confirme a exclusão.