MSKConfigurazioni Amazon personalizzate - 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à.

MSKConfigurazioni Amazon personalizzate

Puoi utilizzare Amazon MSK per creare una MSK configurazione personalizzata in cui impostare le seguenti proprietà. Le proprietà che non vengono impostate in modo esplicito ricevono i valori che hanno in MSKConfigurazione Amazon predefinita. Per ulteriori informazioni sulle proprietà di configurazione, consulta la pagina relativa alla configurazione di Apache Kafka.

Proprietà di configurazione di Apache Kafka
Nome Descrizione
allow.everyone.if.no.acl.found Se desideri impostare questa proprietà sufalse, assicurati innanzitutto di definire Apache Kafka ACLs per il tuo cluster. Se imposti questa proprietà su false e non definisci prima Apache KafkaACLs, perdi l'accesso al cluster. In tal caso, puoi aggiornare nuovamente la configurazione e impostare questa proprietà su true per ottenere nuovamente l'accesso al cluster.
auto.create.topics.enable Abilita la creazione automatica di argomenti sul server.
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.

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à.
default.replication.factor Il fattore di replica predefinito per argomenti creati automaticamente.
delete.topic.enable Abilita l'operazione di eliminazione argomento. Se questa configurazione è disattivata, non è possibile eliminare un argomento tramite lo strumento di amministrazione.
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.
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.
group.min.session.timeout.ms Timeout sessione minimo per consumatori registrati. Timeout più brevi comportano un rilevamento più rapido degli errori, ma implicano un heartbeat dei consumatori più frequente. Ciò può sovraccaricare le risorse del broker.
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.
log.cleaner.delete.retention.ms Quantità di tempo per cui Apache Kafka deve conservare i record eliminati. Il valore minimo è 0.
log.cleaner.min.cleanable.ratio

Questa proprietà di configurazione può avere valori compresi tra 0 e 1. Questo valore determina la frequenza con cui il compattatore di log tenta di pulire il log (se la compattazione dei log è abilitata). Per impostazione predefinita, Apache Kafka evita di pulire un log se più del 50% del log è stato compattato. Questo rapporto limita lo spazio massimo che il log spreca con i duplicati (al 50%, ciò significa che al massimo il 50% del log potrebbe essere duplicato). Un rapporto più elevato significa un numero inferiore, pulizie più efficienti, ma anche più spreco di spazio nel log.

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 all'archiviazione a più livelli, è valida solo la policy delete.
log.flush.interval.messages Numero di messaggi che si accumulano in una partizione di log prima che i messaggi vengano scaricati su disco.
log.flush.interval.ms Tempo massimo, in millisecondi, di mantenimento in memoria di un messaggio in un argomento prima che venga scaricato su disco. Se questo valore non viene impostato, viene utilizzato il valore in log.flush.scheduler.interval.ms. Il valore minimo è 0.
log.message.timestamp.difference.max.ms La differenza massima consentita tra il timestamp del momento in cui un broker riceve un messaggio e il timestamp specificato nel messaggio. Se log.message.timestamp.type=, un messaggio viene rifiutato se la differenza di timestamp supera questa CreateTime soglia. Questa LogAppendTime configurazione viene ignorata se log.message.timestamp.type=.
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.
log.retention.bytes Dimensione massima del log prima dell'eliminazione.
log.retention.hours Numero di ore per cui mantenere un file di log prima di eliminarlo, terziario alla proprietà log.retention.ms.
log.retention.minutes Numero di minuti per cui mantenere un file di log prima di eliminarlo, secondario alla proprietà log.retention.ms. Se questo valore non viene impostato, viene utilizzato il valore in log.retention.hours.
log.retention.ms Numero di millisecondi per cui mantenere un file di log prima di eliminarlo. Se non è impostato, viene utilizzato il valore in log.retention.minutes.
log.roll.ms Tempo massimo prima che un nuovo segmento di log venga distribuito (in millisecondi). Se questo valore non viene impostato, viene utilizzato il valore in log.roll.hours. Il valore minimo possibile per questa proprietà è 1.
log.segment.bytes Dimensione massima di un singolo file di log.
max.incremental.fetch.session.cache.slots Numero massimo di sessioni di recupero incrementali che vengono mantenute.
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.

Questo valore può essere impostato a livello di argomento con la configurazione max.message.bytes.

min.insync.replicas

Quando un produttore imposta le ACK su "all" (o "-1"), il valore in min.insync.replicas specifica il numero minimo di repliche che devono riconoscere una scrittura affinché questa sia considerata correttamente completata. Se questo minimo non può essere raggiunto, il produttore solleva un'eccezione (o). NotEnoughReplicas NotEnoughReplicasAfterAppend

È possibile utilizzare i valori in min.insync.replicas e ACK per applicare maggiori garanzie di durabilità. Ad esempio, è possibile creare un argomento con un fattore di replica di 3, impostare min.insync.replicas su 2 e produrre con ACK di "all". Ciò garantisce che il produttore generi un'eccezione se la maggior parte delle repliche non riceve una scrittura.

num.io.thread Il numero di thread utilizzati dal server per elaborare le richieste, che possono includere I/O del disco.
num.network.threads Il numero di thread utilizzati dal server per ricevere richieste dalla rete e inviarle le risposte.
num.partitions Numero predefinito di partizioni di log per argomento.
num.recovery.threads.per.data.dir Il numero di thread per directory di dati da utilizzare per il ripristino dei log all'avvio e per lo scaricamento all'arresto.
num.replica.fetchers Il numero di thread fetcher utilizzati per rispondere ai messaggi da un broker di origine. Incrementando questo valore, è possibile aumentare il grado di parallelismo I/O nel broker follower.
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 (ossia che utilizzano l'assegnazione manuale), gli offset scadono dopo l'ora dell'ultimo commit più questo periodo di conservazione.
offsets.topic.replication.factor Il fattore di replica per l'argomento di offset. La selezione di un valore più alto garantisce la disponibilità. La creazione di argomenti interni non riesce fino a quando la dimensione del cluster non soddisfa questo requisito del fattore di replica.
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.
replica.fetch.response.max.bytes Il numero massimo di byte previsto per l'intera risposta di recupero. I record vengono recuperati in batch. Se il primo batch di record nella prima partizione non vuota del recupero è più grande di questo valore, il batch di record verrà comunque restituito per garantire l'avanzamento. Questo non è un massimo assoluto. Le proprietà message.max.bytes (configurazione broker) o max.message.bytes (configurazione argomento) specificano la dimensione massima del batch di record accettata dal broker.
replica.lag.time.max.ms Se un follower non ha inviato alcuna richiesta di recupero o non ha utilizzato l'offset di fine log del leader per almeno questo numero di millisecondi, il leader rimuove il follower da. ISR

MinValue: 10000

MaxValue = 30000

replica.selector.class Il nome completo della classe che implementa. ReplicaSelector Il broker utilizza questo valore per trovare la replica di lettura preferita. Se utilizzi Apache Kafka versione 2.4.1 o superiore e desideri consentire ai consumatori di recuperare dati dalla replica più vicina, imposta questa proprietà su org.apache.kafka.common.replica.RackAwareReplicaSelector. Per ulteriori informazioni, consulta Apache Kafka versione 2.4.1 (usa invece 2.4.1.1).
replica.socket.receive.buffer.bytes Il buffer di ricezione socket per le richieste di rete.
socket.receive.buffer.bytes Il RCVBUF buffer SO_ dei socket del server socket. Il valore minimo che è possibile impostare per questa proprietà è -1. Se il valore è -1, Amazon MSK utilizza il sistema operativo predefinito.
socket.request.max.bytes Il numero massimo di byte in una richiesta socket.
socket.send.buffer.bytes Il SNDBUF buffer SO_ dei socket del server socket. Il valore minimo che è possibile impostare per questa proprietà è -1. Se il valore è -1, Amazon MSK utilizza il sistema operativo predefinito.
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.
transaction.state.log.min.isr Configurazione min.insync.replicas ignorata per l'argomento di transazione.
transaction.state.log.replication.factor Il fattore di replica per l'argomento di transazione. La selezione di un valore più alto per questa proprietà aumenta la disponibilità. La creazione di argomenti interni non riesce fino a quando la dimensione del cluster non soddisfa questo requisito del fattore di replica.
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 influenza anche la scadenza dell'ID del produttore perché fa IDs scadere il produttore quando questo tempo trascorre dopo l'ultima scrittura con l'ID produttore specificato. Producer IDs potrebbe 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.
unclean.leader.election.enable Indica se le repliche non incluse nel ISR set devono fungere da guida come ultima risorsa, anche se ciò potrebbe causare la perdita di dati.
zookeeper.connection.timeout.ms

ZooKeeper cluster di modalità. Tempo massimo di attesa del client per stabilire una connessione. ZooKeeper Se questo valore non viene impostato, viene utilizzato il valore fornito in zookeeper.session.timeout.ms.

MinValue = 6000

MaxValue (incluso) = 18000

zookeeper.session.timeout.ms

ZooKeeper più cluster. Il timeout della ZooKeeper sessione Apache in millisecondi.

MinValue = 6000

MaxValue (incluso) = 18000

Per informazioni su come creare una MSK configurazione personalizzata, elencare tutte le configurazioni o descriverle, consulta. MSKOperazioni di configurazione di Amazon Per creare un MSK cluster con una MSK configurazione personalizzata o aggiornare un cluster con una nuova configurazione personalizzata, vedereAmazonMSK: come funziona.

Quando aggiorni il MSK cluster esistente con una MSK configurazione personalizzata, Amazon MSK esegue riavvii progressivi quando necessario e utilizza le migliori pratiche per ridurre al minimo i tempi di inattività dei clienti. Ad esempio, dopo il MSK riavvio di ogni broker, Amazon MSK cerca di consentire al broker di recuperare i dati che il broker potrebbe aver perso durante l'aggiornamento della configurazione prima di passare al broker successivo.

MSKConfigurazione dinamica di Amazon

Oltre alle proprietà di configurazione MSK fornite da Amazon, puoi impostare dinamicamente proprietà di configurazione a livello di cluster e di broker che non richiedono il riavvio del broker. È possibile impostare dinamicamente alcune proprietà di configurazione. Si tratta delle proprietà che non sono contrassegnate come di sola lettura nella tabella in Broker Configs nella documentazione di Apache Kafka. Per informazioni sulla configurazione dinamica e sui comandi di esempio, consulta la pagina Updating Broker Configs nella documentazione di Apache Kafka.

Nota

Puoi impostare la proprietà advertised.listeners, ma non la proprietà listeners.

Configurazione Amazon a livello di argomento MSK

Puoi utilizzare i comandi Apache Kafka per impostare o modificare le proprietà di configurazione a livello dell'argomento per argomenti nuovi ed esistenti. Per ulteriori informazioni sulle proprietà di configurazione a livello di argomento ed esempi di come impostarle, consulta la pagina Topic-Level Configs nella documentazione ufficiale di Apache Kafka.

Stati di MSK configurazione di Amazon

Una MSK configurazione Amazon può trovarsi in uno dei seguenti stati. Per eseguire un'operazione su una configurazione, la configurazione deve trovarsi nello stato ACTIVE o DELETE_FAILED:

  • ACTIVE

  • DELETING

  • DELETE_FAILED