耐久キュー
耐久キューとは、分散イベントストリーミングプラットフォームとして Apache Kafka (オンプレミスデプロイの場合) または Azure Event Hubs (PTC クラウドデプロイの場合) を使用する、ThingWorx Platform 内のキューです。これらのプラットフォームは、メッセージブローカーおよびデータパイプラインとして機能します。また、ThingWorx ノード内の
メモリ内キューを外部化し、耐久キューの形式でディスクベースのストレージに転送します。このプロセスにより、ThingWorx Platform における内部メッセージングが次のように改善されます。
• 定常状態の処理において At-Most-Once 実行 (各メッセージは 1 回だけ配信されるか、まったく配信されない) が保証されることにより、ThingWorx の安定性が向上します。耐久キューを使用することで、オーバーフローによるデータ損失が発生しなくなります。
• ThingWorx ノードで障害が発生した場合のイベントおよびデータ処理の信頼性が向上します。詳細については、
耐久キューを使用したバッチ処理を参照してください。
• イベント処理の待ち時間が、
メモリ内キューと比較して半分に短縮されます。
ThingWorx では、以下に対する耐久キューがサポートされています。
• 順序付けされていないイベント (ステートレス購読によって購読されるイベント)
• 永続プロパティ
• ログ記録プロパティ
次の図は、メモリ内キューと耐久キューの機能フローを示しています。メモリ内キューの詳細については、
メモリ内キューを参照してください。
イベント、永続プロパティ、またはログ記録プロパティに対して耐久キューを有効にすると、プロパティの書き込みはまず耐久キューに処理され、次にメモリ内キューに処理されます。
高可用性コンフィギュレーションにおける耐久キュー
耐久キューは、
高可用性 (HA)コンフィギュレーションもサポートします。HA 設定で指定された Apache Kafka または Azure Event Hubs インスタンスが 1 つ必要です。HA コンフィギュレーションの詳細については、
耐久キューのサイジングを参照してください。
次の図は、HA 環境における Apache Kafka を介した
IoT ストリームのフローを示しています。
重要な注意事項
• 順序付けされていないイベント (ステートレス購読によって購読されるイベント) のみが Kafka または Event Hubs にプッシュされます。ステートフルイベントは既存の Akka フローにルーティングされます。
• イベント、および永続プロパティまたはログ記録プロパティは、At-Most-Once で消費されます。
• Kafka と Event Hubs の場合、データの保持期間はデフォルトで 24 時間です。
• プラットフォームは、Kafka への接続、トピックの作成、メッセージの送受信を行うことができます。耐久キューが有効になっている場合、Kafka は重要なインフラストラクチャと見なされます。Kafka に接続する際に問題 (資格証明の不一致など) が発生した場合、ThingWorx Platform は起動しません。