Topics de Notificación en Kafka para ontologías

Esta funcionalidad está disponible a partir de la versión 2.1.0-gradius.

Introducción

Onesait Platform ya ha integrado Kafka como forma de insertar datos en nuestras ontologías pero, ¿qué pasa si queremos ser notificados vía Kafka cada vez que se insertan nuevos datos en las ontologías?

Pues bien, en este Q2 estamos introduciendo los temas de notificación de Kafka para ontologías que permiten estar al tanto de cada inserción a través de un tema de Kafka.

Cómo utilizarlo

Esta nueva funcionalidad estará disponible por temas. Se puede activar creando/editando una ontología y yendo a la sección“Advanced settings“, y luego chequear “ALLOWS CREATE NOTIFICATION KAFKA TOPIC?“ property.

TEsto creará un tema con la siguiente convención de nombres: ONTOLOGY_OUTPUT_<ontology_name>

Una vez creada/actualizada la ontología, cada inserción enviada a ella (desde cualquier fuente como API, CRUD, clientes digitales,...), escribirá los datos en el tema de notificación.

Ejemplo

A continuación se muestra un ejemplo de cómo activar un tópico de notificación kafka y cómo recuperar los datos de la notificación desde él.

  1. Activar el tema de notificación kafka para la ontología “KafkaNotifOnt“

    Seleccione una ontología para editar


    Chequear “ALLOWS CREATE NOTIFICATION KAFKA TOPIC?“ y guardar los cambios

     

  2. Crear/actualizar un cliente digital y permitirle leer desde la ontología “KafkaNotifOnt“. Esto concederá permisos ACL al tema para ese cliente:

    Seleccione el cliente digital que desea actualizar:


    Añadir accesos “KafkaNotifOnt” “READ” o “ALL” y guardar cambios:

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

  3. Cree un consumidor kafka en el tema de notificación. En este ejemplo utilizaremos un consumidor de consola con autenticación SLAS:

    Primero crearemos un archivo de configuración jaas usando el nombre del cliente digital como usuario y su token como contraseña y lo guardaremos en un archivo

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


    Luego exportaremos la variable KAFKA_OPTS con su ubicación

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


    Después de esto, necesitamos crear un archivo de propiedades del consumidor para habilitar SASL como método de autenticación y guardarlo en un archivo

    echo ' security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN '>consumer.properties


    Por último, podemos poner en marcha nuestro consumidor y dejarlo en funcionamiento

     

  4. Insertar datos en la ontología

    En este ejemplo utilizaremos el CRUD

    A continuación, inserte algunos datos

     

  5. Comprueba el consumidor: