De basis van Apache Kafka en streamverwerking · Les

Brokerconfiguratie en tuning

Optimaliseer Kafka-brokerinstellingen voor een beter resourcegebruik en een stabieler cluster als geheel.

Les 2 van 411 stappen

Brokerconfiguratie en tuning is een gratis De basis van Apache Kafka en streamverwerking-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De basis van Apache Kafka en streamverwerking. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van Apache Kafka en streamverwerking bevat in totaal 4 lessen.

Waarom Kafka-brokers afstemmen?

Het optimaliseren van je Kafka-brokers is cruciaal voor een stabiel cluster met hoge prestaties. Net als bij het afstellen van een motor zorgt een goede configuratie ervoor dat je Kafka-cluster soepel en efficiënt werkt.

  • Prestaties: Verwerk een hogere hoeveelheid gegevens.
  • Stabiliteit: Voorkom crashes en zorg voor een continue werking.
  • Benutting van resources: Benut de CPU, het geheugen en de schijfruimte van je server optimaal.

We bekijken de belangrijkste instellingen om dit te bereiken.

Het bestand `server.properties`

Elke Kafka-broker heeft een centraal configuratiebestand dat meestal server.properties heet. Dit bestand bepaalt hoe een broker werkt, van netwerkinstellingen tot gegevensopslag.

Je vindt dit bestand in de installatiemap van Kafka, meestal onder config/. Wijzigingen worden pas van kracht nadat je de broker opnieuw hebt gestart.

Unieke identificatie van brokers

Elke broker in een Kafka-cluster heeft een unieke identificatie nodig. Je stelt deze in met de parameter broker.id in server.properties.

De waarde moet een niet-negatief geheel getal zijn en in het hele cluster uniek zijn. Kafka gebruikt deze ID om brokers te identificeren voor replicatie, leiderverkiezingen en meer.

broker.id=0

Gegevensopslag: `log.dirs`

De parameter log.dirs bepaalt waar Kafka zijn logsegmenten opslaat (de daadwerkelijke gegevens voor topics en partities). Dit is een cruciale instelling voor prestaties en betrouwbaarheid.

  • Meerdere schijven: Gebruik een door komma's gescheiden lijst met mappen op verschillende fysieke schijven voor betere I/O-paralleliteit.
  • Afzonderlijke schijven: Gebruik bij voorkeur schijven die uitsluitend voor Kafka-logs zijn bestemd, gescheiden van het besturingssysteem en andere applicaties.
log.dirs=/kafka/data1,/kafka/data2

Configuratie van netwerklisteners

Kafka-brokers communiceren via netwerklisteners. De parameters listeners en advertised.listeners bepalen hoe clients en andere brokers verbinding maken.

  • listeners: De interfaces waaraan de broker zich bindt (bijvoorbeeld PLAINTEXT://:9092).
  • advertised.listeners: Het adres dat clients en brokers gebruiken om verbinding te maken (bijvoorbeeld PLAINTEXT://your.host.name:9092). Dit is cruciaal voor externe toegang of omgevingen met meerdere hosts.

Standaardinstellingen voor topics

Wanneer een topic wordt aangemaakt zonder expliciete instellingen voor partities of replicatie, gebruikt Kafka de standaardwaarden op broker-niveau. Deze configureer je via num.partitions en default.replication.factor.

  • num.partitions: Stelt het standaard aantal partities voor nieuwe topics in. Meer partities betekenen meer parallellisme.
  • default.replication.factor: Stelt het standaard aantal replica's voor nieuwe topics in. Meer replicatie betekent een betere fouttolerantie.

Over het algemeen wordt aangeraden deze waarden per topic expliciet in te stellen, maar deze standaardwaarden dienen als terugvaloptie.

Gegevensretentie beheren

Kafka bewaart berichten gedurende een instelbare periode of totdat ze een bepaalde omvang bereiken. Deze instellingen voorkomen dat je schijven vollopen en zijn cruciaal voor het beheren van opslag.

  • log.retention.hours: Hoe lang berichten worden bewaard (bijvoorbeeld 168 uur = 7 dagen).
  • log.retention.bytes: De maximale omvang van een logsegment voordat het in aanmerking komt voor verwijdering.

Kafka verwijdert berichten op basis van de limiet die het eerst wordt bereikt.

Limieten voor berichtgrootte

Om te voorkomen dat extreem grote berichten de prestaties van brokers beïnvloeden of netwerkproblemen veroorzaken, kun je in Kafka op broker-niveau een maximale berichtgrootte instellen via message.max.bytes.

Deze limiet geldt voor de totale omvang van een gecomprimeerde berichtenbatch. Als een producer een groter bericht probeert te versturen, wordt dit geweigerd. Producers hebben ook hun eigen max.request.size.

message.max.bytes=1048576 (1 MB)

JVM en besturingssysteem afstemmen

Naast server.properties moeten ook de onderliggende Java Virtual Machine (JVM) en het besturingssysteem (OS) worden afgestemd voor optimale Kafka-prestaties.

  • JVM-heapgrootte: Configureer KAFKA_HEAP_OPTS om voldoende geheugen toe te wijzen (bijvoorbeeld 5-8 GB voor speciale brokers).
  • Garbagecollection: Kies een efficiënt GC-algoritme (bijvoorbeeld G1GC) en stem de parameters ervan af.
  • Bestandsdescriptors: Verhoog de OS-limieten voor geopende bestandsdescriptors, omdat Kafka er veel gebruikt voor logs en verbindingen.

Controle van de brokerconfiguratie

Welke van de volgende parameters zijn cruciaal om te bepalen waar een Kafka-broker zijn topicgegevens opslaat en hoelang?

Samenvatting: essentiële brokerafstemming

We hebben de belangrijkste Kafka-brokerconfiguraties behandeld die invloed hebben op prestaties, stabiliteit en resourcegebruik.

  • Het bestand server.properties vormt de basis voor het gedrag van een broker.
  • Belangrijke parameters zoals broker.id, log.dirs, listeners, log.retention.hours en message.max.bytes zijn essentieel voor een goede configuratie.
  • Houd ook rekening met afstemming op JVM- en OS-niveau voor een echt geoptimaliseerd cluster.

Door zorgvuldig af te stemmen zorg je ervoor dat je Kafka-cluster je gegevensstromen efficiënt en betrouwbaar kan verwerken.

Gratis beginnen

Leer De basis van Apache Kafka en streamverwerking met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Brokerconfiguratie en tuning” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van Apache Kafka en streamverwerking, waaronder “Brokerconfiguratie en tuning”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus De basis van Apache Kafka en streamverwerking bevat in totaal 4 lessen.

Wat leer ik in “Brokerconfiguratie en tuning”?

Optimaliseer Kafka-brokerinstellingen voor een beter resourcegebruik en een stabieler cluster als geheel. Je oefent met De basis van Apache Kafka en streamverwerking door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met De basis van Apache Kafka en streamverwerking te beginnen?

Ervaring vooraf is niet nodig. De basis van Apache Kafka en streamverwerking op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Brokerconfiguratie en tuning”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over De basis van Apache Kafka en streamverwerking?

Ja. Elke les over De basis van Apache Kafka en streamverwerking bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Producer- en consumerperformance
  2. Brokerconfiguratie en tuning
  3. Optimalisatie van disk-I/O en netwerk
  4. Batching, compressie en linger-tuning
← Terug naar De basis van Apache Kafka en streamverwerking