Gestione delle configurazioni dei cluster
Ogni cluster Kafka in Streaming con Apache Kafka dispone di un file di configurazione cluster contenente tutte le proprietà di configurazione del server.
- Lista delle configurazioni cluster
- Creazione di una configurazione cluster
- Recupero dei dettagli di configurazione del cluster
- Aggiornamento della configurazione cluster
- Eliminazione della configurazione cluster
È inoltre necessario gestire le configurazioni client.
Proprietà broker configurabili
Con Streaming con Apache Kafka, è possibile personalizzare la configurazione Kafka aggiornando proprietà broker specifiche. Il servizio semplifica la configurazione di Kafka limitando le proprietà che è possibile aggiornare. Convalidare il file di configurazione del cluster rispetto alle proprietà supportate per evitare un funzionamento imprevisto.
Se vengono fornite configurazioni non valide o errate, vengono ignorate e vengono utilizzati i valori predefiniti come definiti da Apache Kafka. Ciò garantisce la stabilità del cluster e impedisce che una configurazione errata influisca sulla disponibilità del servizio.
Per le configurazioni predefinite impostate da OCI Streaming con Apache Kafka, vedere Opzioni predefinite del cluster.
È possibile aggiornare le seguenti proprietà del broker:
Property | Valore di esempio | Scopo |
---|---|---|
client.quota.callback.static.storage.soft
|
97% di totalStorageBytes
|
Imposta un limite relativo alla capacità di storage su disco del broker. |
client.quota.callback.static.storage.hard
|
98% di totalStorageBytes
|
Imposta un limite assoluto per la capacità di storage su disco del broker. |
default.replication.factor
|
1 | Imposta il fattore di replica predefinito per i nuovi argomenti. |
log.retention.hours
|
168 | Imposta il tempo minimo per conservare i segmenti di log. |
log.segment.bytes
|
1.073.741.824 | Imposta la dimensione massima di un singolo file di segmento di log. |
log.cleanup.policy
|
elimina | Imposta la strategia di conservazione dei log (delete o compact ). |
message.max.bytes
|
1.048.588 | Imposta la dimensione massima di un messaggio accettato dal broker. |
min.insync.replicas
|
1 | Imposta il numero minimo di repliche in-sync necessarie per confermare una scrittura. |
num.io.threads
|
8 | Imposta il numero di thread per le operazioni di I/O su disco. |
num.replica.fetchers
|
1 | Imposta il numero di thread utilizzati per replicare i dati da altri broker. |
unclean.leader.election.enable
|
falso | Consente di eleggere come leader le repliche non sincronizzate. |
Definisci quote disco broker personalizzate
È possibile definire quote disco broker personalizzate.
- Creare o aggiornare il file JSON di configurazione cluster con la configurazione quota richiesta. Ad esempio, aggiornare il file
kafka-config.json
con i seguenti dettagli sulle quote del disco:{ "properties": { "client.quota.callback.class": "io.strimzi.kafka.quotas.StaticQuotaCallback", "client.quota.callback.static.storage.soft": "1000000000", "client.quota.callback.static.storage.hard": "2000000000", "client.quota.callback.static.storage.check-interval": "30" } }
- Specificare il file di configurazione creato o aggiornato nel passo precedente come file di configurazione per il cluster. Ad esempio, specificare
--latest-config file://kafka-config.json
nel comando CLI create o updatecluster-config
. -
Aggiornare il cluster Kafka utilizzando l'API o l'interfaccia CLI e specificare il file di configurazione
kafka-config.json
nuovo o aggiornato.
Proprietà broker non configurabile
Streaming con Apache Kafka imposta alcune proprietà del broker come non modificabili e se si configurano queste proprietà vengono ignorate dal servizio. Per evitare un comportamento imprevisto, è necessario convalidare il file di configurazione in base alle proprietà di supporto.
Impossibile aggiornare le seguenti proprietà del broker:
-
advertised.
-
authorizer.
-
broker.
-
controller
-
cruise.control.metrics.reporter.bootstrap.
-
cruise.control.metrics.topic
-
host.name
-
inter.broker.listener.name
-
listener.
-
listeners.
-
log.dir
-
password.
-
port
-
process.roles
-
sasl.
-
security.
-
servers.node.id
-
ssl.
-
super.user
Ad esempio, Streaming con Apache Kafka non supporta i listener in testo semplice, pertanto la configurazione dell'impostazione "listeners": "PLAINTEXT://:9092"
nel file di configurazione del cluster non è supportata. Se si applica questa impostazione per configurare un listener con testo non codificato, la configurazione viene ignorata silenziosamente e il listener con testo non codificato non viene reso attivo e viene registrata un'avvertenza.
Di seguito è riportato un esempio di configurazioni personalizzate non valide. Qui, tutte le impostazioni vengono ignorate e vengono applicate le impostazioni predefinite.
{
"listeners": "PROTOCOL://:9092", // Ignored: Protocol not supported.
"num.network.threads": -5, // Ignored: Cannot be negative.
"num.io.threads": "eight", // Ignored: Should be an integer (like, 8).
"socket.send.buffer.bytes": 0, // Ignored: Value is too low.
"socket.receive.buffer.bytes": 9999999999, // Ignored: Value is too high.
"socket.request.max.bytes": -104857600, // Ignored: Negative value.
"log.retention.hours": "one hundred", // Ignored: Should be an integer.
"log.segment.bytes": 123.45, // Ignored: Should be an integer, not a decimal.
"log.retention.check.interval.ms": "five minutes",// Ignored: Should be an integer in ms.
"num.partitions": 0, // Ignored: Should be at least 1.
"default.replication.factor": 5, // Ignored: May fail if fewer than 5 brokers.
"min.insync.replicas": 10, // Ignored: Higher than replication factor.
"message.max.bytes": -1000012, // Ignored: Negative value.
"replica.fetch.max.bytes": "1MB", // Ignored: Should be an integer.
"offsets.topic.replication.factor": "three", // Ignored: Should be an integer.
"transaction.state.log.replication.factor": -1, // Ignored: Negative value.
"transaction.state.log.min.isr": 0 // Ignored: Should be at least 1.
}