Procesamiento por lotes con colas duraderas
Cuando ThingWorx procesa un evento, una propiedad persistente o un flujo de valor de los nodos de ThingWorx mediante Apache Kafka o Azure Event Hubs, se captura un lote de mensajes de la cola duradera correspondiente y se almacena en caché en la memoria externa para su procesamiento. Hasta que el procesamiento de ese lote se complete en un envío como máximo una vez (AMO), el siguiente lote no se recupera de la cola duradera. En el envío AMO, los mensajes se marcan como procesados tan pronto como se obtienen. Por lo tanto, en cualquier momento dado, habrá mensajes limitados en el lote disponibles en el nodo de ThingWorx. Si el nodo de Thingworx deja de funcionar, los mensajes que no se leen se conservan, lo que garantiza una pérdida de datos limitada.
Cuando no se puede enviar un mensaje a Kafka, se hace un reintento. Después del número establecido de reintentos, ese mensaje se pierde.
El tamaño máximo de un mensaje que se puede enviar desde ThingWorx a Event Hubs es de 1 MB. Para obtener más información, consulte las preguntas más frecuentes sobre Event Hubs en el sitio web de Microsoft Azure. Para Kafka, el tamaño del mensaje por defecto es de 1 MB y es configurable. Para obtener más información, consulte el sitio web de Apache Kafka.
Para supervisar las métricas de Kafka, consulte Supervisión de Apache Kafka. Para obtener información sobre la supervisión de métricas en Event Hubs, consulte el artículo de la comunidad de PTC Durable Queues Are Here.
Tamaño de lote de datos almacenados en caché en colas duraderas
ThingWorx Platform obtiene datos de Apache Kafka en lotes para escalar al rendimiento necesario. El tamaño del lote afecta al rendimiento del procesamiento. Si el tamaño del lote es mayor, el rendimiento es mejor. Sin embargo, el riesgo de pérdida de datos aumenta a medida que aumenta el tamaño de los lotes. Después de extraer un lote de Kafka, el nodo de ThingWorx puede dejar de funcionar antes de que se procese el lote. En este caso, los datos del lote almacenados en caché no se procesarán y se considerarán perdidos.
Para los eventos, Max Cached Data for Durable Events se puede configurar en Composer en EventProcessingSubsystem > Configuración. Para obtener más información sobre esta configuración, consulte Subsistema de procesamiento de eventos.
Para las propiedades persistentes y registradas, se puede configurar el número máximo de datos almacenados en caché en el fichero platform-settings.json. Para obtener más información, consulte Opciones de configuración del proveedor de colas.
¿Fue esto útil?