As filas exclusivas no ApsaraMQ for RabbitMQ ficam visíveis apenas para a conexão que as criou e são excluídas automaticamente quando essa conexão é encerrada.
O que é uma fila exclusiva?
As filas exclusivas têm as seguintes características:
-
A fila exclusiva é visível somente para os canais da conexão que a declarou inicialmente.
Outras conexões não podem declarar uma fila exclusiva com o mesmo nome nem acessar a fila existente.
-
A fila exclusiva é excluída automaticamente quando sua conexão é encerrada.
Mesmo que você defina
durablecomotrue, a fila e seus dados serão excluídos assim que a conexão for fechada.
Cenários comuns
Use filas exclusivas quando produtores e consumidores executarem no mesmo processo e a perda de dados for tolerável.
Riscos
A fila exclusiva e seus dados são excluídos caso a conexão seja encerrada inesperadamente. As causas mais frequentes incluem:
Chamada do método
Close()pelo clienteAtualizações ou reinicializações inesperadas do broker
Timeout de heartbeat da conexão
Outros erros, como throttling
Tenha cautela ao usar filas exclusivas.
Como declarar uma fila exclusiva
Chame channel.queueDeclare com o parâmetro exclusive definido como true.
Exemplo em Java:
/**
* queue: the queue name.
* durable: specifies whether to persist the queue.
* exclusive: specifies whether the queue is exclusive.
* autoDelete: specifies whether to automatically delete the queue.
* arguments: other parameters.
*/
channel.queueDeclare("queueName", true, true, false, null);