Todos os produtos
Search
Central de documentação

ApsaraMQ for RocketMQ:Armazenamento e limpeza de mensagens

Última atualização: Jun 27, 2026

O ApsaraMQ for RocketMQ retém mensagens por um período configurável chamado duração de armazenamento. Após o término desse período, as mensagens são limpas automaticamente, independentemente de terem sido consumidas ou não.

Compreender o armazenamento e a limpeza de mensagens auxilia nos seguintes aspectos:

  • SLA para armazenamento: A duração de armazenamento define o intervalo de tempo em que os consumidores podem obter mensagens. Esse aspecto é relevante para cenários que exigem longos períodos de consumo, tratamento de acúmulo de mensagens e recuperação de falhas.

  • Avaliação de custos de armazenamento: O ApsaraMQ for RocketMQ armazena mensagens em discos. Assim, é possível avaliar o espaço necessário e reservar recursos de armazenamento antecipadamente.

Como funciona

As mensagens chegam ao broker e são anexadas às filas na ordem em que são recebidas. Em teoria, a quantidade de mensagens que uma fila pode armazenar é ilimitada. No entanto, como o espaço físico de armazenamento de um broker é limitado, as mensagens não podem ser armazenadas permanentemente. Cada mensagem possui uma duração de armazenamento que começa no momento em que é produzida e não tem relação com o status de consumo.

  • Mensagens dentro da duração de armazenamento são retidas.

  • Mensagens que excedem a duração de armazenamento são limpas, tenham sido lidas por um consumidor ou não.

Message storage

As seções a seguir explicam três aspectos desse mecanismo: por que a retenção baseada em tempo é utilizada, por que a duração de armazenamento é gerenciada por nó e por que a retenção não depende do status de consumo.

Por que usar retenção baseada em tempo

A duração de armazenamento — e não a contagem de mensagens ou o tamanho total — determina por quanto tempo as mensagens são mantidas. A retenção baseada em tempo oferece um ciclo de vida previsível: cada mensagem segue a mesma regra de retenção, independentemente do volume do tópico ou do throughput do consumidor.

Essa duração também atua como um Service Level Agreement (SLA) para os consumidores. Eles devem ler suas mensagens antes que a duração de armazenamento expire; caso contrário, essas mensagens ficarão indisponíveis.

Por que a duração de armazenamento é gerenciada por nó

A duração de armazenamento é gerenciada no nível do nó do broker, e não por tópico ou por fila. Esse design decorre da arquitetura interna de armazenamento:

  • Organização de dados em dois níveis: O ApsaraMQ for RocketMQ utiliza um método unificado de organização em dois níveis, composto por filas de log físicas e filas lógicas leves. Essa estrutura proporciona operações de leitura e gravação ordenadas, alto throughput e alta performance, mas não suporta políticas de retenção por tópico ou por fila.

  • Meio de armazenamento compartilhado: Mesmo quando arquivos de armazenamento independentes são gerados para diferentes tópicos ou filas, eles compartilham o mesmo meio de armazenamento subjacente. A retenção por tópico não garante o SLA se o cluster estiver com pouca capacidade.

Para aplicar diferentes períodos de retenção a cargas de trabalho distintas, implante-as em clusters separados com configurações de duração de armazenamento diferentes.

A retenção não depende do status de consumo

As mensagens podem se acumular em uma fila quando os consumidores estão inativos ou consumindo lentamente. Reter todas as mensagens não consumidas indefinidamente esgotaria o armazenamento e degradaria a performance de leitura e gravação de novas mensagens.

O ApsaraMQ for RocketMQ aplica uma política de retenção unificada: todas as mensagens seguem a mesma duração de armazenamento, consumidas ou não. Durante esse período, os consumidores podem ler uma mensagem a qualquer momento ou relê-la várias vezes usando o recurso Redefinir um offset de consumidor.

Retenção garantida na Alibaba Cloud

O ApsaraMQ for RocketMQ é construído sobre o armazenamento nativo da nuvem da Alibaba Cloud, que desacopla a capacidade de armazenamento das restrições de disco local. Todas as mensagens são retidas durante toda a duração de armazenamento especificada. Não ocorre exclusão forçada devido a espaço insuficiente em disco.

Nota: No Apache RocketMQ open-source, as mensagens são armazenadas em discos locais. Quando o espaço em disco está baixo, o sistema exclui mensagens à força para manter a estabilidade, mesmo que a duração de armazenamento configurada não tenha expirado. Essa limitação não se aplica ao ApsaraMQ for RocketMQ.

Observações de uso

Recomendamos que você especifique uma duração de armazenamento maior com base nos requisitos do seu negócio. Uma duração mais longa oferece mais margem para:

  • Recuperação de falhas de emergência

  • Solução de problemas de emergência

  • Rastreamento retrospectivo de mensagens

Próximos passos