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.jsoncon i seguenti dettagli sulle quote del disco:{ "properties": { "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.jsonnel 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.jsonnuovo 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à supportate.
Impossibile aggiornare le seguenti proprietà del broker:
-
advertised. -
authorizer. -
broker. -
client.quota.callback.class -
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 listener in testo semplice e 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.
Le operazioni del cluster e le richieste di lavoro associate non riescono se i valori di configurazione non sono validi. Un valore predefinito viene applicato solo quando non viene specificato alcun valore per una proprietà di configurazione. Se si specifica un valore, l'operazione non riesce se il valore non è corretto, poiché il servizio non torna ai valori predefiniti quando viene impostato un valore.
Di seguito è riportato un esempio di configurazioni personalizzate non valide che causano l'errore della richiesta di lavoro.
{
"listeners": "PROTOCOL:
/
/:9092", // Fails: Protocol not supported.
"num.network.threads": -5, // Fails: Cannot be negative.
"num.io.threads": "eight", // Fails: Should be an integer (like, 8).
"socket.send.buffer.bytes": 0, // Fails: Value is too low.
"socket.receive.buffer.bytes": 9999999999, // Fails: Value is too high.
"socket.request.max.bytes": -104857600, // Fails: Negative value.
"log.retention.hours": "one hundred", // Fails: Should be an integer.
"log.segment.bytes": 123.45, // Fails: Should be an integer, not a decimal.
"log.retention.check.interval.ms": "five minutes",// Fails: Should be an integer in ms.
"num.partitions": 0, // Fails: Should be at least 1.
"default.replication.factor": 5, // Fails: May fail if fewer than 5 brokers.
"min.insync.replicas": 10, // Fails: Higher than replication factor.
"message.max.bytes": -1000012, // Fails: Negative value.
"replica.fetch.max.bytes": "1MB", // Fails: Should be an integer.
"offsets.topic.replication.factor": "three", // Fails: Should be an integer.
"transaction.state.log.replication.factor": -1, // Fails: Negative value.
"transaction.state.log.min.isr": 0 // Fails: Should be at least 1.
}