AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Come posso configurare il periodo di conservazione per il mio cluster MSK?
Desidero aggiornare il periodo di conservazione per il mio cluster Amazon Managed Streaming per Apache Kafka (Amazon MSK).
Breve descrizione
Utilizza il periodo di conservazione dei dati di Amazon MSK per controllare la quantità di dati che archivi in un cluster MSK. Quando imposti un periodo di conservazione, puoi eliminare automaticamente i vecchi messaggi che non ti servono e potresti ridurre i costi di archiviazione e migliorare le prestazioni del cluster.
Per impostazione predefinita, il periodo di conservazione dei dati di Amazon MSK è di 7 giorni. Tuttavia, puoi modificare il periodo di conservazione in base alle tue esigenze. Se non configuri correttamente il periodo di conservazione, Amazon MSK potrebbe non eliminare i dati nel periodo di tempo corretto.
Apache Kafka divide le partizioni dei topic in segmenti. La dimensione massima predefinita di un segmento è 1 GB. Per modificare la dimensione massima, aggiorna log.segment.bytes a livello di broker o **segment.bytes ** a livello di topic. Per ulteriori informazioni, consulta Updating broker configs (Aggiornamento delle configurazioni del broker) e Updating default topic configuration (Aggiornamento della configurazione predefinita di un topic) sul sito web Apache Kafka.
Apache Kafka utilizza anche log.roll.ms per controllare il ciclo di vita di un segmento. Queste impostazioni determinano l'età massima di un segmento e il valore predefinito è 168 ore. Apache Kafka crea nuovi segmenti solo quando segments.bytes o log.roll.ms raggiunge il valore limite configurato. Una volta che Apache Kafka ha creato il nuovo segmento, i segmenti più vecchi sono inattivi. MSK elimina poi i segmenti più vecchi quando i nuovi segmenti raggiungono il valore retention.ms configurato.
Nota: solo i segmenti inattivi possono essere eliminati.
Risoluzione
Per configurare il periodo di conservazione, modifica il parametro retention.ms e l'impostazione segment.ms.
Ad esempio, se imposti il valore di segment.ms su 24hrs e il valore di retention.ms su 24hrs, Amazon MSK elimina i dati dopo 48 ore. Il segmento è quindi inattivo, a seconda che soddisfi prima l'intervallo di tempo di 24 ore o il limite di dati di 1 GB.
Per eliminare i dati dopo 24 ore, riduci il valore predefinito di segment.ms a 1hr e il valore di retention.ms a 23hrs. Amazon MSK elimina i dati dopo 24 ore o quando il segmento raggiunge il valore di dimensione configurato, a seconda dell'evento che si verifica per primo.
Per calcolare la dimensione corrente di tutti i topic, esegui questo comando dall'interfaccia a riga di comando (CLI) di Apache Kafka in Amazon MSK:
./kafka-topics.sh --command-config client.properties --bootstrap-server $BK --list | xargs -I{} sh -c "echo -n '{} - ' && ./kafka-log-dirs.sh --command-config client.properties --bootstrap-server $BK --topic-list {} --describe | grep '^{' | jq '[ ..|.size? | numbers ] | add' | numfmt --to iec " | tee /tmp/topics-by-size.list
Nota: il comando precedente utilizza l'interfaccia a riga di comando di Apache Kafka per elencare tutti i topic, quindi calcola e restituisce la dimensione di ogni topic.
Esempio di output:
BrandNewTopic - 0 CrossAccountMskTopic - 0 NewTopicwithNewInstance - 0 SameAccountMskTopic - 0 Test - 0 __amazon_msk_canary - 4.6M __consumer_offsets - 33M dataloss - 1.8K datalossB1 - 999 provisioned - 0
Di seguito sono riportate le best practice per l'utilizzo dello storage:
- Controlla il valore di log.segments.bytes o log.roll.ms e riduci il valore per il segmento. Se imposti un valore inferiore, puoi creare segmenti frequentemente e disattivare i segmenti più vecchi.
- Ottimizza i parametri segment.ms e segment.bytes per bilanciare l'efficienza dello storage e le prestazioni del broker. Non impostare i parametri troppo bassi perché ciò può creare un sovraccarico aggiuntivo della CPU e sollecitare eccessivamente le risorse del broker.
Nota: log.segments.bytes e log.roll.ms sono impostazioni dei segmenti a livello di broker. segment.bytes e segment.ms sono impostazioni dei segmenti a livello di topic. Le impostazioni a livello di topic hanno una precedenza elevata rispetto alle impostazioni a livello di broker.
Informazioni correlate
retention.ms sul sito web Apache Kafka
- Argomenti
- Analytics
- Lingua
- Italiano
