En aquest tema, explorarem els conceptes de brokers i clústers en Apache Kafka. Entendre aquests components és fonamental per gestionar i operar un sistema Kafka de manera eficient.
Què és un Broker?
Un broker en Kafka és un servidor que emmagatzema dades i serveix com a intermediari per a la transmissió de missatges entre productors i consumidors. Cada broker és identificat per un ID únic i és responsable de gestionar una part de les dades del clúster.
Funcions d'un Broker:
- Emmagatzematge de Missatges: Els brokers emmagatzemen els missatges en discos locals.
- Gestió de Particions: Cada broker és responsable d'un conjunt de particions.
- Replicació: Els brokers repliquen les dades per garantir la disponibilitat i la tolerància a fallades.
- Servei de Missatges: Els brokers serveixen missatges als consumidors.
Exemple de Configuració d'un Broker:
Què és un Clúster?
Un clúster de Kafka és un conjunt de brokers que treballen junts per proporcionar alta disponibilitat i escalabilitat. Els clústers permeten distribuir la càrrega de treball i garantir que el sistema pugui manejar grans volums de dades.
Components d'un Clúster:
- Brokers: Servidors que emmagatzemen i serveixen dades.
- Zookeeper: Servei de coordinació que gestiona la configuració del clúster i la informació de l'estat dels brokers.
Arquitectura d'un Clúster:
- Particions: Les dades d'un tema es divideixen en particions, que es distribueixen entre els brokers.
- Replicació: Cada partició té una rèplica principal (leader) i diverses rèpliques secundàries (followers) per garantir la tolerància a fallades.
Exemple de Configuració d'un Clúster:
# server.properties per a Broker 1 broker.id=1 log.dirs=/var/lib/kafka/logs1 zookeeper.connect=localhost:2181 # server.properties per a Broker 2 broker.id=2 log.dirs=/var/lib/kafka/logs2 zookeeper.connect=localhost:2181
Configuració de Brokers i Clústers
Passos per Configurar un Clúster de Kafka:
- Instal·lar Kafka: Descarregar i instal·lar Kafka en cada servidor que actuarà com a broker.
- Configurar Zookeeper: Configurar Zookeeper per gestionar el clúster.
- Configurar Brokers: Editar el fitxer
server.properties
per a cada broker, assignant un ID únic i especificant les rutes de registre. - Iniciar Zookeeper: Iniciar el servei de Zookeeper.
- Iniciar Brokers: Iniciar cada broker per unir-se al clúster.
Exemple de Configuració de Zookeeper:
# zoo.cfg tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181 initLimit=5 syncLimit=2 server.1=localhost:2888:3888 server.2=localhost:2889:3889
Exercici Pràctic
Objectiu:
Configurar un clúster de Kafka amb dos brokers i verificar la seva operació.
Passos:
- Instal·lar Kafka i Zookeeper en dos servidors.
- Configurar Zookeeper en ambdós servidors.
- Configurar els brokers amb IDs únics i rutes de registre diferents.
- Iniciar Zookeeper i els brokers.
- Crear un tema amb múltiples particions i verificar la distribució de les particions entre els brokers.
Solució:
-
Instal·lar Kafka i Zookeeper:
- Descarregar Kafka des del lloc oficial.
- Descomprimir i instal·lar Kafka en ambdós servidors.
-
Configurar Zookeeper:
- Editar el fitxer
zoo.cfg
en ambdós servidors amb la configuració proporcionada anteriorment.
- Editar el fitxer
-
Configurar els brokers:
- Editar el fitxer
server.properties
en cada servidor:# Broker 1 broker.id=1 log.dirs=/var/lib/kafka/logs1 zookeeper.connect=localhost:2181 # Broker 2 broker.id=2 log.dirs=/var/lib/kafka/logs2 zookeeper.connect=localhost:2181
- Editar el fitxer
-
Iniciar Zookeeper i els brokers:
- Iniciar Zookeeper en ambdós servidors:
bin/zookeeper-server-start.sh config/zookeeper.properties
- Iniciar els brokers en ambdós servidors:
bin/kafka-server-start.sh config/server.properties
- Iniciar Zookeeper en ambdós servidors:
-
Crear un tema i verificar la distribució:
- Crear un tema amb múltiples particions:
bin/kafka-topics.sh --create --topic test-topic --partitions 4 --replication-factor 2 --zookeeper localhost:2181
- Verificar la distribució de les particions:
bin/kafka-topics.sh --describe --topic test-topic --zookeeper localhost:2181
- Crear un tema amb múltiples particions:
Resum
En aquest tema, hem après sobre els brokers i clústers en Kafka. Hem vist com els brokers emmagatzemen i serveixen dades, i com els clústers proporcionen alta disponibilitat i escalabilitat. També hem configurat un clúster de Kafka amb dos brokers i hem verificat la seva operació. Amb aquests coneixements, estem preparats per aprofundir en la producció i consum de missatges en Kafka.
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