Clusterkonfigurationen verwalten
Jedes Kafka-Cluster in Streaming mit Apache Kafka verfügt über eine Clusterkonfigurationsdatei, die alle Serverkonfigurationseigenschaften enthält.
- Clusterkonfigurationen auflisten
- Clusterkonfiguration erstellen
- Clusterkonfigurationsdetails abrufen
- Clusterkonfiguration aktualisieren
- Clusterkonfiguration wird gelöscht
Sie müssen auch Clientkonfigurationen verwalten.
Konfigurierbare Broker-Eigenschaften
Mit Streaming mit Apache Kafka können Sie die Kafka-Konfiguration anpassen, indem Sie bestimmte Broker-Eigenschaften aktualisieren. Der Service optimiert die Kafka-Konfiguration, indem die aktualisierbaren Eigenschaften begrenzt werden. Validieren Sie die Clusterkonfigurationsdatei anhand der unterstützten Eigenschaften, um unerwartetes Verhalten zu vermeiden.
Wenn ungültige oder falsche Konfigurationen angegeben werden, werden sie ignoriert, und die Standardwerte wie von Apache Kafka definiert werden verwendet. Dadurch wird die Clusterstabilität sichergestellt und verhindert, dass sich eine falsche Konfiguration auf die Serviceverfügbarkeit auswirkt.
Die Standardkonfigurationen, die von OCI Streaming mit Apache Kafka festgelegt werden, finden Sie unter Clusterstandardoptionen.
Sie können die folgenden Broker-Eigenschaften aktualisieren:
Eigenschaft | Beispielwert | Zweck |
---|---|---|
client.quota.callback.static.storage.soft |
97% von totalStorageBytes |
Legt einen Soft-Limit für die Broker-Datenträgerspeicherkapazität fest. |
client.quota.callback.static.storage.hard |
98% von totalStorageBytes
|
Legt einen festen Grenzwert für die Broker-Festplattenspeicherkapazität fest. |
default.replication.factor |
1 | Legt den Standardreplikationsfaktor für neue Themen fest. |
log.retention.hours |
168 | Legt die Mindestzeit für die Beibehaltung von Logsegmenten fest. |
log.segment.bytes |
1.073.741.824 | Legt die maximale Größe einer einzelnen Logsegmentdatei fest. |
log.cleanup.policy |
löschen | Legt die Strategie zur Logaufbewahrung fest (delete oder compact ). |
message.max.bytes |
1.048.588 | Legt die maximale Größe einer Nachricht fest, die der Broker akzeptiert. |
min.insync.replicas |
1 | Legt die Mindestanzahl an synchronen Replikaten fest, die für die Bestätigung eines Schreibvorgangs erforderlich sind. |
num.io.threads |
8 | Legt die Anzahl der Threads für Datenträger-I/O-Vorgänge fest. |
num.replica.fetchers |
1 | Legt die Anzahl der Threads fest, die zum Replizieren von Daten von anderen Brokern verwendet werden. |
unclean.leader.election.enable |
falsch | Ermöglicht die Auswahl von nicht synchronen Replikaten als Führungskräfte. |
Benutzerdefinierte Broker-Festplatten-Quotas definieren
Sie können benutzerdefinierte Broker-Festplattenkontingente definieren.
- Erstellen oder aktualisieren Sie die JSON-Datei der Clusterkonfiguration mit der erforderlichen Quota-Konfiguration. Aktualisieren Sie beispielsweise die Datei
kafka-config.json
mit den folgenden Details zu den Festplattenkontingenten:{ "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" } }
- Geben Sie die Konfigurationsdatei an, die im vorherigen Schritt als Konfigurationsdatei für das Cluster erstellt oder aktualisiert wurde. Beispiel: Geben Sie
--latest-config file://kafka-config.json
im CLI-Befehl create oder updatecluster-config
an. - Aktualisieren Sie das Kafka-Cluster mit der API oder CLI, und geben Sie die neue oder aktualisierte Konfigurationsdatei
kafka-config.json
an.
Nicht konfigurierbare Broker-Eigenschaften
Beim Streaming mit Apache Kafka werden einige Broker-Eigenschaften als nicht editierbar festgelegt. Wenn Sie diese Eigenschaften konfigurieren, werden sie vom Service ignoriert. Sie müssen die Konfigurationsdatei anhand der Unterstützungseigenschaften validieren, um unerwartetes Verhalten zu vermeiden.
Sie können die folgenden Broker-Eigenschaften nicht aktualisieren:
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
Beispiel: Streaming mit Apache Kafka unterstützt keine Klartext-Listener. Daher wird die Konfiguration der Einstellung "listeners": "PLAINTEXT://:9092"
in der Clusterkonfigurationsdatei nicht ebenfalls unterstützt. Wenn Sie diese Einstellung anwenden, um einen Klartext-Listener zu konfigurieren, wird die Konfiguration im Hintergrund ignoriert, und der Klartext-Listener wird nicht aktiviert, und eine Warnung wird protokolliert.
Im Folgenden finden Sie ein Beispiel für ungültige benutzerdefinierte Konfigurationen. Hier werden alle Einstellungen ignoriert und Standardwerte angewendet.
{
"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.
}