Traitement par lots avec des files d'attente durables
Lorsque ThingWorx traite un événement, une propriété persistante ou un flux de valeurs à partir des noeuds ThingWorx à l'aide d'Apache Kafka ou d'Azure Event Hubs, il récupère un lot de messages dans la file d'attente durable correspondante et le met en cache dans la mémoire externe pour traitement. Tant que le traitement de ce lot n'est pas effectué dans une livraison AMO (au maximum une fois), le lot suivant n'est pas récupéré dans la file d'attente durable. Dans une livraison AMO, les messages sont marqués comme traités dès qu'ils sont récupérés. Par conséquent, à tout moment, les messages du lot disponibles sur le noeud ThingWorx seront limités. Si le noeud ThingWorx tombe en panne, les messages qui ne sont pas lus sont conservés, ce qui limite les pertes de données.
Lorsqu'un message ne parvient pas à être envoyé à Kafka, une nouvelle tentative est effectuée. Une fois le nombre de tentatives défini atteint, ce message est perdu.
La taille maximale d'un message que vous pouvez envoyer depuis ThingWorx à Event Hubs est de 1 Mo. Pour plus d'informations, consultez les questions fréquentes sur Event Hubs sur le site Web de Microsoft Azure. Pour Kafka, la taille par défaut du message est de 1 Mo et est configurable. Pour plus d'informations, consultez le site Web d'Apache Kafka.
Pour surveiller les mesures dans Kafka, consultez la rubrique Surveillance d'Apache Kafka. Pour plus d'informations sur la surveillance des mesures dans Event Hubs, consultez l'article de PTC Community Durable Queues Are Here (en anglais).
Taille de lot des données mises en cache dans des files d'attente durables
ThingWorx Platform récupère les données d'Apache Kafka par lots pour s'adapter au débit nécessaire. La taille du lot a un impact sur les performances de traitement. Si la taille du lot est supérieure, les performances sont meilleures. Toutefois, le risque de perte de données augmente avec la taille des lots. Après l'extraction d'un lot à partir de Kafka, le noeud ThingWorx peut tomber en panne avant le traitement du lot. Dans ce cas, les données mises en cache dans le lot ne seront pas traitées et seront considérées comme perdues.
Pour les événements, vous pouvez configurer le champ Max Cached Data for Durable Events dans Composer sous EventProcessingSubsystem > Configuration. Pour plus d'informations sur ce paramètre, consultez la rubrique Sous-système de traitement des événements.
Pour les propriétés persistantes et journalisées, vous pouvez configurer le volume maximal de données mises en cache dans le fichier platform-settings.json. Pour plus d'informations, consultez la section Paramètres de configuration du fournisseur de file d'attente.
Est-ce que cela a été utile ?