Table of Contents |
---|
Info |
---|
This functionality is available from version Esta funcionalidad está disponible a partir de la versión 2.1.0-gradius onwards. |
...
Introducción
Onesait Platform has already integrated Kafka as a way to insert data into our ontologies but, what if we want to be notified via Kafka every time new data gets inserted into ontologies?
Well, in this Q2 we are introducing the kafka notification topics for ontologies which allows you to be aware of each insert throughout a kafka topic.
How to use it
This new functionality will be available by topic. It can be activated by creating/editing an ontology and going to the “Advanced settings“ tab, then checking the 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.
...
This will create a topic with the following naming conventionTEsto creará un tema con la siguiente convención de nombres: ONTOLOGY_OUTPUT_<ontology_name>
Once the ontology is created/updated, every insertion sent to it(from any source as Una vez creada/actualizada la ontología, cada inserción enviada a ella (desde cualquier fuente como API, CRUD, Digital clients,…), will write the data to the notification topic.
Here is an example of how to activate a kafka notification topic and how to retrieve the notificacion data from it.
...
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.
Activar el tema de notificación kafka para la ontología “KafkaNotifOnt“
Seleccione una ontología para editar
Chequear “ALLOWS CREATE NOTIFICATION KAFKA TOPIC?“ and save changesy guardar los cambiosCreate/update a digital client and allow it to read from the ontlogy “KafkaNotifOnt“. This will grant ACL permissions to the topic for that client:
Add “KafkaNotifOnt” with “READ” or “ALL” access level and save changes.
Select the digital client to update:Remember the token as we will be using it in the follwong step.
Create a kafka consumer on the notification topic. In this example we will use a console consumer with SLAS authentication:
First we will create a jaas config file using the name of the digital client as user and it’s token as password and save it to a fileCrear/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.
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 archivoCode Block echo ' KafkaClient{ org.apache.kafka.common.security.plain.PlainLoginModule required username="KafkaClient" password="2abb5497223344969bb45077a071b8b7"; }; '>/etc/kafka/kafka_client_jass.conf
Then we will export the Luego exportaremos la variable KAFKA_OPTS variable with it’s locationcon su ubicaciónCode Block export KAFKA_OPTS="-Djava.security.auth.login.config=/etc/kafka/kafka_client_jass.conf"
After that, we need to create a consumer properties file to enable SASL as authentication method and save it to a fileDespué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
Finally we can start our consumer and leave it runningCode Block echo ' security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN '>consumer.properties
Insert data into the ontology
In this example we will use the CRUDThen insert some data
Check the consumerPor último, podemos poner en marcha nuestro consumidor y dejarlo en funcionamiento
Insertar datos en la ontología
En este ejemplo utilizaremos el CRUDA continuación, inserte algunos datos
Comprueba el consumidor: