すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:変更追跡によるキャッシュ更新の実装

最終更新日:May 16, 2026

データ伝送サービス (DTS) の変更追跡機能は、MongoDB または Redis と併用して、高信頼性かつ低レイテンシーのキャッシュ更新ポリシーを実装できます。このトピックでは、ApsaraDB RDS for MySQL をソース、Tair (Redis 互換) を宛先とする例を用いて、キャッシュ更新ポリシーについて説明します。

前提条件

背景情報

アプリケーションアーキテクチャでは、アクセス速度を向上させ、高い読み取り同時実行性に対応するために、キャッシュ層を追加することがよくあります。読み取りリクエストはキャッシュにルーティングされ、インメモリでの読み取りによってパフォーマンスが向上します。一方、データの更新は、データの整合性を確保するために ApsaraDB RDS for MySQL などの永続的なデータベースに保存されます。このため、キャッシュとデータベースの同期を維持するためのキャッシュ更新ポリシーが必要です。

操作手順

このセクションでは、IntelliJ IDEA で SDK サンプルコードを実行して、追跡データを消費する方法について説明します。

  1. 変更追跡のSDK デモパッケージをダウンロードし、パッケージを解凍します。

  2. IntelliJ IDEA を使用して、解凍した SDK デモパッケージを Maven プロジェクトとして開きます。

  3. /subscribe-demo/src/main/java/com/alibaba/dts/demo/ ディレクトリで、DTSMySQL2RedisDemo.java ファイルをダブルクリックします。

  4. main 関数内のパラメーターを変更します。

    コード内で緑色にハイライトされている値 (例: String brokerUrl = "your broker url"; の中の your broker url) を変更する必要があります。

    • 変更追跡パラメーター

      パラメーター

      説明

      取得方法

      brokerUrl

      変更追跡タスクのネットワークアドレスとポート番号。

      説明
      • SDK クライアントがデプロイされている ECS インスタンスが、変更追跡タスクと同じクラシックネットワークまたは Virtual Private Cloud (VPC) 内にある場合は、内部 IP アドレスを使用してデータを消費し、ネットワーク遅延を最小限に抑えます。

      • ネットワークが不安定になる可能性があるため、パブリックエンドポイントの使用は推奨されません。

      DTS コンソールで、対象の変更追跡インスタンスの ID をクリックします。[基本情報] ページで、[ネットワーク] セクションからネットワークアドレスとポート番号を取得できます。

      topic

      変更追跡タスクのサブスクリプショントピック。

      DTS コンソールで、対象の変更追跡インスタンスの ID をクリックします。[基本情報] ページの [基本情報] セクションで、[サブスクリプショントピック] を取得できます。

      sid

      コンシューマーグループ ID。

      DTS コンソールで、対象の変更追跡インスタンスの ID をクリックし、[データ消費] をクリックします。コンシューマーグループの [コンシューマーグループ ID][アカウント] を取得できます。

      説明

      コンシューマーグループアカウントのパスワードは、コンシューマーグループを作成する際に指定します。

      userName

      コンシューマーグループのアカウント。

      警告

      このトピックで提供されているクライアントを使用しない場合は、ユーザー名を <コンシューマーグループアカウント>-<コンシューマーグループ ID> のフォーマットで設定してください。例:dtstest-dtsae******bpv。そうしないと、接続に失敗します。

      password

      アカウントのパスワード。

      initCheckpoint

      消費チェックポイント。SDK クライアントがデータ消費を開始するタイムスタンプです。値は UNIX タイムスタンプである必要があります。例:1620962769。

      説明

      消費チェックポイントは、次の目的で使用できます。

      • アプリケーションが中断された場合、最後の消費チェックポイントを使用してデータ消費を再開し、データ損失を防ぐことができます。

      • SDK クライアントの起動時に、消費チェックポイントを指定して、特定の時点からデータを消費できます。

      消費チェックポイントは、変更追跡インスタンスのデータ範囲内 (図を参照) である必要があり、UNIX タイムスタンプに変換する必要があります。

      説明

      検索エンジンを使用して UNIX タイムスタンプコンバーターを見つけることができます。

      ConsumerContext.ConsumerSubscribeMode subscribeMode

      SDK クライアントの使用モード。有効な値:

      • ConsumerContext.ConsumerSubscribeMode.ASSIGN:ASSIGN モード。このモードでは、コンシューマーグループ内の 1 つの SDK クライアントのみが追跡対象データを消費できます。

      • ConsumerContext.ConsumerSubscribeMode.SUBSCRIBE:SUBSCRIBE モード。このモードでは、同じコンシューマーグループ内で複数の SDK クライアントを起動して、ディザスタリカバリを実装できます。

      なし

    • デスティネーション Tair のパラメーター

      パラメーター

      説明

      取得方法

      redisUrl

      Tair インスタンスのエンドポイント。

      Tair インスタンスの [接続情報] ページに移動します。 接続情報 セクションで、パブリックアクセスエンドポイント を見つけます。

      redisPort

      Tair インスタンスのポート。

      Tair インスタンスの [接続情報] ページに移動します。接続情報セクションで、パブリックアクセスのポートを探します。

      redisPassword

      Tair インスタンスのユーザー名とパスワード。

      重要

      値は <user>:<password> 形式の文字列で指定します。たとえば、ユーザー名が admin で、パスワードが Rp829dlwa の場合、このパラメーターを admin:Rp829dlwa に設定します。

      これは Tair インスタンスの作成時に指定したものです。

      説明

      パスワードを忘れた場合は、リセットできます。詳細については、「パスワードの変更またはリセット」をご参照ください。

  5. IntelliJ IDEA のトップメニューバーで、[Run] > [Run] をクリックします。

結果

  1. ソースデータベースにログインし、追跡対象のソーステーブルにいくつかのレコードを挿入します。

    プログラムは増分データ変更を消費し、対応するデータをデスティネーションデータベースに書き込みます。

  2. デスティネーションデータベースにログインし、データをクエリします。

    クエリを実行すると、データが正常に書き込まれたことを確認できます。