Saltar al contenido

¿Cuántos controladores Kafka hay en un clúster y cuál es el propósito de un controlador?

Solución:

Dentro de un clúster de Kafka, un único intermediario actúa como controlador activo que es responsable de la gestión estatal de particiones y réplicas. Entonces, en su caso, si tiene un clúster con 100 corredores, uno de ellos actuará como controlador.

Puede encontrar más detalles sobre las responsabilidades de un controlador de clúster aquí.

Para encontrar qué agente es el controlador de un clúster, primero debe conectarse a Zookeeper a través de ZK CLI:

./bin/zkCli.sh -server localhost:2181 

y luego get el controlador

[zk: localhost:2181(CONNECTED) 0] get /controller

La salida debería verse como la siguiente:

{"version":1,"brokerid":100,"timestamp":"1506423376977"}
cZxid = 0x191
ctime = Tue Sep 26 12:56:16 CEST 2017
mZxid = 0x191
mtime = Tue Sep 26 12:56:16 CEST 2017
pZxid = 0x191
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x15ebdd241840002
dataLength = 56
numChildren = 0

Zookeeper es el almacenamiento del estado de un clúster de Kafka. Se utiliza para la elección del controlador, ya sea al principio o cuando el controlador actual falla. El controlador también es responsable de decirle a otras réplicas que se conviertan en líderes de partición cuando el intermediario líder de partición de un tema falla o se bloquea.

El controlador es uno de los intermediarios de Kafka que también es responsable de la tarea de elegir líderes de partición (además de la funcionalidad habitual del intermediario).

¿El controlador es solo un corredor?

Solo hay un controlador a la vez.

Yendo internamente, cada corredor intenta crear un nodo efímero en el guardián del zoológico (/ controlador). El primero tiene éxito, convirtiéndose en el controlador. Los demás solo obtienen una excepción adecuada (“el nodo ya existe”) y observan el nodo del controlador. Cuando el controlador muere, se elimina el nodo efímero y se notifica a los corredores de vigilancia. Y nuevamente, el primero de ellos que logra registrar el nodo efímero, se convierte en el nuevo controlador, los demás obtendrán nuevamente la excepción “el nodo ya existe” y seguirán esperando.

¿Cómo sabría quién es el controlador en Kafka?

Cuando se elige un nuevo controlador, el guardián del zoológico le asigna un número de “época de controlador”. Los corredores conocen la época actual del controlador y si reciben un mensaje de un controlador con un número anterior, saben que deben ignorarlo.

¿Es el controlador el líder?

Realmente no … Cada partición tiene su propio líder. Cuando un corredor muere, el controlador revisa todas las particiones que necesitan un nuevo líder, determina quién debe ser el nuevo líder (simplemente una réplica aleatoria en la lista de réplicas sincronizadas, también conocida como ISR de esa partición) y envía una solicitud a todos los corredores que contienen los nuevos líderes o los seguidores existentes para esas particiones.

Los nuevos líderes ahora saben que deben comenzar a atender las solicitudes de los clientes de los productores y consumidores, mientras que los seguidores ahora saben que deben comenzar a replicar desde el nuevo líder.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *