¿Cómo funciona la Notificación de Ontologías sobre tópicos Kafka?

ES | EN

Desde versión 2.1.0-gradius

Introducción

Hasta ahora en la Plataforma teníamos integrado Kafka como cauce por el cual hacer ingesta de datos a nuestras ontologías pero , ¿qué pasa si queremos que cada vez que se inserte un dato se notifique en un tópico?

Pues en esta nueva release se ha incorporado la notificación de inserciones en ontologías sobre tópicos Kafka.

¿Cómo se usa?

Esta nueva funcionalidad se habilitará por ontología, pudiendo ser activada al crear/actualizar una ontología, si nos vamos a la pestaña “Opciones avanzadas“ y activamos el check ”PERMITE CREAR TOPIC KAFKA DE NOTIFICACIONES?”

 

 

Esto creará un tópico con la siguiente nomenclatura: ONTOLOGY_OUTPUT_<ontology_name>

Una vez creada/editada la ontología, toda inserción sobre la misma (desde una fuente cualquiera como APIs, CRUD, clientes, …) será notificada en el tópico creado.

A continuación vamos a ver en un ejemplo como activar esta funcionalidad y como recuperar los datos del tópico de notificación.

  1. Activar el tópico de notificación para la ontología “KafkaNotifOnt“

    Selecciona la ontología a editar


    Marca la casilla “PERMITE CREAR TOPIC KAFKA DE NOTIFICACIONES?“ y aplica los cambios

     

  2. Crea/modifica un cliente digital y dale permisos de al menos lectura para la ontología “KafkaNotifOnt“. Esto nos dará los permisos necesarios para la lectura del tópico por parte del cliente


    Selecciona el cliente a editar:


    Añade “KafkaNotifOnt” con permisos de lectura y guarda los cambios.

    Recuerda el token ya que lo usaremos en el siguiente paso.

  3. Crea un consumidor Kafka sobre el tópico de notificación. En este ejemplo usaremos un consumidor desde consola con autenticación por SASL:

    Primero crearemos un fichero jaas config usando el nombre del cliente como usuario y su token como contraseña. Lo guardaremos en un fichero

    1 2 3 4 5 6 7 echo ' KafkaClient{ org.apache.kafka.common.security.plain.PlainLoginModule required username="KafkaClient" password="2abb5497223344969bb45077a071b8b7"; }; '>/etc/kafka/kafka_client_jass.conf


    A continuación crearemos la variaable de entorno KAFKA_OPTS indicando la ubicación del fichero del paso anterior

    1 export KAFKA_OPTS="-Djava.security.auth.login.config=/etc/kafka/kafka_client_jass.conf"


    Luego necesitaremos crear un fichero de configuración para el consumidor, indicando que usaremos SASL como método de autenticación.

    1 2 3 4 echo ' security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN '>consumer.properties


    Por último arrancaremos el consumidor y lo dejaremos corriendo

     

     

  4. Inserta datos en la ontología:

    En este ejemplo usaremos el CRUD


    E insertamos un dato

     

  5. Revisa el consumidor y veremos la información de la notificación: