Gérer les configurations de cluster
Chaque grappe Kafka du service de diffusion en continu avec Apache Kafka comporte un fichier de configuration de grappe qui contient toutes les propriétés de configuration du serveur.
- Liste des configurations de grappe
- Création d'une configuration de grappe
- Obtention des détails d'une configuration de grappe
- Mise à jour de la configuration de grappe
- Suppression de la configuration de grappe
Vous devez également gérer les configurations de client.
Propriétés du courtier configurables
Avec le service de flux avec Apache Kafka, vous pouvez personnaliser la configuration Kafka en mettant à jour des propriétés de courtier spécifiques. Le service rationalise la configuration Kafka en limitant les propriétés pouvant être mises à jour. Validez le fichier de configuration de grappe par rapport aux propriétés prises en charge pour éviter un 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 une mauvaise configuration d'affecter la disponibilité du service.
Pour les configurations par défaut définies par le service de diffusion en continu pour OCI avec Apache Kafka, voir Options par défaut de grappe.
Vous pouvez mettre à jour les propriétés suivantes du broker :
| Propriété | Exemple de valeur | Fonction |
|---|---|---|
client.quota.callback.static.storage.soft
|
97 % de totalStorageBytes
|
Définit une limite ajustable sur la capacité de stockage du disque du broker. |
client.quota.callback.static.storage.hard
|
98 % de totalStorageBytes
|
Définit une limite stricte sur 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 accepté par le broker. |
min.insync.replicas
|
1 | Définit le nombre minimal de répliques synchronisées requises pour l'accusé de réception d'une écriture. |
num.io.threads
|
8 | Définit le nombre de threads pour les opérations d'E/S disque. |
num.replica.fetchers
|
1 | Définit le nombre d'unités d'exécution utilisées pour répliquer les données d'autres courtiers. |
unclean.leader.election.enable
|
fausse | Permet d'élire des répliques non synchronisées en tant que dirigeants. |
Définir des quotas de disque personnalisés pour le broker
Vous pouvez définir des quotas de disque personnalisés pour le broker.
- Créez ou mettez à jour le fichier JSON de configuration de grappe avec la configuration de quota requise. Par exemple, mettez à jour le fichier
kafka-config.jsonavec 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" } } - Spécifiez le fichier de configuration créé ou mis à jour à l'étape précédente en tant que fichier de configuration pour la grappe. Par exemple, spécifiez
--latest-config file://kafka-config.jsondans la commande de l'interface de ligne de commandecluster-configcreate ou update. -
Mettez à jour la grappe Kafka à l'aide de l'API ou de l'interface de ligne de commande et spécifiez le fichier de configuration nouveau ou mis à jour
kafka-config.json.
Propriétés de courtier non configurables
Le service de diffusion en continu avec Apache Kafka définit certaines propriétés de courtier 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 soutien pour éviter un 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, le service de flux avec Apache Kafka ne prend pas en charge les modules d'écoute en texte brut. Par conséquent, la configuration du paramètre "listeners": "PLAINTEXT://:9092" dans le fichier de configuration de la grappe n'est pas prise en charge non plus. Si vous appliquez ce paramètre pour configurer un module d'écoute en texte brut, la configuration est ignorée silencieusement et le module 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 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.
}