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:

# server.properties
broker.id=1
log.dirs=/var/lib/kafka/logs
zookeeper.connect=localhost:2181

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:

  1. Instal·lar Kafka: Descarregar i instal·lar Kafka en cada servidor que actuarà com a broker.
  2. Configurar Zookeeper: Configurar Zookeeper per gestionar el clúster.
  3. Configurar Brokers: Editar el fitxer server.properties per a cada broker, assignant un ID únic i especificant les rutes de registre.
  4. Iniciar Zookeeper: Iniciar el servei de Zookeeper.
  5. 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:

  1. Instal·lar Kafka i Zookeeper en dos servidors.
  2. Configurar Zookeeper en ambdós servidors.
  3. Configurar els brokers amb IDs únics i rutes de registre diferents.
  4. Iniciar Zookeeper i els brokers.
  5. Crear un tema amb múltiples particions i verificar la distribució de les particions entre els brokers.

Solució:

  1. Instal·lar Kafka i Zookeeper:

    • Descarregar Kafka des del lloc oficial.
    • Descomprimir i instal·lar Kafka en ambdós servidors.
  2. Configurar Zookeeper:

    • Editar el fitxer zoo.cfg en ambdós servidors amb la configuració proporcionada anteriorment.
  3. 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
      
  4. 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
      
  5. 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
      

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.

© Copyright 2024. Tots els drets reservats