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 do RAM: Granting permissions (optional).
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 da instância.
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 usado.
Auto Delete
Exclui a fila após o último consumidor cancelar a assinatura. 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 |
Defina se deve usar a política de nova tentativa no nível da instância. |
|
Maximum Number of Deliveries |
Número máximo de tentativas de entrega de uma mensagem. |
|
Consumption Timeout Period |
Tempo máximo para um consumidor processar uma mensagem. |
Política de dead-letter
|
Parâmetro |
Descrição |
|
DeadLetterExchange |
Exchange que recebe mensagens de dead-letter. |
|
DeadLetterRoutingKey |
Chave de roteamento usada para encaminhar mensagens de dead-letter para a 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. Message TTL. |
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, use 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);
Limite máximo 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 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 filas.
Para consultar os limites de diferentes instâncias, visualize Queues per instance em Cluster limits no tópico Limits.
Visualizar 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 e 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 a um nome de 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.
Visualizar 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
Excluir 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, em seguida, clique em Delete no canto superior direito da página Queue Details.
Várias filas: Selecione as filas e clique em Batch Delete abaixo da lista de filas.
Confirme a exclusão.