As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Quando você habilita o armazenamento em camadas para um tópico novo ou existente, o Apache Kafka copia segmentos de log fechados do armazenamento primário para o armazenamento em camadas.
-
O Apache Kafka copia somente segmentos de log fechados. Ele copia todas as mensagens do segmento de log para o armazenamento em camadas.
-
Os segmentos ativos não estão qualificados para o armazenamento em camadas. O tamanho do segmento de log (segment.bytes) ou o tempo de rolagem do segmento (segment.ms) controla a taxa de fechamento do segmento e a taxa com a qual o Apache Kafka os copia para o armazenamento em camadas.
As configurações de retenção para um tópico com o armazenamento em camadas habilitado são diferentes das configurações para um tópico sem o armazenamento em camadas habilitado. As regras a seguir controlam a retenção de mensagens em tópicos com o armazenamento em camadas habilitado:
-
Você define a retenção no Apache Kafka com duas configurações: log.retention.ms (tempo) e log.retention.bytes (tamanho). Essas configurações determinam a duração total e o tamanho dos dados que o Apache Kafka retém no cluster. Independentemente de você habilitar ou não o modo de armazenamento em camadas, defina essas configurações no nível do cluster. Você pode substituir as configurações no nível do tópico pelas configurações do tópico.
Ao habilitar o armazenamento em camadas, você também pode especificar por quanto tempo o nível primário de armazenamento de alto desempenho armazena os dados. Por exemplo, se um tópico tiver uma configuração de retenção geral (log.retention.ms) de 7 dias e retenção local (local.retention.ms) de 12 horas, o armazenamento primário do cluster vai reter os dados somente nas primeiras 12 horas. O nível de armazenamento de baixo custo retém os dados por 7 dias completos.
-
As configurações usuais de retenção se aplicam ao log completo. Isso inclui suas partes primárias e em camadas.
-
As configurações local.retention.ms ou local.retention.bytes controlam a retenção de mensagens no armazenamento primário. Quando os dados atingem os limites de configuração de retenção do armazenamento primário (local.retention.ms/bytes) em um log completo, o Apache Kafka copia os dados do armazenamento primário para o armazenamento em camadas. Assim, os dados ficarão elegíveis para expiração.
-
Quando o Apache Kafka copia uma mensagem em um segmento de log para o armazenamento em camadas, ele remove a mensagem do cluster com base nas configurações retention.ms ou retention.bytes.
Exemplo de cenário de armazenamento em camadas do Amazon MSK
Esse cenário ilustra como um tópico existente que tem mensagens no armazenamento primário se comporta quando o armazenamento em camadas está habilitado. Você habilita o armazenamento em camadas neste tópico ao definir remote.storage.enable como true
. Neste exemplo, retention.ms está definido como 5 dias e local.retention.ms está definido como 2 dias. Veja a seguir a sequência de eventos quando um segmento expira.
Tempo T0: antes de você habilitar o armazenamento em camadas.
Antes de você habilitar o armazenamento em camadas para este tópico, há dois segmentos de log. Um dos segmentos está ativo para uma partição 0 de tópico existente.

Tempo T1 (< 2 dias): armazenamento em camadas habilitado. Segmento 0 copiado para o armazenamento em camadas.
Após habilitar o armazenamento em camadas para esse tópico, o Apache Kafka copia o segmento 0 de log para o armazenamento em camadas depois que o segmento satisfizer as configurações iniciais de retenção. O Apache Kafka também vai reter a cópia de armazenamento principal do segmento 0. O segmento 1 ativo ainda não está qualificado para a cópia para o armazenamento em camadas. Neste cronograma, o Amazon MSK ainda não aplica nenhuma das configurações de retenção para nenhuma das mensagens no segmento 0 e no segmento 1. (local.retenção). bytes/ms, retention.ms/bytes)

Tempo T2: retenção local em vigor.
Após 2 dias, as configurações de retenção primária entram em vigor para o segmento 0 que o Apache Kafka copiou para o armazenamento em camadas. A configuração de local.retention.ms como 2 dias determina isso. Agora, o segmento 0 expira do armazenamento primário. O segmento 1 ativo ainda não está qualificado para expiração nem está qualificado para a cópia para o armazenamento em camadas.

Tempo T3: retenção geral em vigor.
Após 5 dias, as configurações de retenção entram em vigor e o Kafka limpa o segmento 0 de log e as mensagens associadas do armazenamento em camadas. O segmento 1 ainda não está qualificado para expiração nem para cópia para armazenamento em camadas porque está ativo. O segmento 1 ainda não está fechado, portanto não é elegível para a rolagem de segmentos.
