Gestión de Configuraciones de Cluster
Cada cluster de Kafka en Streaming con Apache Kafka tiene un archivo de configuración de cluster que contiene todas las propiedades de configuración del servidor.
- Enumeración de configuraciones de cluster
- Creación de una configuración de cluster
- Obtención de detalles de configuración de cluster
- Actualizando configuración de cluster
- Supresión de la configuración de cluster
También debe gestionar configuraciones de cliente.
Propiedades configurables del agente
Con Streaming con Apache Kafka, puede personalizar la configuración de Kafka actualizando propiedades específicas del broker. El servicio optimiza la configuración de Kafka limitando las propiedades que se pueden actualizar. Valide el archivo de configuración del cluster con las propiedades admitidas para evitar un comportamiento inesperado.
Si se proporcionan configuraciones no válidas o incorrectas, se ignoran y se utilizan los valores por defecto tal como define Apache Kafka. Esto garantiza la estabilidad del cluster y evita que la configuración incorrecta afecte la disponibilidad del servicio.
Para conocer las configuraciones por defecto definidas por OCI Streaming con Apache Kafka, consulte Opciones por defecto de cluster.
Puede actualizar las siguientes propiedades de broker:
Propiedad | Valor de muestra | Finalidad |
---|---|---|
client.quota.callback.static.storage.soft |
97% de totalStorageBytes |
Establece un límite variable en la capacidad de almacenamiento en disco del broker. |
client.quota.callback.static.storage.hard |
El 98 % de totalStorageBytes
|
Establece un límite estricto en la capacidad de almacenamiento del disco del broker. |
default.replication.factor |
1 | Define el factor de replicación por defecto para temas nuevos. |
log.retention.hours |
168 | Define el tiempo mínimo para retener los segmentos de log. |
log.segment.bytes |
1.073.741.824 | Define el tamaño máximo de un único archivo de segmento de log. |
log.cleanup.policy |
suprimir | Define la estrategia de retención de logs (delete o compact ). |
message.max.bytes |
1.048.588 | Define el tamaño máximo de un mensaje que acepta el broker. |
min.insync.replicas |
1 | Define el número mínimo de réplicas sincronizadas necesarias para que se confirme una escritura. |
num.io.threads |
8 | Define el número de subprocesos para las operaciones de E/S de disco. |
num.replica.fetchers |
1 | Define el número de threads utilizados para replicar datos de otros agentes. |
unclean.leader.election.enable |
falso | Permite la elección de réplicas no sincronizadas como líderes. |
Definir cuotas de disco de broker personalizadas
Puede definir cuotas de disco de broker personalizadas.
- Cree o actualice el archivo JSON de configuración de cluster con la configuración de cuota necesaria. Por ejemplo, actualice el archivo
kafka-config.json
con los siguientes detalles sobre las cuotas de 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" } }
- Especifique el archivo de configuración creado o actualizado en el paso anterior como archivo de configuración para el cluster. Por ejemplo, especifique
--latest-config file://kafka-config.json
en el comando de la CLI create o updatecluster-config
. - Actualice el cluster de Kafka mediante la API o la CLI y especifique el archivo de configuración nuevo o actualizado
kafka-config.json
.
Propiedades de agente no configurables
La transmisión con Apache Kafka define algunas propiedades del broker como no editables y, si configura estas propiedades, el servicio las ignora. Debe validar el archivo de configuración con las propiedades de soporte para evitar un comportamiento inesperado.
No puede actualizar las siguientes propiedades del intermediario:
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
Por ejemplo, Streaming con Apache Kafka no soporta listeners de texto sin formato y, por lo tanto, la configuración del valor "listeners": "PLAINTEXT://:9092"
en el archivo de configuración de cluster tampoco está soportada. Si aplica este valor para configurar un listener de texto sin formato, la configuración se ignora silenciosamente y el listener de texto sin formato no se activa y se registra una advertencia.
A continuación, se muestra un ejemplo de configuraciones personalizadas no válidas. Aquí, se ignoran todos los valores y se aplican los valores por defecto.
{
"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.
}