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:
- Instal·lació de Kafka
- Configuració del Broker
- Configuració del Zookeeper
- Configuració del Productor i el Consumidor
- Paràmetres de Rendiment i Optimització
- 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ó
-
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
-
Iniciar Zookeeper:
bin/zookeeper-server-start.sh config/zookeeper.properties
-
Iniciar Kafka:
bin/kafka-server-start.sh config/server.properties
- 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
- 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ó
- 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
- 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.
Curs de Kafka
Mòdul 1: Introducció a Kafka
Mòdul 2: Conceptes bàsics de Kafka
Mòdul 3: Operacions de Kafka
Mòdul 4: Configuració i Gestió de Kafka
Mòdul 5: Temes Avançats de Kafka
- Optimització del Rendiment de Kafka
- Kafka en una Configuració Multi-Centre de Dades
- Kafka amb Registre d'Esquemes
- Kafka Streams Avançat