내구성 대기열을 사용한 배치 처리
ThingWorx는 Apache Kafka 또는 Azure Event Hubs를 사용하여 ThingWorx 노드에서 이벤트, 지속 속성 또는 가치 스트림을 처리할 때 해당 내구성 대기열에서 메시지 배치를 가져오고 처리를 위해 외부 메모리에 캐시합니다. 해당 배치 작업이 AMO(최대 한 번) 전달 보장에서 완료될 때까지 다음 일괄 처리를 내구성 대기열에서 가져오지 않습니다. AMO(최대 한 번) 전달 보장에서 메시지는 가져오는 즉시 처리된 상태로 표시됩니다. 따라서 임의의 시점에 ThingWorx 노드에서 사용할 수 있는 배치의 메시지 수가 제한됩니다. Thingworx 노드가 작동 중지되면 읽지 않은 메시지가 보존되므로 데이터 손실이 최소화됩니다.
메시지가 Kafka 전송에 실패하면 재시도가 수행됩니다. 설정된 재시도 횟수가 초과되면 해당 메시지가 손실됩니다.
ThingWorx에서 Event Hubs로 보낼 수 있는 메시지의 최대 크기는 1MB입니다. 자세한 내용은 Microsoft Azure 웹 사이트의
Event Hubs 질문과 대답을 참조하십시오. Kafka의 경우 기본 메시지 크기는 1MB이며 구성 가능합니다. 자세한 내용은
Apache Kafka 웹 사이트를 참조하십시오.
Kafka에서 메트릭을 모니터링하려면
Apache Kafka 모니터링을 참조하십시오. Event Hubs에서 메트릭을 모니터링하는 방법에 대한 자세한 내용은 PTC 커뮤니티 문서
Durable Queues Are Here(내구성 대기열 기능 제공)를 참조하십시오.
내구성 대기열에 있는 캐시된 데이터의 배치 크기
ThingWorx Platform은 필요한 처리량에 맞춰 확장할 수 있도록 Apache Kafka에서 데이터를 배치 단위로 가져옵니다. 배치 크기는 처리 성능에 영향을 줍니다. 배치 크기가 높을수록 성능이 향상됩니다. 그러나 배치 크기가 클수록 데이터 손실 위험도 증가합니다. Kafka에서 배치를 가져온 후 배치가 처리되기 전에 ThingWorx 노드가 작동 중지될 수 있습니다. 이 경우 배치에 캐시된 데이터는 처리되지 않으며 손실된 것으로 간주됩니다.
이벤트의 경우 Composer의 > 에서
Max Cached Data for Durable Events를 구성할 수 있습니다. 이 설정에 대한 자세한 내용은
EventProcessingSubsystem을 참조하십시오.
지속 속성 및 로깅된 속성의 경우
platform-settings.json 파일에 최대 캐시된 데이터를 구성할 수 있습니다. 자세한 내용은
대기열 공급자 구성 설정을 참조하십시오.