Gérer les configurations de cluster
Chaque cluster Kafka dans Streaming avec Apache Kafka dispose d'un fichier de configuration de cluster contenant toutes les propriétés de configuration de serveur.
- Liste des configurations de cluster
- Création d'une configuration de cluster
- Obtention des détails de configuration de cluster
- Mise à jour de la configuration de cluster
- Suppression de la configuration de cluster
Vous devez également gérer les configurations client.
Propriétés de courtier configurables
Avec Streaming avec Apache Kafka, vous pouvez personnaliser la configuration Kafka en mettant à jour des propriétés de broker spécifiques. Le service rationalise la configuration Kafka en limitant les propriétés pouvant être mises à jour. Validez le fichier de configuration du cluster par rapport aux propriétés prises en charge pour éviter tout comportement inattendu.
Si des configurations non valides ou incorrectes sont fournies, elles sont ignorées et les valeurs par défaut telles que définies par Apache Kafka sont utilisées. Cela garantit la stabilité du cluster et empêche toute mauvaise configuration d'affecter la disponibilité du service.
Pour connaître les configurations par défaut définies par OCI Streaming avec Apache Kafka, reportez-vous à Options par défaut de cluster.
Vous pouvez mettre à jour les propriétés de broker suivantes :
Propriété | Exemple de valeur | Objet |
---|---|---|
client.quota.callback.static.storage.soft |
97 % de totalStorageBytes |
Définit une limite ajustable de la capacité de stockage sur disque du broker. |
client.quota.callback.static.storage.hard |
98 % de totalStorageBytes
|
Définit une limite fixe de la capacité de stockage du disque du broker. |
default.replication.factor |
1 | Définit le facteur de réplication par défaut pour les nouveaux sujets. |
log.retention.hours |
168 | Définit la durée minimale de conservation des segments de journal. |
log.segment.bytes |
1 073 741 824 | Définit la taille maximale d'un fichier de segment de journal unique. |
log.cleanup.policy |
supprimer | Définit la stratégie de conservation des journaux (delete ou compact ). |
message.max.bytes |
1 048 588 | Définit la taille maximale d'un message que le broker accepte. |
min.insync.replicas |
1 | Définit le nombre minimum de répliques synchronisées requises pour qu'une écriture soit reconnue. |
num.io.threads |
8 | Définit le nombre de threads pour les opérations d'E/S de disque. |
num.replica.fetchers |
1 | Définit le nombre de threads utilisés pour répliquer les données d'autres brokers. |
unclean.leader.election.enable |
faux | Permet d'élire des répliques non synchronisées en tant que dirigeants. |
Définir des quotas de disque de broker personnalisés
Vous pouvez définir des quotas de disque de broker personnalisés.
- Créez ou mettez à jour le fichier JSON de configuration de cluster avec la configuration de quota requise. Par exemple, mettez à jour le fichier
kafka-config.json
avec les détails suivants sur les quotas de disque :{ "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" } }
- Indiquez le fichier de configuration créé ou mis à jour à l'étape précédente comme fichier de configuration pour le cluster. Par exemple, spécifiez
--latest-config file://kafka-config.json
dans la commande CLI create ou updatecluster-config
. - Mettez à jour le cluster Kafka à l'aide de l'API ou de l'interface de ligne de commande et indiquez le nouveau fichier de configuration ou le fichier de configuration mis à jour
kafka-config.json
.
Vous ne pouvez pas définir des valeurs de quota de disque supérieures aux limites par défaut.
Propriétés de courtier non configurables
La transmission en continu avec Apache Kafka définit certaines propriétés de broker comme non modifiables et si vous configurez ces propriétés, elles sont ignorées par le service. Vous devez valider le fichier de configuration par rapport aux propriétés de support pour éviter tout comportement inattendu.
Vous ne pouvez pas mettre à jour les propriétés de courtier suivantes :
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
Par exemple, Streaming avec Apache Kafka ne prend pas en charge les processus d'écoute en texte brut et la configuration du paramètre "listeners": "PLAINTEXT://:9092"
dans le fichier de configuration du cluster n'est donc pas prise en charge. Si vous appliquez ce paramètre pour configurer un processus d'écoute en texte brut, la configuration est ignorée en mode silencieux et le processus d'écoute en texte brut n'est pas activé et un avertissement est consigné.
Voici un exemple de configurations personnalisées non valides. Ici, tous les paramètres sont ignorés et les valeurs par défaut sont appliquées.
{
"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.
}