En aquest tema, aprendrem com configurar Apache Kafka per a un entorn de producció. La configuració adequada és crucial per assegurar el rendiment, la fiabilitat i la seguretat del sistema. Aquest mòdul cobreix els següents aspectes:

  1. Instal·lació de Kafka
  2. Configuració del Broker
  3. Configuració del Zookeeper
  4. Configuració del Productor i el Consumidor
  5. Paràmetres de Rendiment i Optimització

  1. Instal·lació de Kafka

Requisits previs

  • Java 8 o superior
  • Apache Zookeeper (Kafka utilitza Zookeeper per a la gestió del clúster)

Passos d'instal·lació

  1. Descarregar Kafka:

    wget https://downloads.apache.org/kafka/2.8.0/kafka_2.13-2.8.0.tgz
    tar -xzf kafka_2.13-2.8.0.tgz
    cd kafka_2.13-2.8.0
    
  2. Iniciar Zookeeper:

    bin/zookeeper-server-start.sh config/zookeeper.properties
    
  3. Iniciar Kafka:

    bin/kafka-server-start.sh config/server.properties
    

  1. Configuració del Broker

El fitxer de configuració principal del broker és server.properties. A continuació, es mostren alguns dels paràmetres més importants:

Paràmetres clau

  • broker.id: Identificador únic per a cada broker en el clúster.

    broker.id=0
    
  • listeners: Adreça i port en què el broker escolta les connexions.

    listeners=PLAINTEXT://:9092
    
  • log.dirs: Directori on es guarden els logs de Kafka.

    log.dirs=/var/lib/kafka/logs
    
  • zookeeper.connect: Adreça del servidor Zookeeper.

    zookeeper.connect=localhost:2181
    

Exemple de configuració

broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/var/lib/kafka/logs
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000

  1. Configuració del Zookeeper

El fitxer de configuració principal de Zookeeper és zookeeper.properties. A continuació, es mostren alguns dels paràmetres més importants:

Paràmetres clau

  • dataDir: Directori on es guarden les dades de Zookeeper.

    dataDir=/var/lib/zookeeper
    
  • clientPort: Port en què Zookeeper escolta les connexions.

    clientPort=2181
    

Exemple de configuració

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
maxClientCnxns=60

  1. Configuració del Productor i el Consumidor

Configuració del Productor

El productor té diversos paràmetres que es poden configurar per optimitzar el rendiment i la fiabilitat.

  • bootstrap.servers: Llista de brokers per connectar-se.

    bootstrap.servers=localhost:9092
    
  • key.serializer: Classe per serialitzar les claus.

    key.serializer=org.apache.kafka.common.serialization.StringSerializer
    
  • value.serializer: Classe per serialitzar els valors.

    value.serializer=org.apache.kafka.common.serialization.StringSerializer
    

Configuració del Consumidor

El consumidor també té diversos paràmetres configurables.

  • bootstrap.servers: Llista de brokers per connectar-se.

    bootstrap.servers=localhost:9092
    
  • group.id: Identificador del grup de consumidors.

    group.id=my-group
    
  • key.deserializer: Classe per deserialitzar les claus.

    key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
    
  • value.deserializer: Classe per deserialitzar els valors.

    value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
    

  1. Paràmetres de Rendiment i Optimització

Paràmetres clau per a l'optimització

  • num.network.threads: Nombre de fils de xarxa.

    num.network.threads=3
    
  • num.io.threads: Nombre de fils d'entrada/sortida.

    num.io.threads=8
    
  • socket.send.buffer.bytes: Tamany del buffer d'enviament del socket.

    socket.send.buffer.bytes=102400
    
  • socket.receive.buffer.bytes: Tamany del buffer de recepció del socket.

    socket.receive.buffer.bytes=102400
    
  • log.retention.hours: Nombre d'hores que es retenen els logs.

    log.retention.hours=168
    
  • log.segment.bytes: Tamany màxim dels segments de log.

    log.segment.bytes=1073741824
    

Resum

En aquest tema, hem après com configurar Apache Kafka, incloent la instal·lació, la configuració del broker, Zookeeper, i els paràmetres del productor i el consumidor. També hem revisat alguns paràmetres clau per optimitzar el rendiment del sistema. Amb aquesta base, estem preparats per gestionar i operar un clúster de Kafka de manera eficient.

© Copyright 2024. Tots els drets reservats