Stapelverarbeitung mit persistenten Warteschlangen
Wenn ThingWorx ein Ereignis, eine persistente Eigenschaft oder einen Wert-Stream von den ThingWorx Knoten mit Apache Kafka oder Azure Event Hubs verarbeitet, wird ein Batch von Meldungen aus der entsprechenden persistenten Warteschlange abgerufen und zur Verarbeitung im externen Arbeitsspeicher zwischengespeichert. Erst wenn die Verarbeitung dieses Batches in einer AMO-Lieferung (At-Most-Once) abgeschlossen ist, wird der nächste Batch aus der persistenten Warteschlange abgerufen. Bei der AMO-Lieferung werden die Meldungen als verarbeitet markiert, sobald sie abgerufen werden. Daher sind zu jedem gegebenen Zeitpunkt nur begrenzte Meldungen im Batch im ThingWorx Knoten verfügbar. Wenn der ThingWorx Knoten ausfällt, werden die nicht gelesenen Meldungen beibehalten, was den Datenverlust begrenzt.
Wenn eine Meldung nicht an Kafka gesendet werden kann, wird der Vorgang wiederholt. Nach der festgelegten Anzahl von Wiederholungen geht diese Meldung verloren.
Die maximale Größe einer Meldung, die Sie von ThingWorx an Event Hubs senden können, beträgt 1 MB. Weitere Informationen finden Sie unter Häufig gestellte Fragen zu Event Hubs auf der Microsoft Azure-Website. Für Kafka beträgt die Standardmeldungsgröße 1 MB und ist konfigurierbar. Weitere Informationen finden Sie auf der Apache Kafka Website.
Informationen zum Überwachen von Metriken in Kafka finden Sie unter Apache Kafka überwachen. Informationen zum Überwachen von Metriken in Event Hubs finden Sie im PTC Community-Artikel Persistente Warteschlangen sind hier.
Batch-Größe zwischengespeicherter Daten in persistenten Warteschlangen
ThingWorx Platform ruft Daten aus Apache Kafka in Batches ab, um sie auf den erforderlichen Durchsatz zu skalieren. Die Batch-Größe wirkt sich auf die Verarbeitungsleistung aus. Bei höherer Batch-Größe ist die Leistung besser. Das Risiko von Datenverlusten steigt jedoch bei höheren Batch-Größen. Nachdem ein Batch aus Kafka abgerufen wurde, fällt der ThingWorx Knoten möglicherweise aus, bevor der Batch verarbeitet wird. In diesem Fall werden die im Batch zwischengespeicherten Daten nicht verarbeitet und werden als verloren betrachtet.
Für Ereignisse können Sie in Composer die Max Cached Data for Durable Events unter EventProcessingSubsystem > Konfiguration konfigurieren. Weitere Informationen zu dieser Einstellung finden Sie unter Untersystem für Ereignisverarbeitung.
Für persistente und protokollierte Eigenschaften können Sie die maximalen zwischengespeicherten Daten in der platform-settings.json-Datei konfigurieren. Weitere Informationen finden Sie unter Wartschlangenanbieter-Konfigurationseinstellungen.
War dies hilfreich?