View a markdown version of this page

Configurazioni personalizzate del broker MSK Express (accesso) Read/Write - Amazon Managed Streaming per Apache Kafka

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazioni personalizzate del broker MSK Express (accesso) Read/Write

Puoi aggiornare le configurazioni dei read/write broker utilizzando la funzionalità di configurazione degli aggiornamenti di Amazon MSK o utilizzando l'API di Apache Kafka. AlterConfig Le configurazioni del broker Apache Kafka sono statiche o dinamiche. Le configurazioni statiche richiedono il riavvio del broker per l'applicazione della configurazione, mentre le configurazioni dinamiche non richiedono il riavvio del broker. Per ulteriori informazioni sulle proprietà di configurazione e sulle modalità di aggiornamento, consulta Aggiornamento delle configurazioni del broker.

Configurazioni statiche sui broker MSK Express

Puoi utilizzare Amazon MSK per creare un file di configurazione MSK personalizzato per impostare le seguenti proprietà statiche. Amazon MSK imposta e gestisce tutte le altre proprietà che non hai impostato. È possibile creare e aggiornare file di configurazione statici dalla console MSK o utilizzando il comando configurations.

Proprietà Description Valore predefinito

allow.everyone.if.no.acl.found

Se vuoi impostare questa proprietà su false, assicurati innanzitutto di definire gli ACL di Apache Kafka per il tuo cluster. Se impostate questa proprietà su false e non definite prima gli ACL di Apache Kafka, perderete l'accesso al cluster. In tal caso, puoi aggiornare nuovamente la configurazione e impostare questa proprietà su true per riottenere l'accesso al cluster.

true

auto.create.topics.enable

Abilita la creazione automatica di un argomento sul server.

false

compression.type

Specifica il tipo di compressione finale per un determinato argomento. Questa configurazione accetta i codec di compressione standard: gzip, snappy, lz4, zstd.

Questa configurazione accetta inoltreuncompressed, il che equivale a nessuna compressione, e ciò significa mantenere il codec di compressione producer originale impostato dal produttore.

Apache Kafka (impostazione predefinita)

connections.max.idle.ms

Timeout delle connessioni inattive in millisecondi. I thread del processore dei socket del server chiudono le connessioni inattive per un periodo superiore al valore impostato per questa proprietà.

Impostazione predefinita di Apache Kafka

custom.advertised.listeners

Configura nomi di dominio personalizzati per i listener rivolti al cliente sul tuo cluster Amazon MSK. Amazon MSK applica automaticamente la configurazione a tutti i broker, inclusi i nuovi broker aggiunti durante lo scaling o la sostituzione. Funziona su entrambi i cluster ZooKeeper e su KRAFT. Esempio di formato:. LISTENER_NAME://b-{broker_id}.kafka.mycompany.com:9000+{broker_id}

I nomi degli ascoltatori consentiti sono CLIENTCLIENT_SECURE,CLIENT_SECURE_PUBLIC,CLIENT_SASL_SCRAM, CLIENT_SASL_SCRAM_PUBLICCLIENT_IAM, eCLIENT_IAM_PUBLIC.

Per ulteriori informazioni, consulta Configura nomi di dominio personalizzati per il tuo cluster Amazon MSK.

Nessuno (disabilitato)

delete.topic.enable

Abilita l'operazione di eliminazione argomento. Se questa configurazione è disattivata, non è possibile eliminare un argomento tramite lo strumento di amministrazione.

Impostazione predefinita di Apache Kafka

group.initial.rebalance.delay.ms

Il tempo durante il quale il coordinatore del gruppo attende che altri consumatori si uniscano a un nuovo gruppo prima di eseguire il primo ribilanciamento. Un ritardo più lungo significa potenzialmente meno ribilanciamenti, ma aumenta il tempo prima dell'inizio dell'elaborazione.

Impostazione predefinita di Apache Kafka

group.max.session.timeout.ms

Timeout sessione massimo per i consumatori registrati. Timeout più lunghi offrono ai consumatori più tempo per elaborare i messaggi tra heartbeat, ma implicano un aumento del tempo richiesto per rilevare gli errori.

Impostazione predefinita di Apache Kafka

leader.imbalance.per.broker.percentage

Il rapporto di squilibrio leader consentito per broker. Il controller attiva un bilanciamento dei leader se supera questo valore per broker. Questo valore è specificato in percentuale.

Impostazione predefinita di Apache Kafka

log.cleanup.policy La policy di pulizia predefinita per i segmenti oltre la finestra di conservazione. Un elenco separato da virgole di policy valide. Policy valide sono delete e compact. Per i cluster abilitati allo storage su più livelli, la policy valida è solo. delete Apache Kafka (impostazione predefinita)
log.message.timestamp.after.max.ms

La differenza di timestamp consentita tra il timestamp del messaggio e il timestamp del broker. Il timestamp del messaggio può essere successivo o uguale al timestamp del broker, con la differenza massima consentita determinata dal valore impostato in questa configurazione.

In caso contrariolog.message.timestamp.type=CreateTime, il messaggio verrà rifiutato se la differenza di timestamp supera la soglia specificata. Questa configurazione viene ignorata se. log.message.timestamp.type=LogAppendTime

86400000 (24 * 60 * 60 * 1000 ms, ovvero 1 giorno)
log.message.timestamp.before.max.ms

La differenza di timestamp consentita tra il timestamp del broker e il timestamp del messaggio. Il timestamp del messaggio può essere precedente o uguale al timestamp del broker, con la differenza massima consentita determinata dal valore impostato in questa configurazione.

In caso contrariolog.message.timestamp.type=CreateTime, il messaggio verrà rifiutato se la differenza di timestamp supera la soglia specificata. Questa configurazione viene ignorata se. log.message.timestamp.type=LogAppendTime

86400000 (24 * 60 * 60 * 1000 ms, ovvero 1 giorno)
log.message.timestamp.type Specifica se il timestamp nel messaggio è l'ora di creazione del messaggio o l'ora di aggiunta del log. I valori consentiti sono CreateTime e LogAppendTime. Impostazione predefinita di Apache Kafka
log.retention.bytes Dimensione massima del log prima dell'eliminazione. Impostazione predefinita di Apache Kafka
log.retention.ms Numero di millisecondi necessari per conservare un file di registro prima di eliminarlo. Impostazione predefinita di Apache Kafka
max.connections.per.ip Il numero massimo di connessioni consentite da ciascun indirizzo IP. Può essere impostato su 0 se ci sono sostituzioni configurate utilizzando la max.connections.per.ip.overrides proprietà. Le nuove connessioni dall'indirizzo IP vengono interrotte se viene raggiunto il limite. Apache Kafka (impostazione predefinita)

max.incremental.fetch.session.cache.slots

Numero massimo di sessioni di recupero incrementali che vengono mantenute.

Impostazione predefinita di Apache Kafka

message.max.bytes

Dimensione massima del batch di record consentita da Kafka. Se aumenti questo valore e sono presenti consumatori più vecchi di 0.10.2, anche le dimensioni di recupero dei consumatori devono essere incrementate in modo che possano recuperare batch di record di queste dimensioni.

Nella versione più recente del formato del messaggio, i messaggi vengono sempre raggruppati in batch per maggiore efficienza. Nelle versioni precedenti del formato del messaggio, i record non compressi non sono raggruppati in batch; in tal caso, questo limite si applica solo a un singolo record. È possibile impostare questo valore per argomento con la configurazione a livello di argomento. max.message.bytes

Impostazione predefinita di Apache Kafka

num.partitions

Numero predefinito di partizioni per argomento.

1

offsets.retention.minutes

Dopo che un gruppo di consumatori perde tutti i suoi consumatori (ovvero, diventa vuoto) i suoi offset vengono mantenuti per questo periodo di conservazione prima di essere scartati. Per i consumatori autonomi (ovvero quelli che utilizzano l'assegnazione manuale), gli offset scadono dopo il momento dell'ultimo commit più questo periodo di conservazione.

Impostazione predefinita di Apache Kafka

replica.fetch.max.bytes

Numero di byte di messaggi da recuperare per ogni partizione. Questo valore non è un massimo assoluto. Se il primo batch di record nella prima partizione non vuota del recupero è più grande di questo valore, viene restituito il batch di record per garantire l'avanzamento. La proprietà message.max.bytes (configurazione broker) o max.message.bytes (configurazione argomento) specifica la dimensione massima del batch di record accettata dal broker.

Impostazione predefinita di Apache Kafka

replica.selector.class

Il nome completo della classe che implementa. ReplicaSelector Il broker utilizza questo valore per trovare la replica di lettura preferita. Se vuoi consentire ai consumatori di effettuare il recupero dalla replica più vicina, imposta questa proprietà su. org.apache.kafka.common.replica.RackAwareReplicaSelector

Impostazione predefinita di Apache Kafka

socket.receive.buffer.bytes

Buffer SO_RCVBUF dei socket del server dei socket. Se il valore è -1, viene utilizzato il sistema operativo predefinito.

102400

socket.request.max.bytes

Numero massimo di byte in una richiesta socket.

104857600

socket.send.buffer.bytes

Buffer SO_SNDBUF dei socket del server dei socket. Se il valore è -1, viene utilizzato il sistema operativo predefinito.

102400

transaction.max.timeout.ms

Timeout massimo per transazioni. Se il tempo di transazione richiesto da un cliente supera questo valore, il broker restituisce un errore in. InitProducerIdRequest Ciò evita un timeout troppo elevato per un client, che può rallentare i consumatori che leggono dagli argomenti inclusi nella transazione.

Apache Kafka (impostazione predefinita)

transactional.id.expiration.ms

Il tempo in millisecondi durante il quale il coordinatore della transazione attende di ricevere eventuali aggiornamenti sullo stato delle transazioni per la transazione corrente prima che il coordinatore faccia scadere il proprio ID transazionale. Questa impostazione influisce anche sulla scadenza dell'ID produttore perché fa sì che gli ID del produttore scadano quando questo tempo è trascorso dall'ultima scrittura con l'ID produttore specificato. Gli ID produttore potrebbero scadere prima se l'ultima scrittura dall'ID produttore viene eliminata a causa delle impostazioni di conservazione dell'argomento. Il valore minimo per questa proprietà è 1 millisecondo.

Apache Kafka (impostazione predefinita)

Configurazioni dinamiche su Express Brokers

Puoi utilizzare l' AlterConfig API Apache Kafka o Kafka-configs.sh lo strumento per modificare le seguenti configurazioni dinamiche. Amazon MSK imposta e gestisce tutte le altre proprietà che non imposti. Puoi impostare dinamicamente le proprietà di configurazione a livello di cluster e di broker che non richiedono il riavvio del broker.

Proprietà Description Valore predefinito

pubblicizzati.listeners

Listener da pubblicare per essere utilizzati dai clienti, se diversi dalla proprietà config. listeners Negli ambienti IaaS, potrebbe essere necessario che questa sia diversa dall'interfaccia a cui si collega il broker. Se non è impostato, verrà utilizzato il valore per i listener. A differenza dei listener, non è valido pubblicizzare il meta-indirizzo 0.0.0.0.

Inoltrelisteners, diversamente, in questa proprietà possono esserci porte duplicate, in modo che un listener possa essere configurato per pubblicizzare l'indirizzo di un altro listener. Ciò può essere utile in alcuni casi in cui vengono utilizzati sistemi di bilanciamento del carico esterni.

Questa proprietà è impostata a livello di broker.

null

compression.type

Il tipo di compressione finale per un determinato argomento. Puoi impostare questa proprietà sui codec di compressione standard (gzip, snappy, lz4 e zstd). Inoltre, accetta uncompressed. Questo valore equivale a nessuna compressione. Se imposti il valore su producer, significa mantenere il codec di compressione originale impostato dal produttore.

Impostazione predefinita di Apache Kafka
log.cleaner.delete.retention.ms Il periodo di tempo necessario per conservare i marcatori di cancellazione per gli argomenti compattati nel registro. Questa impostazione fornisce anche un limite di tempo in cui un consumatore deve completare una lettura se parte dall'offset 0 per assicurarsi di ottenere un'istantanea valida della fase finale. Altrimenti, le lapidi cancellate potrebbero essere raccolte prima che completino la scansione. 86400000 (24 * 60 * 60 * 1000 ms, ovvero 1 giorno), impostazione predefinita di Apache Kafka
log.cleaner.min.compaction.lag.ms Il tempo minimo in cui un messaggio rimarrà non compattato nel registro. Questa impostazione è applicabile solo ai log che vengono compattati. 0, impostazione predefinita di Apache Kafka
log.cleaner.max.compaction.lag.ms Periodo massimo in cui un messaggio rimarrà non idoneo per la compattazione nel registro. Questa impostazione è applicabile solo ai registri che vengono compattati. Questa configurazione sarebbe limitata all'intervallo di [7 giorni, Long.Max]. 9223372036854775807, impostazione predefinita di Apache Kafka

log.cleanup.policy

La policy di pulizia predefinita per i segmenti oltre la finestra di conservazione. Un elenco separato da virgole di policy valide. Policy valide sono delete e compact. Per i cluster abilitati allo storage su più livelli, la policy valida è solo. delete

Apache Kafka (impostazione predefinita)

log.message.timestamp.after.max.ms

La differenza di timestamp consentita tra il timestamp del messaggio e il timestamp del broker. Il timestamp del messaggio può essere successivo o uguale al timestamp del broker, con la differenza massima consentita determinata dal valore impostato in questa configurazione. In caso contrariolog.message.timestamp.type=CreateTime, il messaggio verrà rifiutato se la differenza di timestamp supera la soglia specificata. Questa configurazione viene ignorata se. log.message.timestamp.type=LogAppendTime

86400000 (24 * 60 * 60 * 1000 ms, ovvero 1 giorno)

log.message.timestamp.before.max.ms

La differenza temporale consentita tra il timestamp del broker e il timestamp del messaggio. Il timestamp del messaggio può essere precedente o uguale al timestamp del broker, con la differenza massima consentita determinata dal valore impostato in questa configurazione. In caso contrariolog.message.timestamp.type=CreateTime, il messaggio verrà rifiutato se la differenza di timestamp supera la soglia specificata. Questa configurazione viene ignorata se. log.message.timestamp.type=LogAppendTime

86400000 (24 * 60 * 60 * 1000 ms, ovvero 1 giorno)

log.message.timestamp.type

Specifica se il timestamp nel messaggio è l'ora di creazione del messaggio o l'ora di aggiunta del log. I valori consentiti sono CreateTime e LogAppendTime.

Impostazione predefinita di Apache Kafka

log.retention.bytes

Dimensione massima del log prima dell'eliminazione.

Impostazione predefinita di Apache Kafka

log.retention.ms

Numero di millisecondi necessari per conservare un file di registro prima di eliminarlo.

Impostazione predefinita di Apache Kafka

max.connection.creation.rate

La velocità massima di creazione della connessione consentita dal broker in qualsiasi momento.

Apache Kafka (impostazione predefinita)

numero massimo di connessioni

Il numero massimo di connessioni consentite nel broker in qualsiasi momento. Questo limite viene applicato in aggiunta a qualsiasi limite per IP configurato utilizzando. max.connections.per.ip

Apache Kafka (impostazione predefinita)

max.connections.per.ip

Il numero massimo di connessioni consentite da ciascun indirizzo IP. Può essere impostato su 0 se ci sono sostituzioni configurate utilizzando la proprietà max.connections.per.ip.overrides. Le nuove connessioni dall'indirizzo IP vengono interrotte se viene raggiunto il limite.

Apache Kafka (impostazione predefinita)

max.connections.per.ip.overrides

Un elenco separato da virgole di per-ip o hostname sostituisce il numero massimo predefinito di connessioni. Un valore di esempio è hostName:100,127.0.0.1:200

Impostazione predefinita di Apache Kafka

message.max.bytes

Dimensione massima del batch di record consentita da Kafka. Se aumenti questo valore e sono presenti consumatori più vecchi di 0.10.2, anche le dimensioni di recupero dei consumatori devono essere incrementate in modo che possano recuperare batch di record di queste dimensioni. Nella versione più recente del formato del messaggio, i messaggi vengono sempre raggruppati in batch per maggiore efficienza. Nelle versioni precedenti del formato del messaggio, i record non compressi non sono raggruppati in batch; in tal caso, questo limite si applica solo a un singolo record. È possibile impostare questo valore per argomento con la configurazione a livello di argomento. max.message.bytes

Impostazione predefinita di Apache Kafka

producer.id.expiration.ms

Il tempo in ms che il responsabile della partizione di un argomento attende prima della scadenza degli ID di produttore. Gli ID dei produttori non scadranno mentre una transazione ad essi associata è ancora in corso. Tieni presente che i producer ID possono scadere prima se l'ultima scrittura dall'ID produttore viene eliminata a causa delle impostazioni di conservazione dell'argomento. L'impostazione di questo valore uguale o superiore a delivery.timeout.ms può aiutare a prevenire la scadenza durante i tentativi e a proteggere dalla duplicazione dei messaggi, ma l'impostazione predefinita dovrebbe essere ragionevole per la maggior parte dei casi d'uso.

Impostazione predefinita di Apache Kafka
Nota

KRaft-based Sui cluster (inclusi tutti i cluster di broker Express), le sostituzioni dinamiche per broker non sono supportate. advertised.listeners Per configurare nomi di dominio personalizzati sui KRaft-based cluster, utilizza la proprietà statica. custom.advertised.listeners Per ulteriori informazioni, consulta Configura nomi di dominio personalizzati per il tuo cluster Amazon MSK.

Topic-level configurazioni su Express Brokers

Puoi utilizzare i comandi Apache Kafka per impostare o modificare le proprietà di configurazione a livello dell'argomento per argomenti nuovi ed esistenti. Se non puoi fornire alcuna configurazione a livello di argomento, Amazon MSK utilizza il broker predefinito. Come per le configurazioni a livello di broker, Amazon MSK protegge alcune proprietà di configurazione a livello di argomento dalle modifiche. Gli esempi includono il fattore di replica e. min.insync.replicas unclean.leader.election.enable Se provi a creare un argomento con un valore del fattore di replica diverso da3, Amazon MSK creerà l'argomento con un fattore di replica predefinito pari a. 3 Per ulteriori informazioni sulle proprietà di configurazione a livello di argomento ed esempi su come impostarle, consulta Topic-Level Configs nella documentazione di Apache Kafka.

Proprietà Description

cleanup.policy

Questa configurazione indica la politica di conservazione da utilizzare sui segmenti di registro. La politica di «eliminazione» (impostazione predefinita) eliminerà i vecchi segmenti una volta raggiunto il tempo di conservazione o il limite di dimensione. La politica «compatta» consentirà la compattazione dei log, che mantiene il valore più recente per ogni chiave. È anche possibile specificare entrambe le politiche in un elenco separato da virgole (ad esempio, «delete, compact»). In questo caso, i vecchi segmenti verranno eliminati in base al tempo di conservazione e alla configurazione delle dimensioni, mentre i segmenti conservati verranno compattati. La compattazione sui broker Express viene attivata dopo che i dati in una partizione raggiungono i 256 MB.

compression.type

Specifica il tipo di compressione finale per un determinato argomento. Questa configurazione accetta i codec di compressione standard (gzip,, snappylz4,zstd). Accetta inoltre ciò uncompressed che equivale a nessuna compressione, vale a dire mantenere il codec di compressione originale impostato dal produttore. producer

elimina.retention.ms

Il periodo di tempo necessario per conservare i marcatori di eliminazione delle lapidi per gli argomenti compattati nel registro. Questa impostazione stabilisce inoltre un limite di tempo entro il quale un utente deve completare una lettura se parte dall'offset 0 per assicurarsi di ottenere un'istantanea valida della fase finale. Altrimenti, le lapidi cancellate potrebbero essere raccolte prima che completino la scansione.

Il valore predefinito per questa impostazione è 86400000 (24 * 60 * 60 * 1000 ms, ovvero 1 giorno), Apache Kafka Default

max.message.bytes

La dimensione massima del batch di record consentita da Kafka (dopo la compressione, se la compressione è abilitata). Se viene aumentata e ci sono utenti più vecchi di0.10.2, è necessario aumentare anche la dimensione di recupero dei consumatori in modo che possano recuperare batch di record di così grandi dimensioni. Nella versione più recente del tipo di formato, i record vengono sempre raggruppati in batch ai fini dell'efficienza. Nelle versioni precedenti del tipo di formato, i record non compressi non sono raggruppati in batch e questo limite si applica solo a un singolo record in quel caso. Questo può essere impostato per argomento a seconda del livello dell'argomento. max.message.bytes config

message.timestamp.after.max.ms

Questa configurazione imposta la differenza temporale consentita tra il timestamp del messaggio e il timestamp del broker. Il timestamp del messaggio può essere successivo o uguale al timestamp del broker, con la differenza massima consentita determinata dal valore impostato in questa configurazione. In caso contrariomessage.timestamp.type=CreateTime, il messaggio verrà rifiutato se la differenza di timestamp supera la soglia specificata. Questa configurazione viene ignorata se. message.timestamp.type=LogAppendTime

message.timestamp.before.max.ms

Questa configurazione imposta la differenza temporale consentita tra il timestamp del broker e il timestamp del messaggio. Il timestamp del messaggio può essere precedente o uguale al timestamp del broker, con la differenza massima consentita determinata dal valore impostato in questa configurazione. In caso contrariomessage.timestamp.type=CreateTime, il messaggio verrà rifiutato se la differenza di timestamp supera la soglia specificata. Questa configurazione viene ignorata se. message.timestamp.type=LogAppendTime

message.timestamp.type

Definisce se il timestamp nel messaggio è l'ora di creazione del messaggio o l'ora di aggiunta del registro. Il valore deve essere uno o CreateTime LogAppendTime

min.compaction.lag.ms

Il tempo minimo in cui un messaggio rimarrà non compresso nel registro. Questa impostazione è applicabile solo ai log che vengono compattati.

Il valore predefinito per questa impostazione è 0, Apache Kafka Default

max.compaction.lag.ms

Periodo massimo in cui un messaggio rimarrà non idoneo per la compattazione nel registro. Questa impostazione è applicabile solo ai registri che vengono compattati. Questa configurazione sarebbe limitata nell'intervallo di [7 giorni, Long.Max].

Il valore predefinito per questa impostazione è 9223372036854775807, Apache Kafka Default.

retention.bytes

Questa configurazione controlla la dimensione massima a cui può arrivare una partizione (costituita da segmenti di log) prima di eliminare i vecchi segmenti di registro per liberare spazio se utilizziamo la politica di conservazione «elimina». Per impostazione predefinita, non ci sono limiti di dimensione, solo un limite di tempo. Poiché questo limite viene applicato a livello di partizione, moltiplicalo per il numero di partizioni per calcolare la conservazione degli argomenti in byte. Inoltre, funziona indipendentemente dalle configurazioni e dalle retention.bytes configuration configurazioni. segment.ms segment.bytes Inoltre, attiva il rollio di un nuovo segmento se retention.bytes è configurato a zero.

retention.ms

Questa configurazione controlla il tempo massimo di conservazione di un registro prima di eliminare i vecchi segmenti di registro per liberare spazio se utilizziamo la politica di conservazione «elimina». Ciò rappresenta uno SLA sulla rapidità con cui i consumatori devono leggere i propri dati. Se impostato su-1, non viene applicato alcun limite di tempo. Inoltre, retention.ms la configurazione funziona indipendentemente segment.ms dalle segment.bytes configurazioni. Inoltre, attiva il lancio di un nuovo segmento se la retention.ms condizione è soddisfatta.