Elaborazione in batch con code durevoli
Quando ThingWorx elabora un evento, una proprietà persistente o uno stream di valori dai nodi ThingWorx utilizzando Apache Kafka o Hub eventi di Azure, recupera un batch di messaggi dalla rispettiva coda durevole e li memorizza nella memoria esterna per l'elaborazione. Fino a quando l'elaborazione del batch non viene completata in una consegna al massimo una volta (At-Most-Once, AMO), il batch successivo non viene recuperato dalla coda durevole. Nella consegna AMO, i messaggi vengono contrassegnati come elaborati non appena vengono recuperati. Pertanto, in qualsiasi momento sarà presente nel batch un numero limitato di messaggi all'interno del nodo ThingWorx. Se il nodo ThingWorx diventa inattivo, i messaggi non letti vengono conservati, assicurando una perdita limitata di dati.
Quando un messaggio non viene inviato a Kafka, viene eseguito un nuovo tentativo. Dopo il numero di tentativi impostato, il messaggio viene perso.
La dimensione massima di un messaggio che è possibile inviare da ThingWorx a Hub eventi è pari a 1 MB. Per ulteriori informazioni, vedere le domande frequenti su Hub eventi nel sito Web di Microsoft Azure. Per Kafka, la dimensione di default del messaggio è 1 pari a MB ed è configurabile. Per ulteriori informazioni, vedere il sito Web di Apache Kafka.
Per monitorare le metriche in Kafka, vedere Monitoraggio di Apache Kafka. Per informazioni sul monitoraggio delle metriche in Hub eventi, vedere l'articolo di PTC Community Durable Queues Are Here.
Dimensione del batch dei dati memorizzati nella cache nelle code durevoli
ThingWorx Platform recupera i dati da Apache Kafka in batch per eseguire la scalabilità al throughput necessario. La dimensione del batch influisce sulle prestazioni di elaborazione. All'aumentare della dimensione del batch, le prestazioni migliorano. Tuttavia, il rischio di perdita di dati è maggiore con dimensioni del batch più elevate. Dopo che un batch è stato estratto da Kafka, il nodo ThingWorx potrebbe diventare inattivo prima che il batch venga elaborato. In questo caso, i dati memorizzati nella cache all'interno del batch non vengono elaborati e vengono considerati persi.
Per gli eventi è possibile configurare Max Cached Data for Durable Events in Composer, al percorso EventProcessingSubsystem > Configurazione. Per ulteriori informazioni su questa impostazione, vedere Sottosistema Elaborazione eventi.
Per le proprietà persistenti e registrate è possibile configurare il numero massimo di dati memorizzati nella cache nel file platform-settings.json. Per ulteriori informazioni, vedere Impostazioni di configurazione del provider di code.
È stato utile?