SDK の使用の複雑さを簡素化するため、Data Transmission Service (以降、DTS) は SDK 耐障害性メカニズムを実装しています。このメカニズムでは、SDK がデータを消費するとき、DTS 中央制御ノードに消費時間をリアルタイムで報告しています。このセクションでは、DTS が提供する SDK 耐障害性メカニズムの使用方法について説明します。
要件
- SDK でメッセージを消費するコードでは、メッセージを消費するたびに ackAsConsumed API を呼び出して、消費時間を DTS に報告します。
- サブスクリプションチャネルは、少なくともプライマリ SDK とセカンダリ SDK を開始する必要があります。
消費アーキテクチャ
DTS のサブスクリプションチャネルでは、1 つの SDK のみが増分データを受信できます。サブスクリプションチャネルに複数のダウンストリーム SDK が存在する場合、そのうちの 1 つだけが増分データを受信できます。したがって、SDK 耐災害性アーキテクチャを構築できます。
上の図のサンプルアーキテクチャでは、2 つのダウンストリーム SDK が 1 つのサブスクリプションチャネルで接続されています。2 つの SDK は、互いにプライマリとセカンダリの SDKとして機能します。同じ期間内に、プライマリ SDK のみが増分データをサブスクライブして消費できます。プライマリ SDK 例外またはネットワーク接続例外の場合、DTS はセカンダリSDK への自動フェールオーバーを開始し、最新の消費時間を使用してセカンダリ SDK を開始します。プライマリ SDK は、メッセージを消費するたびに ACK メッセージを DTS 制御システムに報告します。つまり、消費時間を制御システムに報告します。