1. Instalar en un servidor Zookeper
  2. Instalar en 3 servidores diferentes Kafka
  3. Configurar server.propertis de cada servidor Kafka para que accedan al servidor de Zookeeper. 
    1. zookeeper.connect=zookeeper_ip:2181
  4. Configurar cada uno de los kafka para cada uno de ellos tenga un id diferente.
    1. broker.id=1
    2. broker.id=2
    3. broker.id=3
  5. Configurar el listener con el protocolo: PLAINTEXT y que escuche desde todas las ip
    1. listener=PLAINTEXT://0.0.0.0:9092
  6. Configurar para que tenga id automáticos reservando los primeros 1000 como estáticos.
    1. broker.id.generation.enable=true
    2. reserved.broker.max.id=1000
  7. Comprobar que en zookeeper se han registrado automáticamente los brokers
    1. bin/zkCli.sh -server zookeper_ip:2181
    2. ls /brokers/ids
  8. Comprobar que contiene el primer bróker
    1. get /brokers/ids/1
  9. Comprobar los topics que tiene, si no tiene crea uno
    1. ls /brokers/topics 
  10. Comprobar las particiones de ese topic
    1. ls /brokers/topics/new_topic/partition
  11. Entrar en el state de la primera partición.
    1. ls /brokers/topics/new_topic/partition/0/state
  12. Crear un topic  que tenga 2 particiones y un factor de replicación de 1
    1. bin/kafkatopics.sh zookeeper zookeeper_id:2181 create topic mi_topic partitions 2 replicationfactor 1
  13. Visualízalo con –describe y explica los datos que devuelve
    1. bin/kafkatopics.sh zookeeper zookeeper_id:2181 -describe topic mi_topic 
    2. Se habrá creado un leader por cada broker. Como no tenemos réplicas nos dice que la réplica está en el broker donde esta el leader y que está en sincronía con sigo mismo.
  14. Crear un topic con tu nombre_replica que tenga 3 particiones y factor de replicación de 3.
    1. bin/kafkatopics.sh zookeeper zookeeper_id:2181 create topic mi_topic_3 partitions 2 replicationfactor 3
  15. Visualiza con –describe y explica los datos que devuelve
    1. bin/kafkatopics.sh zookeeper zookeeper_id:2181 -describe topic mi_topic_2 
    2. Se habra creado un leader en cada broker. Y en replicas nos aparece los id donde hay una réplica. Y todas ellas están en sincronía porque aun no se han producido mensajes.
  16. Para uno de los servidores de Kafka y vuelve visualizar resultado. Explica los datos que devuelve.
    1. bin/kafka-server-stop.sh
    2. bin/kafkatopics.sh zookeeper zookeeper_id:2181 -describe topic mi_topic_2 
    3. Cambian los leader porque hay un broker que no está disponible. La sincronía también cambia con los dos broker disponible.
  17. Levanta el servidores de Kafka y vuelve a visualizar los resultados. Explica los datos que devuelve.
    1. Se han recuperado las réplicas pero los leaders no se han balanceado. Kafka balancea los leaders cada x tiempo aunque también se puede forzar. Como lo leaders no están balanceados perdemos la alta disponibilidad.

Creación de Tópicos, Productores y Consumidores 

    1. Conectarse a Zoopeker:
    2. Para comprobar la conexión: bin/zkCli.sh -server localhost:2181
    3. Conectarse a kafka en segundo plano con daemon:
    4. Creación de nuevo topics:
    5. Visualización de los topics existentes:
    6. Para producir (pantalla de la izquieda) y consumir (pantalla de la derecha) mensajes desde shell (TEST).
      Existen dos maneras de producir mensajes:
      Esto quedará reflejado en el consumidor con un null o la clave.
    7. Para producir mensajes desde Spark Streaming (Scala):
    8. Para consumir mensajes desde Spark Streaming (Scala):