Apache Kafka

Avatar de Usuario
Dalamar
Site Admin
Mensajes: 8871
Registrado: 09 May 2012 01:38

Apache Kafka

Mensajepor Dalamar » 23 Sep 2017 07:59

Apache Kafka es la solucion de mensajeria para Big Data. (Un log distribuido para ser exactos)

Conceptos:

    Producer: Una aplicacion que envia mensajes a Kafka.
    Consumer: Una aplicaion que recibe mensaes desde Kafka.
    Record : Inmutable, (Key, Value, Timestamp), solo añadir, con persistencia en disco.
    Broker: Es un servidor de Kafka.
    Cluster: Conjunto de maquinas colaborando.
    Topic: Igual que en JMS
    Partitions: Una particion por maquina, el numero de particiones por topic se especifica como parametro de configuracion.
    Offset: Es el orden de llegada, el numero de secuencia, pero es local a la particion, por lo que para encontrar un mensaje hacen falta tres cosas, el topic, la particion y el offset.
    Consumer groups: Maximo de un consumer por particion, un grupo de consumers son consumers que leen de un mismo topic de forma distribuida.
    Back Pressure: La capacidad del consumer de pedir mas datos o menos activamente.

Acciones:

    Crear un Topic: bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
    Ver Topics: bin/kafka-topics.sh --list --zookeeper localhost:2181
    Enviar Mensajes: bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
    Consumir: bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
    Propiedades de configuracion en cada nodo: config/server.properties config/server-1.properties
    Arrancar nodo: bin/kafka-server-start.sh config/server-1.properties &
    Descripcion de topics: bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
      - Leader: El nodo responsable de todas las lecturas y escrituras en una particion, cada uno sera el leader de porcion de particiones aleatoria.
      - Replicas: Lista de nodos que replican el log, pueden estar inactivas.
      - ISR: La lista de replicas que estan activas.

Kafka Streams, es un API del lado de cliente para aplicaciones criticas, KStreams y KTables son la clases mas importantes.

Un caso de uso de Kafka es como buffer, tener la posibilidad de almacenar trillones de eventos que llegan muy rapido y procesarlos mas despacio.

Otro es usando la functionalidad de Replay, el consumer puede pedir que se le envien los datos de nuevo desde un punto concreto.
Adjuntos
DeliveryKafka.JPG
Features.JPG
BasicConnection.JPG
AkkaStreams1.JPG
AkkaStreams2.JPG
¿Te ha gustado este hilo? Compartelo en las redes sociales para que se sume mas gente a la conversacion!

Volver a “Big Data”

cron

Ingresar